Blender  V3.3
Macros | Enumerations | Functions
kernel/geom/object.h File Reference

Go to the source code of this file.

Macros

#define object_position_transform_auto   object_position_transform
 
#define object_dir_transform_auto   object_dir_transform
 
#define object_normal_transform_auto   object_normal_transform
 

Enumerations

enum  ObjectTransform { OBJECT_TRANSFORM = 0 , OBJECT_INVERSE_TRANSFORM = 1 }
 
enum  ObjectVectorTransform { OBJECT_PASS_MOTION_PRE = 0 , OBJECT_PASS_MOTION_POST = 1 }
 

Functions

ccl_device_inline Transform object_fetch_transform (KernelGlobals kg, int object, enum ObjectTransform type)
 
ccl_device_inline Transform lamp_fetch_transform (KernelGlobals kg, int lamp, bool inverse)
 
ccl_device_inline Transform object_fetch_motion_pass_transform (KernelGlobals kg, int object, enum ObjectVectorTransform type)
 
ccl_device_inline Transform object_get_transform (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device_inline Transform object_get_inverse_transform (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device_inline void object_position_transform (KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *P)
 
ccl_device_inline void object_inverse_position_transform (KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *P)
 
ccl_device_inline void object_inverse_normal_transform (KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *N)
 
ccl_device_inline void object_normal_transform (KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *N)
 
ccl_device_inline void object_dir_transform (KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *D)
 
ccl_device_inline void object_inverse_dir_transform (KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *D)
 
ccl_device_inline float3 object_location (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device_inline float3 object_color (KernelGlobals kg, int object)
 
ccl_device_inline float object_alpha (KernelGlobals kg, int object)
 
ccl_device_inline float object_pass_id (KernelGlobals kg, int object)
 
ccl_device_inline int lamp_lightgroup (KernelGlobals kg, int lamp)
 
ccl_device_inline int object_lightgroup (KernelGlobals kg, int object)
 
ccl_device_inline float lamp_random_number (KernelGlobals kg, int lamp)
 
ccl_device_inline float object_random_number (KernelGlobals kg, int object)
 
ccl_device_inline int object_particle_id (KernelGlobals kg, int object)
 
ccl_device_inline float3 object_dupli_generated (KernelGlobals kg, int object)
 
ccl_device_inline float3 object_dupli_uv (KernelGlobals kg, int object)
 
ccl_device_inline void object_motion_info (KernelGlobals kg, int object, ccl_private int *numsteps, ccl_private int *numverts, ccl_private int *numkeys)
 
ccl_device_inline uint object_patch_map_offset (KernelGlobals kg, int object)
 
ccl_device_inline float object_volume_density (KernelGlobals kg, int object)
 
ccl_device_inline float object_volume_step_size (KernelGlobals kg, int object)
 
ccl_device int shader_pass_id (KernelGlobals kg, ccl_private const ShaderData *sd)
 
ccl_device_inline float object_cryptomatte_id (KernelGlobals kg, int object)
 
ccl_device_inline float object_cryptomatte_asset_id (KernelGlobals kg, int object)
 
ccl_device_inline uint particle_index (KernelGlobals kg, int particle)
 
ccl_device float particle_age (KernelGlobals kg, int particle)
 
ccl_device float particle_lifetime (KernelGlobals kg, int particle)
 
ccl_device float particle_size (KernelGlobals kg, int particle)
 
ccl_device float4 particle_rotation (KernelGlobals kg, int particle)
 
ccl_device float3 particle_location (KernelGlobals kg, int particle)
 
ccl_device float3 particle_velocity (KernelGlobals kg, int particle)
 
ccl_device float3 particle_angular_velocity (KernelGlobals kg, int particle)
 
ccl_device_inline float3 bvh_clamp_direction (float3 dir)
 
ccl_device_inline float3 bvh_inverse_direction (float3 dir)
 
ccl_device_inline void bvh_instance_push (KernelGlobals kg, int object, ccl_private const Ray *ray, ccl_private float3 *P, ccl_private float3 *dir, ccl_private float3 *idir)
 
ccl_device_inline void bvh_instance_pop (ccl_private const Ray *ray, ccl_private float3 *P, ccl_private float3 *dir, ccl_private float3 *idir)
 

Macro Definition Documentation

◆ object_dir_transform_auto

#define object_dir_transform_auto   object_dir_transform

Definition at line 543 of file kernel/geom/object.h.

◆ object_normal_transform_auto

#define object_normal_transform_auto   object_normal_transform

Definition at line 544 of file kernel/geom/object.h.

◆ object_position_transform_auto

#define object_position_transform_auto   object_position_transform

Definition at line 542 of file kernel/geom/object.h.

Enumeration Type Documentation

◆ ObjectTransform

Enumerator
OBJECT_TRANSFORM 
OBJECT_INVERSE_TRANSFORM 

Definition at line 20 of file kernel/geom/object.h.

◆ ObjectVectorTransform

Enumerator
OBJECT_PASS_MOTION_PRE 
OBJECT_PASS_MOTION_POST 

Definition at line 25 of file kernel/geom/object.h.

Function Documentation

◆ bvh_clamp_direction()

ccl_device_inline float3 bvh_clamp_direction ( float3  dir)

Definition at line 476 of file kernel/geom/object.h.

References copysignf, fabsf, make_float3, float3::x, float3::y, and float3::z.

Referenced by BVH(), bvh_instance_pop(), and bvh_instance_push().

◆ bvh_instance_pop()

ccl_device_inline void bvh_instance_pop ( ccl_private const Ray ray,
ccl_private float3 P,
ccl_private float3 dir,
ccl_private float3 idir 
)

Definition at line 529 of file kernel/geom/object.h.

References bvh_clamp_direction(), bvh_inverse_direction(), and P().

Referenced by BVH().

◆ bvh_instance_push()

ccl_device_inline void bvh_instance_push ( KernelGlobals  kg,
int  object,
ccl_private const Ray ray,
ccl_private float3 P,
ccl_private float3 dir,
ccl_private float3 idir 
)

◆ bvh_inverse_direction()

ccl_device_inline float3 bvh_inverse_direction ( float3  dir)

◆ lamp_fetch_transform()

ccl_device_inline Transform lamp_fetch_transform ( KernelGlobals  kg,
int  lamp,
bool  inverse 
)

◆ lamp_lightgroup()

ccl_device_inline int lamp_lightgroup ( KernelGlobals  kg,
int  lamp 
)

◆ lamp_random_number()

ccl_device_inline float lamp_random_number ( KernelGlobals  kg,
int  lamp 
)

Definition at line 308 of file kernel/geom/object.h.

References kernel_data_fetch, lamp, and LAMP_NONE.

Referenced by svm_node_object_info().

◆ object_alpha()

ccl_device_inline float object_alpha ( KernelGlobals  kg,
int  object 
)

◆ object_color()

ccl_device_inline float3 object_color ( KernelGlobals  kg,
int  object 
)

◆ object_cryptomatte_asset_id()

ccl_device_inline float object_cryptomatte_asset_id ( KernelGlobals  kg,
int  object 
)

Definition at line 424 of file kernel/geom/object.h.

References kernel_data_fetch, and OBJECT_NONE.

Referenced by kernel_write_data_passes().

◆ object_cryptomatte_id()

ccl_device_inline float object_cryptomatte_id ( KernelGlobals  kg,
int  object 
)

Definition at line 416 of file kernel/geom/object.h.

References kernel_data_fetch, and OBJECT_NONE.

Referenced by kernel_write_data_passes().

◆ object_dir_transform()

ccl_device_inline void object_dir_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd,
ccl_private float3 D 
)

◆ object_dupli_generated()

ccl_device_inline float3 object_dupli_generated ( KernelGlobals  kg,
int  object 
)

◆ object_dupli_uv()

ccl_device_inline float3 object_dupli_uv ( KernelGlobals  kg,
int  object 
)

◆ object_fetch_motion_pass_transform()

ccl_device_inline Transform object_fetch_motion_pass_transform ( KernelGlobals  kg,
int  object,
enum ObjectVectorTransform  type 
)

Definition at line 55 of file kernel/geom/object.h.

References kernel_data_fetch, OBJECT_MOTION_PASS_SIZE, offset, and type.

Referenced by primitive_motion_vector().

◆ object_fetch_transform()

ccl_device_inline Transform object_fetch_transform ( KernelGlobals  kg,
int  object,
enum ObjectTransform  type 
)

◆ object_get_inverse_transform()

ccl_device_inline Transform object_get_inverse_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ object_get_transform()

ccl_device_inline Transform object_get_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ object_inverse_dir_transform()

ccl_device_inline void object_inverse_dir_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd,
ccl_private float3 D 
)

◆ object_inverse_normal_transform()

ccl_device_inline void object_inverse_normal_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd,
ccl_private float3 N 
)

◆ object_inverse_position_transform()

ccl_device_inline void object_inverse_position_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd,
ccl_private float3 P 
)

◆ object_lightgroup()

ccl_device_inline int object_lightgroup ( KernelGlobals  kg,
int  object 
)

Definition at line 298 of file kernel/geom/object.h.

References kernel_data_fetch, LIGHTGROUP_NONE, and OBJECT_NONE.

Referenced by triangle_light_sample().

◆ object_location()

ccl_device_inline float3 object_location ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)

◆ object_motion_info()

ccl_device_inline void object_motion_info ( KernelGlobals  kg,
int  object,
ccl_private int *  numsteps,
ccl_private int *  numverts,
ccl_private int *  numkeys 
)

◆ object_normal_transform()

ccl_device_inline void object_normal_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd,
ccl_private float3 N 
)

◆ object_particle_id()

ccl_device_inline int object_particle_id ( KernelGlobals  kg,
int  object 
)

◆ object_pass_id()

ccl_device_inline float object_pass_id ( KernelGlobals  kg,
int  object 
)

◆ object_patch_map_offset()

ccl_device_inline uint object_patch_map_offset ( KernelGlobals  kg,
int  object 
)

Definition at line 379 of file kernel/geom/object.h.

References kernel_data_fetch, and OBJECT_NONE.

Referenced by patch_map_find_patch().

◆ object_position_transform()

ccl_device_inline void object_position_transform ( KernelGlobals  kg,
ccl_private const ShaderData sd,
ccl_private float3 P 
)

◆ object_random_number()

ccl_device_inline float object_random_number ( KernelGlobals  kg,
int  object 
)

◆ object_volume_density()

ccl_device_inline float object_volume_density ( KernelGlobals  kg,
int  object 
)

Definition at line 389 of file kernel/geom/object.h.

References kernel_data_fetch, and OBJECT_NONE.

◆ object_volume_step_size()

ccl_device_inline float object_volume_step_size ( KernelGlobals  kg,
int  object 
)

Definition at line 398 of file kernel/geom/object.h.

References kernel_data, kernel_data_fetch, and OBJECT_NONE.

Referenced by volume_stack_step_size().

◆ particle_age()

ccl_device float particle_age ( KernelGlobals  kg,
int  particle 
)

◆ particle_angular_velocity()

ccl_device float3 particle_angular_velocity ( KernelGlobals  kg,
int  particle 
)

◆ particle_index()

ccl_device_inline uint particle_index ( KernelGlobals  kg,
int  particle 
)

◆ particle_lifetime()

ccl_device float particle_lifetime ( KernelGlobals  kg,
int  particle 
)

◆ particle_location()

ccl_device float3 particle_location ( KernelGlobals  kg,
int  particle 
)

◆ particle_rotation()

ccl_device float4 particle_rotation ( KernelGlobals  kg,
int  particle 
)

◆ particle_size()

ccl_device float particle_size ( KernelGlobals  kg,
int  particle 
)

◆ particle_velocity()

ccl_device float3 particle_velocity ( KernelGlobals  kg,
int  particle 
)

◆ shader_pass_id()

ccl_device int shader_pass_id ( KernelGlobals  kg,
ccl_private const ShaderData sd 
)