Cleaned up shader code as fade position is now world position

This commit is contained in:
Olivier Prat 2017-07-17 11:59:10 +02:00
parent 0123e2936b
commit 146f934019
30 changed files with 55 additions and 85 deletions

View file

@ -19,7 +19,6 @@
in vec3 _normal;
in vec4 _position;
in vec4 _worldPosition;
in vec4 _worldFadePosition;
uniform sampler2D xMap;
uniform sampler2D yMap;
@ -31,7 +30,7 @@ uniform vec3 voxelVolumeSize;
void main(void) {
vec3 emissive;
applyFade(_worldFadePosition.xyz, emissive);
applyFade(_worldPosition.xyz, emissive);
vec3 worldNormal = cross(dFdy(_worldPosition.xyz), dFdx(_worldPosition.xyz));
worldNormal = normalize(worldNormal);

View file

@ -17,12 +17,9 @@
<$declareStandardTransform()$>
<@include Fade.slh@>
out vec4 _position;
out vec4 _worldPosition;
out vec3 _normal;
out vec4 _worldFadePosition;
void main(void) {
// standard transform
@ -30,6 +27,5 @@ void main(void) {
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, inPosition, _position, gl_Position)$>
<$transformModelToEyeDir(cam, obj, inNormal.xyz, _normal)$>
<$transformModelToWorldPos(obj, inPosition, _worldFadePosition)$>
_worldPosition = inPosition;
}

View file

@ -9,13 +9,6 @@
<@if not FADE_SLH@>
<@def FADE_SLH@>
<@func transformModelToFadePos(objectTransform, objectPosition, fadePosition)@>
{
vec4 objectVector = vec4(<$objectPosition$>.xyz, 1.f);
<$transformModelToWorldPos($objectTransform$, objectVector, $fadePosition$)$>
}
<@endfunc@>
<@func declareFadeFragment()@>

View file

@ -22,7 +22,7 @@
<$declareFadeFragment()$>
in vec4 _position;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
in vec3 _normal;
in vec3 _color;
in vec2 _texCoord0;
@ -32,7 +32,7 @@ in vec2 _texCoord1;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -19,13 +19,11 @@
<@include MaterialTextures.slh@>
<$declareMaterialTexMapArrayBuffer()$>
<@include Fade.slh@>
out float _alpha;
out vec2 _texCoord0;
out vec2 _texCoord1;
out vec4 _position;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
out vec3 _normal;
out vec3 _color;
@ -41,6 +39,6 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, inPosition, _position, gl_Position)$>
<$transformModelToFadePos(obj, inPosition, _worldFadePosition)$>
<$transformModelToWorldPos(obj, inPosition, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normal)$>
}

View file

@ -28,12 +28,12 @@ in vec2 _texCoord0;
in vec2 _texCoord1;
in vec3 _normal;
in vec3 _color;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -17,8 +17,6 @@
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
<@include Fade.slh@>
<@include MaterialTextures.slh@>
<$declareMaterialTexMapArrayBuffer()$>
@ -27,7 +25,7 @@ out vec2 _texCoord0;
out vec2 _texCoord1;
out vec3 _normal;
out vec3 _color;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
// pass along the color in linear space
@ -42,7 +40,7 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, inPosition, _position, gl_Position)$>
<$transformModelToFadePos(obj, inPosition, _worldFadePosition)$>
<$transformModelToWorldPos(obj, inPosition, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normal)$>
}

View file

@ -29,12 +29,12 @@ in vec2 _texCoord1;
in vec3 _normal;
in vec3 _tangent;
in vec3 _color;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -17,8 +17,6 @@
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
<@include Fade.slh@>
<@include MaterialTextures.slh@>
<$declareMaterialTexMapArrayBuffer()$>
@ -28,7 +26,7 @@ out vec2 _texCoord1;
out vec3 _normal;
out vec3 _tangent;
out vec3 _color;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
// pass along the color in linear space
@ -42,7 +40,7 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, inPosition, _position, gl_Position)$>
<$transformModelToFadePos(obj, inPosition, _worldFadePosition)$>
<$transformModelToWorldPos(obj, inPosition, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normal)$>
<$transformModelToWorldDir(cam, obj, inTangent.xyz, _tangent)$>
}

View file

@ -29,12 +29,12 @@ in vec2 _texCoord1;
in vec3 _normal;
in vec3 _tangent;
in vec3 _color;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -28,12 +28,12 @@ in vec2 _texCoord0;
in vec2 _texCoord1;
in vec3 _normal;
in vec3 _color;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -23,7 +23,7 @@
<$declareFadeFragment()$>
in vec4 _position;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
in vec2 _texCoord0;
in vec2 _texCoord1;
in vec3 _normal;
@ -33,7 +33,7 @@ in vec3 _color;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -20,10 +20,8 @@
<@include MaterialTextures.slh@>
<$declareMaterialTexMapArrayBuffer()$>
<@include Fade.slh@>
out vec4 _position;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
out vec2 _texCoord0;
out vec2 _texCoord1;
out vec3 _normal;
@ -44,7 +42,7 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, inPosition, _position, gl_Position)$>
<$transformModelToFadePos(obj, inPosition, _worldFadePosition)$>
<$transformModelToWorldPos(obj, inPosition, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normal)$>
<$transformModelToWorldDir(cam, obj, inTangent.xyz, _tangent)$>
}

View file

@ -28,12 +28,12 @@ in vec2 _texCoord1;
in vec3 _normal;
in vec3 _tangent;
in vec3 _color;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -17,10 +17,10 @@
layout(location = 0) out vec4 _fragColor;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
applyFadeClip(_worldFadePosition.xyz);
applyFadeClip(_worldPosition.xyz);
// pass-through to set z-buffer
_fragColor = vec4(1.0, 1.0, 1.0, 0.0);

View file

@ -16,16 +16,14 @@
<@include gpu/Transform.slh@>
<@include Fade.slh@>
<$declareStandardTransform()$>
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
// standard transform
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToClipPos(cam, obj, inPosition, gl_Position)$>
<$transformModelToFadePos(obj, inPosition, _worldFadePosition)$>
<$transformModelToWorldPos(obj, inPosition, _worldPosition)$>
}

View file

@ -27,12 +27,12 @@ in vec2 _texCoord0;
in vec2 _texCoord1;
in vec3 _normal;
in vec3 _color;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -33,14 +33,14 @@ in vec4 _position;
in vec3 _normal;
in vec3 _color;
in float _alpha;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
out vec4 _fragColor;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -24,14 +24,14 @@
in vec2 _texCoord0;
in vec3 _color;
in float _alpha;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
out vec4 _fragColor;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -26,12 +26,12 @@ in vec2 _texCoord0;
in vec3 _normal;
in vec3 _color;
in float _alpha;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material mat = getMaterial();
int matKey = getMaterialKey(mat);

View file

@ -24,7 +24,7 @@ in vec3 _modelNormal;
in vec4 _color;
in vec2 _texCoord0;
in vec4 _position;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
//PROCEDURAL_COMMON_BLOCK
@ -35,7 +35,7 @@ in vec4 _worldFadePosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
Material material = getMaterial();
vec3 normal = normalize(_normal.xyz);

View file

@ -17,15 +17,13 @@
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
<@include Fade.slh@>
// the interpolated normal
out vec3 _normal;
out vec3 _modelNormal;
out vec4 _color;
out vec2 _texCoord0;
out vec4 _position;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
_color = colorToLinearRGBA(inColor);
@ -37,6 +35,6 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToClipPos(cam, obj, inPosition, gl_Position)$>
<$transformModelToFadePos(obj, inPosition, _worldFadePosition)$>
<$transformModelToWorldPos(obj, inPosition, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, inNormal.xyz, _normal)$>
}

View file

@ -26,12 +26,12 @@ uniform sampler2D originalTexture;
in vec3 _normal;
in vec4 _color;
in vec2 _texCoord0;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
vec4 texel = texture(originalTexture, _texCoord0);
float colorAlpha = _color.a;

View file

@ -25,12 +25,12 @@ uniform sampler2D originalTexture;
in vec3 _normal;
in vec4 _color;
in vec2 _texCoord0;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
vec4 texel = texture(originalTexture, _texCoord0.st);
float colorAlpha = _color.a;

View file

@ -32,12 +32,12 @@ in vec4 _position;
in vec3 _normal;
in vec4 _color;
in vec2 _texCoord0;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
vec4 texel = texture(originalTexture, _texCoord0.st);
float opacity = _color.a;

View file

@ -24,14 +24,14 @@ uniform sampler2D originalTexture;
in vec3 _normal;
in vec4 _color;
in vec2 _texCoord0;
in vec4 _worldFadePosition;
in vec4 _worldPosition;
layout(location = 0) out vec4 _fragColor0;
void main(void) {
vec3 fadeEmissive;
applyFade(_worldFadePosition.xyz, fadeEmissive);
applyFade(_worldPosition.xyz, fadeEmissive);
vec4 texel = texture(originalTexture, _texCoord0.st);
float colorAlpha = _color.a;

View file

@ -22,15 +22,13 @@
<@include MaterialTextures.slh@>
<$declareMaterialTexMapArrayBuffer()$>
<@include Fade.slh@>
out vec4 _position;
out vec2 _texCoord0;
out vec2 _texCoord1;
out vec3 _normal;
out vec3 _color;
out float _alpha;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
vec4 position = vec4(0.0, 0.0, 0.0, 0.0);
@ -50,6 +48,6 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, position, _position, gl_Position)$>
<$transformModelToFadePos(obj, position, _worldFadePosition)$>
<$transformModelToWorldPos(obj, position, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, interpolatedNormal.xyz, _normal.xyz)$>
}

View file

@ -22,8 +22,6 @@
<@include MaterialTextures.slh@>
<$declareMaterialTexMapArrayBuffer()$>
<@include Fade.slh@>
out vec4 _position;
out vec2 _texCoord0;
out vec2 _texCoord1;
@ -31,7 +29,7 @@ out vec3 _normal;
out vec3 _tangent;
out vec3 _color;
out float _alpha;
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
vec4 position = vec4(0.0, 0.0, 0.0, 0.0);
@ -55,7 +53,7 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToEyeAndClipPos(cam, obj, position, _position, gl_Position)$>
<$transformModelToFadePos(obj, position, _worldFadePosition)$>
<$transformModelToWorldPos(obj, position, _worldPosition)$>
<$transformModelToWorldDir(cam, obj, interpolatedNormal.xyz, interpolatedNormal.xyz)$>
<$transformModelToWorldDir(cam, obj, interpolatedTangent.xyz, interpolatedTangent.xyz)$>

View file

@ -15,12 +15,12 @@
<@include Fade.slh@>
<$declareFadeFragment()$>
in vec4 _worldFadePosition;
in vec4 _worldPosition;
layout(location = 0) out vec4 _fragColor;
void main(void) {
applyFadeClip(_worldFadePosition.xyz);
applyFadeClip(_worldPosition.xyz);
// pass-through to set z-buffer
_fragColor = vec4(1.0, 1.0, 1.0, 0.0);

View file

@ -16,11 +16,9 @@
<@include gpu/Transform.slh@>
<$declareStandardTransform()$>
<@include Fade.slh@>
<@include Skinning.slh@>
out vec4 _worldFadePosition;
out vec4 _worldPosition;
void main(void) {
vec4 position = vec4(0.0, 0.0, 0.0, 0.0);
@ -30,5 +28,5 @@ void main(void) {
TransformCamera cam = getTransformCamera();
TransformObject obj = getTransformObject();
<$transformModelToClipPos(cam, obj, position, gl_Position)$>
<$transformModelToFadePos(obj, position, _worldFadePosition)$>
<$transformModelToWorldPos(obj, position, _worldPosition)$>
}