21#if defined(__HAIR__) || defined(__POINTCLOUD__)
28 float pixelwidth = 1.0f;
49 float pixelwidth_x =
len(dP.
dx -
dot(dP.
dx, sd->wi) * sd->wi);
50 float pixelwidth_y =
len(dP.
dy -
dot(dP.
dy, sd->wi) * sd->wi);
52 pixelwidth = (pixelwidth_x + pixelwidth_y) * 0.5f;
57 pixelwidth *= 0.5f *
size;
58 pixelwidth *= pixelwidth;
59 for (
int i = 0; i < np; i++) {
60 int i2 = i ? i - 1 : np - 1;
62 float3 edge = Co[i] - Co[i2];
67 if (
dot(crs, crs) < (
dot(edge, edge) * pixelwidth)) {
80 uint in_size = node.y;
81 uint out_fac = node.z;
82 uint use_pixel_size, bump_offset;
87 int pixel_size = (
int)use_pixel_size;
91 float f =
wireframe(kg, sd, dP, size, pixel_size, &sd->P);
96 f += (f -
wireframe(kg, sd, dP, size, pixel_size, &Px)) /
len(dP.
dx);
100 f += (f -
wireframe(kg, sd, dP, size, pixel_size, &Py)) /
len(dP.
dy);
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
additional_info("compositor_sum_squared_difference_float_shared") .push_constant(Type output_img float dot(value.rgb, luminance_coefficients)") .define("LOAD(value)"
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define ccl_device_inline
#define ccl_device_noinline
#define CCL_NAMESPACE_END
ccl_device_forceinline differential3 differential_from_compact(const float3 D, const float dD)
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_inline void triangle_vertices(KernelGlobals kg, int prim, float3 P[3])
ccl_device_inline void object_position_transform(KernelGlobals kg, ccl_private const ShaderData *sd, ccl_private float3 *P)
ccl_device_forceinline void svm_unpack_node_uchar2(uint i, ccl_private uint *x, ccl_private uint *y)
ccl_device_inline void stack_store_float(ccl_private float *stack, uint a, float f)
ccl_device_inline float stack_load_float(ccl_private float *stack, uint a)
ccl_device_inline bool stack_valid(uint a)
@ SD_OBJECT_TRANSFORM_APPLIED
ccl_device_inline float cross(const float2 a, const float2 b)
ccl_device_inline void motion_triangle_vertices(KernelGlobals kg, int object, uint3 tri_vindex, int numsteps, int numverts, int step, float t, float3 verts[3])
ccl_device_noinline void svm_node_wireframe(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint4 node)
CCL_NAMESPACE_BEGIN ccl_device_inline float wireframe(KernelGlobals kg, ccl_private ShaderData *sd, const differential3 dP, float size, int pixel_size, ccl_private float3 *P)