Merging r5975 through r6036 from trunk to ogl-es branch.
GLES drivers adapted, but only did make compile-tests. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@6038 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
61
media/Shaders/COGLES2ParallaxMap.vsh
Normal file
61
media/Shaders/COGLES2ParallaxMap.vsh
Normal file
@@ -0,0 +1,61 @@
|
||||
#define MAX_LIGHTS 2
|
||||
|
||||
/* Attributes */
|
||||
|
||||
attribute vec3 inVertexPosition;
|
||||
attribute vec3 inVertexNormal;
|
||||
attribute vec3 inVertexTangent;
|
||||
attribute vec3 inVertexBinormal;
|
||||
attribute vec4 inVertexColor;
|
||||
attribute vec2 inTexCoord0;
|
||||
|
||||
/* Uniforms */
|
||||
|
||||
uniform mat4 uWVPMatrix;
|
||||
uniform mat4 uWVMatrix;
|
||||
uniform vec3 uEyePosition;
|
||||
uniform vec3 uLightPosition[MAX_LIGHTS];
|
||||
uniform vec4 uLightColor[MAX_LIGHTS];
|
||||
|
||||
/* Varyings */
|
||||
|
||||
varying vec2 vTexCoord;
|
||||
varying vec3 vEyeVector;
|
||||
varying vec3 vLightVector[MAX_LIGHTS];
|
||||
varying vec4 vLightColor[MAX_LIGHTS];
|
||||
varying float vFogCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = uWVPMatrix * vec4(inVertexPosition, 1.0);
|
||||
|
||||
vTexCoord = inTexCoord0;
|
||||
|
||||
vec3 EyeVector = uEyePosition - inVertexPosition;
|
||||
|
||||
vEyeVector.x = dot(inVertexTangent, EyeVector);
|
||||
vEyeVector.y = dot(inVertexBinormal, EyeVector);
|
||||
vEyeVector.z = dot(inVertexNormal, EyeVector);
|
||||
vEyeVector *= vec3(1.0, -1.0, -1.0);
|
||||
|
||||
for (int i = 0; i < int(MAX_LIGHTS); i++)
|
||||
{
|
||||
vec3 LightVector = uLightPosition[i] - inVertexPosition;
|
||||
|
||||
vLightVector[i].x = dot(inVertexTangent, LightVector);
|
||||
vLightVector[i].y = dot(inVertexBinormal, LightVector);
|
||||
vLightVector[i].z = dot(inVertexNormal, LightVector);
|
||||
|
||||
vLightColor[i].x = dot(LightVector, LightVector);
|
||||
vLightColor[i].x *= uLightColor[i].a;
|
||||
vLightColor[i] = vec4(inversesqrt(vLightColor[i].x));
|
||||
vLightColor[i] *= uLightColor[i];
|
||||
vLightColor[i].a = inVertexColor.a;
|
||||
|
||||
vLightColor[i].x = clamp(vLightColor[i].x, 0.0, 1.0);
|
||||
vLightColor[i].y = clamp(vLightColor[i].y, 0.0, 1.0);
|
||||
vLightColor[i].z = clamp(vLightColor[i].z, 0.0, 1.0);
|
||||
}
|
||||
|
||||
vFogCoord = length((uWVMatrix * vec4(inVertexPosition, 1.0)).xyz);
|
||||
}
|
Reference in New Issue
Block a user