Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_image.h
| Show First 20 Lines • Show All 472 Lines • ▼ Show 20 Lines | ccl_device void svm_node_tex_environment(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node) | ||||
| decode_node_uchar4(node.z, &co_offset, &out_offset, &alpha_offset, &srgb); | decode_node_uchar4(node.z, &co_offset, &out_offset, &alpha_offset, &srgb); | ||||
| float3 co = stack_load_float3(stack, co_offset); | float3 co = stack_load_float3(stack, co_offset); | ||||
| float2 uv; | float2 uv; | ||||
| co = normalize(co); | co = normalize(co); | ||||
| if(projection == 0) | if(projection == 0) | ||||
| uv = direction_to_equirectangular(co); | uv = direction_to_equirectangular(co, FULL_RANGE); | ||||
| else | else | ||||
| uv = direction_to_mirrorball(co); | uv = direction_to_mirrorball(co); | ||||
| uint use_alpha = stack_valid(alpha_offset); | uint use_alpha = stack_valid(alpha_offset); | ||||
| float4 f = svm_image_texture(kg, id, uv.x, uv.y, srgb, use_alpha); | float4 f = svm_image_texture(kg, id, uv.x, uv.y, srgb, use_alpha); | ||||
| if(stack_valid(out_offset)) | if(stack_valid(out_offset)) | ||||
| stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z)); | stack_store_float3(stack, out_offset, make_float3(f.x, f.y, f.z)); | ||||
| if(stack_valid(alpha_offset)) | if(stack_valid(alpha_offset)) | ||||
| stack_store_float(stack, alpha_offset, f.w); | stack_store_float(stack, alpha_offset, f.w); | ||||
| } | } | ||||
| CCL_NAMESPACE_END | CCL_NAMESPACE_END | ||||