Code: Select all
video::IMaterialRenderer* rnd = driver->getMaterialRenderer(Materials[i].MaterialType);
bool transparent = (rnd && rnd->isTransparent());
// only render transparent buffer if this is the transparent render pass
// and solid only in solid pass
if (transparent == isTransparentPass)
{
As it is, Irrlicht is rendering transparent materials if they exist at material index 0 before solid background materials, which with antialias, is causing incorrect blending.
There is not a transparent render pass call, just the single call to render the nodes.
There is sorting on solid and transparent nodes, but not on materials.
Anyone aware of this issue?