Debugging shaders is not fun
![Razz :P](./images/smilies/icon_razz.gif)
Code: Select all
core::matrix4 m = driver->getTransform(ETS_VIEW);
m *= driver->getTransform(ETS_WORLD);
Code: Select all
virtual void OnSetConstants(irr::video::IMaterialRendererServices* services,irr::s32 userData)
{
matrix4 world= services->getVideoDriver()->getTransform(video::ETS_PROJECTION);
matrix4 proj= services->getVideoDriver()->getTransform(video::ETS_WORLD);
matrix4 view= services->getVideoDriver()->getTransform(video::ETS_VIEW);
services->setVertexShaderConstant("mWorld", world.pointer(), 16);
services->setVertexShaderConstant("mProj", proj.pointer(), 16);
services->setVertexShaderConstant("mView", view.pointer(), 16);
}
Code: Select all
uniform mat4 mProj, mWorld, mView;
varying vec4 same;
void main()
{
gl_Position = ftransform();
mat4 a,b,c;
a=mWorld;
b=mProj;
c=mView;
mat4 ab,ba,ac,bc,ca,cb;
ab=a*b;
ba=b*a;
ac=a*c;
bc=b*c;
ca=c*a;
cb=c*b;
same.r=(gl_ModelViewMatrix==(bc))?1.0:0.0;
same.g=(gl_ModelViewMatrix==(ca))?1.0:0.0;
same.b=(gl_ModelViewMatrix==(cb))?1.0:0.0;
}
Code: Select all
varying vec4 same;
void main()
{
gl_Colour=same;
}
Code: Select all
matrix4 proj= services->getVideoDriver()->getTransform(video::ETS_WORLD);