diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-06-15 01:10:34 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-06-15 01:57:16 +0300 |
commit | cac851a00e0b654e9cc3ab9c4226e5cfab5f5f3d (patch) | |
tree | 519972b4c811d4efe6993bf2c41d43a97b7c5a0f /source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl | |
parent | 810464e5f721a14bc3b6e3071f63a93f2ff68043 (diff) |
Eevee: Probes: Add data display for cubemaps.
Diffstat (limited to 'source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl')
-rw-r--r-- | source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl b/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl new file mode 100644 index 00000000000..d651a866433 --- /dev/null +++ b/source/blender/draw/engines/eevee/shaders/lightprobe_cube_display_frag.glsl @@ -0,0 +1,24 @@ + +uniform mat4 ProjectionMatrix; +uniform mat4 ViewMatrixInverse; + +uniform sampler2DArray probeCubes; +uniform float lodMax; + +flat in int pid; +in vec3 worldNormal; +in vec3 worldPosition; + +out vec4 FragColor; + +#define cameraForward normalize(ViewMatrixInverse[2].xyz) +#define cameraPos ViewMatrixInverse[3].xyz + +void main() +{ + vec3 V = (ProjectionMatrix[3][3] == 0.0) /* if perspective */ + ? normalize(cameraPos - worldPosition) + : cameraForward; + vec3 N = normalize(worldNormal); + FragColor = vec4(textureLod_octahedron(probeCubes, vec4(reflect(-V, N), pid), 0.0, lodMax).rgb, 1.0); +} |