diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2014-09-02 13:49:14 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2014-09-02 13:49:14 +0400 |
commit | ac1ddb6e645477fe70218d3c850c34041708bdc4 (patch) | |
tree | cf18897f6f1097ffeefa480070c55057166b8a71 /source/blender/gpu/shaders | |
parent | bf0f3a04ccb927ec01a9059e56b0ac4fb80870a0 (diff) |
Support window coordinates in cycles nodes.
Diffstat (limited to 'source/blender/gpu/shaders')
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_material.glsl | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index a60421a5b29..03ec3214bf2 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -2317,12 +2317,13 @@ void node_tex_coord(vec3 I, vec3 N, mat4 viewinvmat, mat4 obinvmat, out vec3 generated, out vec3 normal, out vec3 uv, out vec3 object, out vec3 camera, out vec3 window, out vec3 reflection) { - generated = attr_orco * 0.5 + vec3(0.5, 0.5, 0.5); + generated = attr_orco * 0.5 + vec3(0.5); normal = normalize((obinvmat*(viewinvmat*vec4(N, 0.0))).xyz); uv = attr_uv; object = (obinvmat*(viewinvmat*vec4(I, 1.0))).xyz; camera = I; - window = gl_FragCoord.xyz; + vec4 projvec = gl_ProjectionMatrix * vec4(I, 1.0); + window = (projvec.xyz/projvec.w)*0.5 + vec3(0.5); vec3 shade_I; shade_view(I, shade_I); |