Differential D14306 Diff 49157 source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/material/gpu_shader_material_texture_coordinates.glsl
| Context not available. | |||||
| void generated_texco(vec3 I, vec3 attr_orco, out vec3 generated) | void generated_texco(vec3 I, vec3 attr_orco, out vec3 generated) | ||||
| { | { | ||||
| vec4 v = (ProjectionMatrix[3][3] == 0.0) ? vec4(I, 1.0) : vec4(0.0, 0.0, 1.0, 1.0); | vec4 v = (ProjectionMatrix[3][3] == 0.0) ? vec4(I, 1.0) : vec4(0.0, 0.0, 1.0, 1.0); | ||||
| vec4 co_homogenous = (ProjectionMatrixInverse * v); | vec4 co_homogeneous = (ProjectionMatrixInverse * v); | ||||
| vec4 co = vec4(co_homogenous.xyz / co_homogenous.w, 0.0); | vec4 co = vec4(co_homogeneous.xyz / co_homogeneous.w, 0.0); | ||||
| co.xyz = normalize(co.xyz); | co.xyz = normalize(co.xyz); | ||||
| #if defined(WORLD_BACKGROUND) || defined(PROBE_CAPTURE) | #if defined(WORLD_BACKGROUND) || defined(PROBE_CAPTURE) | ||||
| generated = (ViewMatrixInverse * co).xyz; | generated = (ViewMatrixInverse * co).xyz; | ||||
| Context not available. | |||||
| out vec3 reflection) | out vec3 reflection) | ||||
| { | { | ||||
| vec4 v = (ProjectionMatrix[3][3] == 0.0) ? vec4(I, 1.0) : vec4(0.0, 0.0, 1.0, 1.0); | vec4 v = (ProjectionMatrix[3][3] == 0.0) ? vec4(I, 1.0) : vec4(0.0, 0.0, 1.0, 1.0); | ||||
| vec4 co_homogenous = (ProjectionMatrixInverse * v); | vec4 co_homogeneous = (ProjectionMatrixInverse * v); | ||||
| vec4 co = vec4(co_homogenous.xyz / co_homogenous.w, 0.0); | vec4 co = vec4(co_homogeneous.xyz / co_homogeneous.w, 0.0); | ||||
| co = normalize(co); | co = normalize(co); | ||||
| Context not available. | |||||