diff options
Diffstat (limited to 'tests/glsl/sascha-willems/sphericalenvmapping')
| -rw-r--r-- | tests/glsl/sascha-willems/sphericalenvmapping/sem.frag | 23 | ||||
| -rw-r--r-- | tests/glsl/sascha-willems/sphericalenvmapping/sem.vert | 35 |
2 files changed, 58 insertions, 0 deletions
diff --git a/tests/glsl/sascha-willems/sphericalenvmapping/sem.frag b/tests/glsl/sascha-willems/sphericalenvmapping/sem.frag new file mode 100644 index 000000000..6735ee03c --- /dev/null +++ b/tests/glsl/sascha-willems/sphericalenvmapping/sem.frag @@ -0,0 +1,23 @@ +//TEST:COMPARE_GLSL: +#version 450 + +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_420pack : enable + +layout (binding = 1) uniform sampler2DArray matCap; + +layout (location = 0) in vec3 inColor; +layout (location = 1) in vec3 inEyePos; +layout (location = 2) in vec3 inNormal; +layout (location = 3) in flat int inTexIndex; + +layout (location = 0) out vec4 outFragColor; + +void main() +{ + vec3 r = reflect( inEyePos, inNormal ); + vec3 r2 = vec3( r.x, r.y, r.z + 1.0 ); + float m = 2.0 * length( r2 ); + vec2 vN = r.xy / m + .5; + outFragColor = vec4( texture( matCap, vec3(vN, inTexIndex)).rgb * (clamp(inColor.r * 2, 0.0, 1.0)), 1.0 ); +} diff --git a/tests/glsl/sascha-willems/sphericalenvmapping/sem.vert b/tests/glsl/sascha-willems/sphericalenvmapping/sem.vert new file mode 100644 index 000000000..bb94e3f0e --- /dev/null +++ b/tests/glsl/sascha-willems/sphericalenvmapping/sem.vert @@ -0,0 +1,35 @@ +//TEST:COMPARE_GLSL: +#version 450 + +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_420pack : enable + +layout (location = 0) in vec4 inPos; +layout (location = 1) in vec3 inNormal; +layout (location = 3) in vec3 inColor; + +layout (binding = 0) uniform UBO +{ + mat4 projection; + mat4 model; + mat4 normal; + mat4 view; + int texIndex; +} ubo; + +layout (location = 0) out vec3 outColor; +layout (location = 1) out vec3 outEyePos; +layout (location = 2) out vec3 outNormal; +layout (location = 3) out flat int outTexIndex; + +void main() +{ + outColor = inColor; + mat4 modelView = ubo.view * ubo.model; + outEyePos = normalize( vec3( modelView * inPos ) ); + outTexIndex = ubo.texIndex; + outNormal = normalize( mat3(ubo.normal) * inNormal ); + vec3 r = reflect( outEyePos, outNormal ); + float m = 2.0 * sqrt( pow(r.x, 2.0) + pow(r.y, 2.0) + pow(r.z + 1.0, 2.0)); + gl_Position = ubo.projection * modelView * inPos; +} |
