Data Fields
AtShaderGlobals Struct Reference

Shader globals data structure. More...

#include <ai_shaderglobals.h>

Data Fields

int32_t x
 X raster-space coordinate of this ray tree

 
int32_t y
 Y raster-space coordinate of this ray tree

 
float px
 subpixel X coordinate of this ray in [0,1)

 
float py
 subpixel Y coordinate of this ray in [0,1)

 
uint16_t si
 subpixel sample index

 
uint16_t transp_index
 transparency index

 
AtVector Ro
 ray origin (typically the camera position)

 
AtVector Rd
 ray direction (normalized)

 
float Rl
 ray length (|Ro-P|)

 
uint16_t tid
 thread ID

 
uint8_t Rt
 ray type

 
uint8_t bounces
 recursion level for the ray that created this hit

 
uint8_t bounces_diffuse
 ray diffuse depth level

 
uint8_t bounces_specular
 ray specular depth level

 
uint8_t bounces_reflect
 ray reflection depth level

 
uint8_t bounces_transmit
 ray transmission depth level

 
uint8_t bounces_volume
 ray volume depth level

 
bool fhemi
 force hemispherical lighting (use only upper hemisphere)

 
float time
 absolute time, between shutter-open and shutter-close

 
AtNodeOp
 pointer to the object being shaded

 
AtNodeproc
 pointer to the procedural object (if exists)

 
AtNodeshader
 pointer to the current shader

 
const AtShaderGlobalspsg
 parent shader globals (last shaded)

 
AtVector Po
 shading point in object-space

 
AtVector P
 shading point in world-space

 
AtVector dPdx
 surface derivative wrt screen X-axis

 
AtVector dPdy
 surface derivative wrt screen Y-axis

 
AtVector N
 shading normal (in object space during displacement)

 
AtVector Nf
 face-forward shading normal

 
AtVector Ng
 geometric normal

 
AtVector Ngf
 face-forward geometric normal

 
AtVector Ns
 smoothed normal (same as N but without bump)

 
float bu
 barycentric coordinate (aka alpha, or u)

 
float bv
 barycentric coordinate (aka beta, or v)

 
float u
 U surface parameter

 
float v
 V surface parameter

 
uint32_t fi
 primitive ID (triangle, curve segment, etc)

 
AtMatrix M
 local-to-world matrix transform

 
AtMatrix Minv
 world-to-local matrix transform

 
AtNode ** lights
 array of active lights at this shading context

 
AtLightSamplelight_filter
 light sample (for light filter shaders)

 
uint32_t nlights
 number of active lights at this shading context

 
AtVector dPdu
 surface derivative wrt U parameter

 
AtVector dPdv
 surface derivative wrt V parameter

 
AtVector dDdx
 ray direction derivative wrt screen X-axis

 
AtVector dDdy
 ray direction derivative wrt screen Y-axis

 
AtVector dNdx
 surface normal derivative wrt screen X-axis

 
AtVector dNdy
 surface normal derivative wrt screen Y-axis

 
float dudx
 U derivative wrt screen X-axis

 
float dudy
 U derivative wrt screen Y-axis

 
float dvdx
 V derivative wrt screen X-axis

 
float dvdy
 V derivative wrt screen Y-axis

 
bool skip_shadow
 if true, don't trace shadow rays

 
uint8_t sc
 type of shading context

 
bool inclusive_traceset
 is the trace-set inclusive?

 
AtString traceset
 trace-set to assign to rays made from this SG

 
AtParamValue out
 shader output

 
AtShaderGlobalsPrivateInfo * privateinfo
 extra information for internal use

 

Detailed Description

Shader globals data structure.

An AtShaderGlobals structure represents a shading context that holds all the information accesible to the different types of shaders. For example, after a camera ray hits the surface of an object, a shading context of type AI_CONTEXT_SURFACE is created that contains, amongst other things, local geometric properties such as the surface normal, the UV surface parameters, etc.


The documentation for this struct was generated from the following file:

© 2022 Autodesk, Inc. · All rights reserved · www.arnoldrenderer.com