36 return curve_attribute_float(kg, sd, desc, dx, dy);
41 return point_attribute_float(kg, sd, desc, dx, dy);
67 return curve_attribute_float2(kg, sd, desc, dx, dy);
72 return point_attribute_float2(kg, sd, desc, dx, dy);
98 return curve_attribute_float3(kg, sd, desc, dx, dy);
103 return point_attribute_float3(kg, sd, desc, dx, dy);
129 return curve_attribute_float4(kg, sd, desc, dx, dy);
134 return point_attribute_float4(kg, sd, desc, dx, dy);
163 if (primitive_is_volume_attribute(sd, desc)) {
164 return volume_attribute_value_to_float(volume_attribute_float4(kg, sd, desc));
175 if (primitive_is_volume_attribute(sd, desc)) {
176 return volume_attribute_value_to_float3(volume_attribute_float4(kg, sd, desc));
187 if (primitive_is_volume_attribute(sd, desc)) {
188 return volume_attribute_float4(kg, sd, desc);
227 *face_id = (
int)face_id_f;
236#if defined(__HAIR__) || defined(__POINTCLOUD__)
250 data =
make_float3(-(data.y - 0.5f), (data.x - 0.5f), 0.0f);
272#if defined(__HAIR__) || defined(__POINTCLOUD__)
274 if (is_curve_or_point) {
278# if defined(__HAIR__)
279 center = curve_motion_center_location(kg, sd);
283# if defined(__POINTCLOUD__)
284 center = point_motion_center_location(kg, sd);
298 float3 motion_pre = center, motion_post = center;
307#if defined(__HAIR__) || defined(__POINTCLOUD__)
308 if (is_curve_or_point) {
381 motion_pre = motion_pre - motion_center;
382 motion_post = motion_center - motion_post;
384 return make_float4(motion_pre.
x, motion_pre.
y, motion_post.x, motion_post.y);
SIMD_FORCE_INLINE btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1.
ccl_device_inline float2 direction_to_panorama(ccl_constant KernelCamera *cam, float3 dir)
ccl_device_inline float3 transform_perspective(ccl_private const ProjectionTransform *t, const float3 a)
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define kernel_data_fetch(name, index)
#define ccl_device_forceinline
#define CCL_NAMESPACE_END
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
ccl_device float triangle_attribute_float(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float *dx, ccl_private float *dy)
ccl_device float2 triangle_attribute_float2(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float2 *dx, ccl_private float2 *dy)
ccl_device float4 triangle_attribute_float4(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float4 *dx, ccl_private float4 *dy)
ccl_device float3 triangle_attribute_float3(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float3 *dx, ccl_private float3 *dy)
CCL_NAMESPACE_BEGIN ccl_device_inline uint subd_triangle_patch(KernelGlobals kg, int prim)
ccl_device_inline void object_position_transform(KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *P)
ccl_device_inline Transform object_fetch_motion_pass_transform(KernelGlobals kg, int object, enum ObjectVectorTransform type)
@ OBJECT_PASS_MOTION_POST
ccl_device_inline void object_normal_transform(KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *N)
@ ATTR_STD_MOTION_VERTEX_POSITION
@ SD_OBJECT_TRANSFORM_APPLIED
@ SD_OBJECT_HAS_VERTEX_MOTION
ccl_device_inline float cross(const float2 a, const float2 b)
CCL_NAMESPACE_BEGIN ccl_device_inline float4 zero_float4()
VecBase< float, 4 > float4
ccl_device_forceinline float3 primitive_surface_attribute_float3(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float3 *dx, ccl_private float3 *dy)
ccl_device_forceinline float2 primitive_surface_attribute_float2(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float2 *dx, ccl_private float2 *dy)
ccl_device_forceinline float4 primitive_motion_vector(KernelGlobals kg, ccl_private const ShaderData *sd)
ccl_device_forceinline float3 primitive_uv(KernelGlobals kg, ccl_private const ShaderData *sd)
ccl_device_forceinline float4 primitive_surface_attribute_float4(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float4 *dx, ccl_private float4 *dy)
CCL_NAMESPACE_BEGIN ccl_device_forceinline float primitive_surface_attribute_float(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float *dx, ccl_private float *dy)
ccl_device float3 primitive_tangent(KernelGlobals kg, ccl_private ShaderData *sd)
ccl_device bool primitive_ptex(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float2 *uv, ccl_private int *face_id)
static bool find_attribute(const std::string &attributes, const char *search_attribute)
ccl_device_noinline float3 subd_triangle_attribute_float3(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float3 *dx, ccl_private float3 *dy)
ccl_device_noinline float4 subd_triangle_attribute_float4(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float4 *dx, ccl_private float4 *dy)
ccl_device_noinline float subd_triangle_attribute_float(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float *dx, ccl_private float *dy)
ccl_device_noinline float2 subd_triangle_attribute_float2(KernelGlobals kg, ccl_private const ShaderData *sd, const AttributeDescriptor desc, ccl_private float2 *dx, ccl_private float2 *dy)
ccl_device_inline float3 float2_to_float3(const float2 a)
ccl_device_inline float3 float4_to_float3(const float4 a)