Fix texture matrix for gles2 driver

This commit is contained in:
Benau 2022-09-15 09:01:55 +08:00
parent 16173207ee
commit b77160527c
2 changed files with 4 additions and 5 deletions
data/shaders/irrlicht
lib/irrlicht/source/Irrlicht

@ -10,7 +10,7 @@ attribute vec2 inTexCoord0;
uniform mat4 uMvpMatrix;
uniform mat4 uTextureMatrix0;
uniform vec2 uTextureTrans0;
//uniform mat4 uTextureMatrix1;
/* Varyings */
@ -24,8 +24,7 @@ void main(void)
{
gl_Position = uMvpMatrix * vec4(inVertexPosition,1.0);
vec4 TexCoord0 = vec4(inTexCoord0.x, inTexCoord0.y, 0.0, 0.0);
varTexCoord0 = vec4(uTextureMatrix0 * TexCoord0).xy;
varTexCoord0 = inTexCoord0 + uTextureTrans0;
//vec4 TexCoord1 = vec4(inTexCoord1.x, inTexCoord1.y, 0.0, 0.0);
//varTexCoord1 = vec4(uTextureMatrix1 * TexCoord1).xy;

@ -166,10 +166,10 @@ bool COGLES2FixedPipelineRenderer::OnRender(IMaterialRendererServices* service,
IMaterialRendererServices::setPixelShaderConstant("uTextureUsage0", &TextureUsage0, 1);
//IMaterialRendererServices::setPixelShaderConstant("uTextureUsage1", &TextureUsage1, 1);
core::matrix4 textureMatrix0 = Driver->getTransform(video::ETS_TEXTURE_0);
const irr::core::matrix4& textureMatrix0 = Driver->getCurrentMaterial().getTextureMatrix(0);
//core::matrix4 textureMatrix1 = Driver->getTransform(video::ETS_TEXTURE_0);
IMaterialRendererServices::setPixelShaderConstant("uTextureMatrix0", textureMatrix0.pointer(), 16);
IMaterialRendererServices::setVertexShaderConstant("uTextureTrans0", &textureMatrix0[8], 2);
//IMaterialRendererServices::setPixelShaderConstant("uTextureMatrix1", textureMatrix1.pointer(), 16);
s32 TextureUnit0 = 0;