diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /KaplaDemo/externalIP/resources/shaders/combine_vs.cpp | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'KaplaDemo/externalIP/resources/shaders/combine_vs.cpp')
| -rw-r--r-- | KaplaDemo/externalIP/resources/shaders/combine_vs.cpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/KaplaDemo/externalIP/resources/shaders/combine_vs.cpp b/KaplaDemo/externalIP/resources/shaders/combine_vs.cpp new file mode 100644 index 00000000..af9f33fe --- /dev/null +++ b/KaplaDemo/externalIP/resources/shaders/combine_vs.cpp @@ -0,0 +1,79 @@ + +uniform float uvScale = 1.0f; +uniform sampler2D transTex; +uniform int transTexSize; +uniform float iTransTexSize; +uniform float bumpTextureUVScale; +//attribute mat4 transformmatrix; +void main() +{ + + int ti = (int)(gl_MultiTexCoord0.w); + //int ti = tq; + int tpr = transTexSize / 4; + int row = ti / tpr; + int col = (ti - row*tpr)*4; + + float fx = (col+0.5f)*iTransTexSize; + float fy = (row+0.5f)*iTransTexSize; + + + vec4 r0 = texture2D(transTex, vec2(fx,fy)); + vec4 r1 = texture2D(transTex, vec2(fx+iTransTexSize,fy)); + vec4 r2 = texture2D(transTex, vec2(fx+iTransTexSize*2.0f,fy)); + vec4 r3 = texture2D(transTex, vec2(fx+iTransTexSize*3.0f,fy)); +// vec4 r3 = vec4(0,0,0,1); + + vec3 offset = vec3(r0.w, r1.w, r2.w); + r0.w = 0.0f; + r1.w = 0.0f; + r2.w = 0.0f; + + float material = r3.w; + r3.w = 1.0f; + mat4 transformmatrix = mat4(r0,r1,r2,r3); + + + + + mat4 mvp = gl_ModelViewMatrix * transformmatrix; + mat4 mvpt = gl_ModelViewMatrixInverseTranspose * transformmatrix; + vec4 t0 = vec4(gl_MultiTexCoord0.xyz, 0.0f); + + vec4 t1 = vec4(cross(gl_Normal.xyz, t0.xyz), 0.0f); + +// mat4 mvp = gl_ModelViewMatrix; +// mat4 mvpt = gl_ModelViewMatrixInverseTranspose; + + + vec4 eyeSpacePos = mvp * gl_Vertex; + //eyeSpacePos.y += gl_InstanceID * 0.2f; + //gl_TexCoord[0].xyz = gl_MultiTexCoord0.xyz*uvScale; + vec3 coord3d = gl_Vertex.xyz + offset; + gl_TexCoord[0].xyz = (coord3d)*uvScale; + gl_TexCoord[1] = eyeSpacePos; + gl_FrontColor = gl_Color; + gl_Position = gl_ProjectionMatrix*eyeSpacePos; + gl_TexCoord[2] = mvpt * vec4(gl_Normal.xyz,0.0); + + gl_TexCoord[3] = mvpt * t0; + gl_TexCoord[4].xyz = mvpt * t1; + + gl_TexCoord[5].xy = vec2(dot(coord3d, t0.xyz), dot(coord3d, t1.xyz))*bumpTextureUVScale*2; + + gl_TexCoord[6].xyz = vec3(gl_MultiTexCoord1.xy, material); + gl_TexCoord[6].y = 1.0 - gl_TexCoord[6].y; + + float MAX_3D_TEX = 8.0; + if (gl_TexCoord[6].x >= 5.0f) { + // 2D Tex + gl_TexCoord[6].x -= 5.0f; + gl_TexCoord[6].z = floor(gl_TexCoord[6].z / MAX_3D_TEX); + } else { + gl_TexCoord[6].z -= floor(gl_TexCoord[6].z / MAX_3D_TEX)*MAX_3D_TEX; + gl_TexCoord[6].z -= 100.0f; + + } + gl_TexCoord[6].w = floor(fract(material / MAX_3D_TEX)*MAX_3D_TEX + 0.5f); + gl_ClipVertex = vec4(eyeSpacePos.xyz, 1.0f); +}
\ No newline at end of file |