mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 08:52:00 +00:00
- fixed voxel lighting.
In all that impenetrable voodoo math from Polymost it picked the wrong vector to calculate the depth of the scene and since I apparently removed the compensation math for the broken shader on the C++ side the calculated value was no longer correct. That Polymost renderer really needs to go away. :(
This commit is contained in:
parent
a38077a17e
commit
ee93c6e366
3 changed files with 14 additions and 11 deletions
|
@ -3995,17 +3995,21 @@ void polymost_drawsprite(int32_t snum)
|
||||||
break; // else, render as flat sprite
|
break; // else, render as flat sprite
|
||||||
}
|
}
|
||||||
|
|
||||||
if (r_voxels && (tspr->cstat & 48) != 48 && tiletovox[tspr->picnum] >= 0 && voxmodels[tiletovox[tspr->picnum]])
|
if (r_voxels)
|
||||||
{
|
{
|
||||||
if (polymost_voxdraw(voxmodels[tiletovox[tspr->picnum]], tspr)) return;
|
if ((tspr->cstat & 48) != 48 && tiletovox[tspr->picnum] >= 0 && voxmodels[tiletovox[tspr->picnum]])
|
||||||
break; // else, render as flat sprite
|
{
|
||||||
|
if (polymost_voxdraw(voxmodels[tiletovox[tspr->picnum]], tspr)) return;
|
||||||
|
break; // else, render as flat sprite
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((tspr->cstat & 48) == 48 && voxmodels[tspr->picnum])
|
||||||
|
{
|
||||||
|
polymost_voxdraw(voxmodels[tspr->picnum], tspr);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((tspr->cstat & 48) == 48 && voxmodels[tspr->picnum])
|
|
||||||
{
|
|
||||||
polymost_voxdraw(voxmodels[tspr->picnum], tspr);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1091,8 +1091,7 @@ int32_t polymost_voxdraw(voxmodel_t *m, tspriteptr_t const tspr)
|
||||||
GLInterface.EnableBlend(true); // else GLInterface.EnableBlend(false);
|
GLInterface.EnableBlend(true); // else GLInterface.EnableBlend(false);
|
||||||
}
|
}
|
||||||
else pc[3] = 1.f;
|
else pc[3] = 1.f;
|
||||||
GLInterface.SetFadeDisable(true); // disable depth fading. The voxel code is somewhat broken and messes this up.
|
GLInterface.SetShade(std::max(0, globalshade), numshades);
|
||||||
GLInterface.SetShade(0, numshades);
|
|
||||||
//------------
|
//------------
|
||||||
|
|
||||||
//transform to Build coords
|
//transform to Build coords
|
||||||
|
|
|
@ -35,5 +35,5 @@ void main()
|
||||||
v_fogCoord = abs(eyeCoordPosition.z);
|
v_fogCoord = abs(eyeCoordPosition.z);
|
||||||
|
|
||||||
v_color = i_color;
|
v_color = i_color;
|
||||||
v_distance = i_vertPos.z;
|
v_distance = eyeCoordPosition.z;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue