Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_musgrave.h
| Show First 20 Lines • Show All 694 Lines • ▼ Show 20 Lines | for (int i = 1; i < float_to_int(octaves); i++) { | ||||
| signal *= weight; | signal *= weight; | ||||
| value += signal * pwr; | value += signal * pwr; | ||||
| pwr *= pwHL; | pwr *= pwHL; | ||||
| } | } | ||||
| return value; | return value; | ||||
| } | } | ||||
| ccl_device void svm_node_tex_musgrave(KernelGlobals *kg, | ccl_device_noinline int svm_node_tex_musgrave(const KernelGlobals *kg, | ||||
| ShaderData *sd, | ShaderData *sd, | ||||
| float *stack, | float *stack, | ||||
| uint offsets1, | uint offsets1, | ||||
| uint offsets2, | uint offsets2, | ||||
| uint offsets3, | uint offsets3, | ||||
| int *offset) | int offset) | ||||
| { | { | ||||
| uint type, dimensions, co_stack_offset, w_stack_offset; | uint type, dimensions, co_stack_offset, w_stack_offset; | ||||
| uint scale_stack_offset, detail_stack_offset, dimension_stack_offset, lacunarity_stack_offset; | uint scale_stack_offset, detail_stack_offset, dimension_stack_offset, lacunarity_stack_offset; | ||||
| uint offset_stack_offset, gain_stack_offset, fac_stack_offset; | uint offset_stack_offset, gain_stack_offset, fac_stack_offset; | ||||
| svm_unpack_node_uchar4(offsets1, &type, &dimensions, &co_stack_offset, &w_stack_offset); | svm_unpack_node_uchar4(offsets1, &type, &dimensions, &co_stack_offset, &w_stack_offset); | ||||
| svm_unpack_node_uchar4(offsets2, | svm_unpack_node_uchar4(offsets2, | ||||
| &scale_stack_offset, | &scale_stack_offset, | ||||
| &detail_stack_offset, | &detail_stack_offset, | ||||
| &dimension_stack_offset, | &dimension_stack_offset, | ||||
| &lacunarity_stack_offset); | &lacunarity_stack_offset); | ||||
| svm_unpack_node_uchar3(offsets3, &offset_stack_offset, &gain_stack_offset, &fac_stack_offset); | svm_unpack_node_uchar3(offsets3, &offset_stack_offset, &gain_stack_offset, &fac_stack_offset); | ||||
| uint4 defaults1 = read_node(kg, offset); | uint4 defaults1 = read_node(kg, &offset); | ||||
| uint4 defaults2 = read_node(kg, offset); | uint4 defaults2 = read_node(kg, &offset); | ||||
| float3 co = stack_load_float3(stack, co_stack_offset); | float3 co = stack_load_float3(stack, co_stack_offset); | ||||
| float w = stack_load_float_default(stack, w_stack_offset, defaults1.x); | float w = stack_load_float_default(stack, w_stack_offset, defaults1.x); | ||||
| float scale = stack_load_float_default(stack, scale_stack_offset, defaults1.y); | float scale = stack_load_float_default(stack, scale_stack_offset, defaults1.y); | ||||
| float detail = stack_load_float_default(stack, detail_stack_offset, defaults1.z); | float detail = stack_load_float_default(stack, detail_stack_offset, defaults1.z); | ||||
| float dimension = stack_load_float_default(stack, dimension_stack_offset, defaults1.w); | float dimension = stack_load_float_default(stack, dimension_stack_offset, defaults1.w); | ||||
| float lacunarity = stack_load_float_default(stack, lacunarity_stack_offset, defaults2.x); | float lacunarity = stack_load_float_default(stack, lacunarity_stack_offset, defaults2.x); | ||||
| float foffset = stack_load_float_default(stack, offset_stack_offset, defaults2.y); | float foffset = stack_load_float_default(stack, offset_stack_offset, defaults2.y); | ||||
| ▲ Show 20 Lines • Show All 106 Lines • ▼ Show 20 Lines | case 4: { | ||||
| } | } | ||||
| break; | break; | ||||
| } | } | ||||
| default: | default: | ||||
| fac = 0.0f; | fac = 0.0f; | ||||
| } | } | ||||
| stack_store_float(stack, fac_stack_offset, fac); | stack_store_float(stack, fac_stack_offset, fac); | ||||
| return offset; | |||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||