Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2014-09-02 13:49:14 +0400
committerAntony Riakiotakis <kalast@gmail.com>2014-09-02 13:49:14 +0400
commitac1ddb6e645477fe70218d3c850c34041708bdc4 (patch)
treecf18897f6f1097ffeefa480070c55057166b8a71 /source/blender/gpu
parentbf0f3a04ccb927ec01a9059e56b0ac4fb80870a0 (diff)
Support window coordinates in cycles nodes.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/shaders/gpu_shader_material.glsl5
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);