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
 pointer to the object being shaded
 pointer to the procedural object (if exists)
 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
 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:

© 2020 Autodesk, Inc. · All rights reserved ·