47 float pixelwidth = 1.0f;
66 float pixelwidth_x =
len(sd->dP.dx -
dot(sd->dP.dx, sd->I) * sd->I);
67 float pixelwidth_y =
len(sd->dP.dy -
dot(sd->dP.dy, sd->I) * sd->I);
69 pixelwidth = (pixelwidth_x + pixelwidth_y) * 0.5f;
74 pixelwidth *= 0.5f *
size;
75 pixelwidth *= pixelwidth;
76 for (
int i = 0; i < np; i++) {
77 int i2 = i ? i - 1 : np - 1;
79 float3 edge = Co[i] - Co[i2];
84 if (
dot(crs, crs) < (
dot(edge, edge) * pixelwidth))
95 uint use_pixel_size, bump_offset;
100 int pixel_size = (int)use_pixel_size;
103 #ifdef __SPLIT_KERNEL__
118 float3 Px = sd->P - sd->dP.dx;
122 float3 Py = sd->P - sd->dP.dy;
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
ccl_device_inline void motion_triangle_vertices(KernelGlobals *kg, int object, int prim, float time, float3 verts[3])
ccl_device_inline void object_position_transform(KernelGlobals *kg, const ShaderData *sd, float3 *P)
ccl_device_inline void triangle_vertices(KernelGlobals *kg, int prim, float3 P[3])
ccl_device_inline float stack_load_float(float *stack, uint a)
ccl_device_inline void stack_store_float(float *stack, uint a, float f)
ccl_device_forceinline void svm_unpack_node_uchar2(uint i, uint *x, uint *y)
ccl_device_inline bool stack_valid(uint a)
#define ccl_device_inline
#define CCL_NAMESPACE_END
@ SD_OBJECT_TRANSFORM_APPLIED
ccl_device void svm_node_wireframe(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node)
CCL_NAMESPACE_BEGIN ccl_device_inline float wireframe(KernelGlobals *kg, ShaderData *sd, float size, int pixel_size, float3 *P)
__forceinline avxf cross(const avxf &a, const avxf &b)
ccl_device_inline float dot(const float2 &a, const float2 &b)