14 n = (n + 1013) & 0x7fffffff;
16 nn = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
17 return 0.5f * ((
float)nn / 1073741824.0f);
37 if (offset_frequency && squash_frequency) {
38 brick_width *= (rownum % squash_frequency) ? 1.0f : squash_amount;
39 offset = (rownum % offset_frequency) ? 0.0f : (brick_width * offset_amount);
44 x = (p.
x + offset) - brick_width * bricknum;
45 y = p.
y - row_height * rownum;
48 float min_dist =
min(
min(x, y),
min(brick_width - x, row_height - y));
51 if (min_dist >= mortar_size) {
54 else if (mortar_smooth == 0.0f) {
58 min_dist = 1.0f - min_dist / mortar_size;
73 uint co_offset, color1_offset, color2_offset, mortar_offset, scale_offset;
74 uint mortar_size_offset, bias_offset, brick_width_offset, row_height_offset;
75 uint color_offset, fac_offset, mortar_smooth_offset;
78 uint offset_frequency, squash_frequency;
82 node.z, &scale_offset, &mortar_size_offset, &bias_offset, &brick_width_offset);
84 node.w, &row_height_offset, &color_offset, &fac_offset, &mortar_smooth_offset);
118 float facm = 1.0f - tint;
119 color1 = facm * color1 + tint * color2;
ccl_device_noinline int svm_node_tex_brick(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint4 node, int offset)
CCL_NAMESPACE_BEGIN ccl_device_inline float brick_noise(uint n)
ccl_device_noinline_cpu float2 svm_brick(float3 p, float mortar_size, float mortar_smooth, float bias, float brick_width, float row_height, float offset_amount, int offset_frequency, float squash_amount, int squash_frequency)
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define ccl_device_noinline_cpu
#define ccl_device_inline
#define ccl_device_noinline
#define CCL_NAMESPACE_END
draw_view in_light_buf[] float
ccl_device_inline void stack_store_float3(ccl_private float *stack, uint a, float3 f)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 stack_load_float3(ccl_private float *stack, uint a)
ccl_device_inline uint4 read_node(KernelGlobals kg, ccl_private int *offset)
ccl_device_forceinline void svm_unpack_node_uchar2(uint i, ccl_private uint *x, ccl_private uint *y)
ccl_device_inline float stack_load_float_default(ccl_private float *stack, uint a, uint value)
ccl_device_inline void stack_store_float(ccl_private float *stack, uint a, float f)
ccl_device_forceinline void svm_unpack_node_uchar4(uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z, ccl_private uint *w)
ccl_device_inline bool stack_valid(uint a)
ccl_device_inline int floor_to_int(float f)
ccl_device_inline float smoothstepf(float f)