OGL32CTX: Remove implicitly defined uniforms in splatting

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@14981 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
vincentlj 2014-01-09 17:08:15 +00:00
parent 9ba803140a
commit e6d774a3ac
3 changed files with 18 additions and 9 deletions

View File

@ -9,7 +9,6 @@ uniform sampler2D tex_detail3;
noperspective in vec3 nor;
in vec2 uv;
in vec2 uv_bis;
in vec4 color;
void main() {
// Splatting part
@ -25,8 +24,7 @@ void main() {
splatting.g * detail1 +
splatting.b * detail2 +
(1.0 - splatting.r - splatting.g - splatting.b) * detail3 +
(1.0 - splatting.a) * detail4)
* color;
(1.0 - splatting.a) * detail4);
gl_FragData[0] = vec4(splatted.xyz, 1.);

View File

@ -17,17 +17,17 @@
#version 130
uniform vec3 lightdir;
uniform mat4 ModelViewProjectionMatrix;
uniform mat4 TransposeInverseModelView;
noperspective out vec3 nor;
out vec2 uv;
out vec2 uv_bis;
out vec4 color;
void main()
{
uv = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
uv_bis = (gl_TextureMatrix[1] * gl_MultiTexCoord1).st;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
color = gl_Color;
nor = gl_NormalMatrix * gl_Normal;
uv = gl_MultiTexCoord0.st;
uv_bis = gl_MultiTexCoord1.st;
gl_Position = ModelViewProjectionMatrix * gl_Vertex;
nor = (TransposeInverseModelView * vec4(gl_Normal, 1.)).xyz;
}

View File

@ -185,6 +185,17 @@ void SkyboxProvider::OnSetConstants(IMaterialRendererServices *srv, int)
void SplattingProvider::OnSetConstants(IMaterialRendererServices *srv, int)
{
core::matrix4 ModelViewProjectionMatrix = srv->getVideoDriver()->getTransform(ETS_PROJECTION);
ModelViewProjectionMatrix *= srv->getVideoDriver()->getTransform(ETS_VIEW);
ModelViewProjectionMatrix *= srv->getVideoDriver()->getTransform(ETS_WORLD);
core::matrix4 TransposeInverseModelView = srv->getVideoDriver()->getTransform(ETS_VIEW);
TransposeInverseModelView *= srv->getVideoDriver()->getTransform(ETS_WORLD);
TransposeInverseModelView.makeInverse();
TransposeInverseModelView = TransposeInverseModelView.getTransposed();
srv->setVertexShaderConstant("ModelViewProjectionMatrix", ModelViewProjectionMatrix.pointer(), 16);
srv->setVertexShaderConstant("TransposeInverseModelView", TransposeInverseModelView.pointer(), 16);
if (!firstdone)
{
s32 tex_layout = 1;