let me underscore this is painfully incorrect and we'll want to revisit it when we have more time, but... this seems to fix mangled decal and decalroad rendering

This commit is contained in:
AzaezelX 2022-06-07 22:06:48 -05:00
parent de6ee93159
commit 66820fee90
2 changed files with 4 additions and 1 deletions

View file

@ -1425,6 +1425,7 @@ void DecalManager::prepRenderImage( SceneRenderState* state )
ri->prim->numPrimitives = currentBatch->iCount / 3;
ri->prim->startVertex = 0;
ri->prim->numVertices = currentBatch->vCount;
ri->translucentSort = !currentBatch->matInst->getMaterial()->isTranslucent();
// Ugly hack for ProjectedShadow!
if ( customTex )

View file

@ -734,7 +734,7 @@ void DecalRoad::prepRenderImage( SceneRenderState* state )
coreRI.sortDistSq = F32_MAX;
// If we need lights then set them up.
if ( matInst->isForwardLit() )
if ( matInst->isForwardLit() && !coreRI.lights[0])
{
LightQuery query;
query.init( getWorldSphere() );
@ -784,6 +784,7 @@ void DecalRoad::prepRenderImage( SceneRenderState* state )
*ri = coreRI;
ri->matInst = matInst;
ri->prim = renderPass->allocPrim();
ri->prim->type = GFXTriangleList;
ri->prim->minIndex = 0;
@ -791,6 +792,7 @@ void DecalRoad::prepRenderImage( SceneRenderState* state )
ri->prim->numPrimitives = triangleCount;
ri->prim->startVertex = 0;
ri->prim->numVertices = endBatch.endVert + 1;
ri->translucentSort = !matInst->getMaterial()->isTranslucent();
// For sorting we first sort by render priority
// and then by objectId.