From 66820fee900c340c06a0df56c58c411891d80f1d Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 7 Jun 2022 22:06:48 -0500 Subject: [PATCH] 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 --- Engine/source/T3D/decal/decalManager.cpp | 1 + Engine/source/environment/decalRoad.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Engine/source/T3D/decal/decalManager.cpp b/Engine/source/T3D/decal/decalManager.cpp index 6d8c3b90b..2c683275a 100644 --- a/Engine/source/T3D/decal/decalManager.cpp +++ b/Engine/source/T3D/decal/decalManager.cpp @@ -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 ) diff --git a/Engine/source/environment/decalRoad.cpp b/Engine/source/environment/decalRoad.cpp index fb226507a..28be1efc8 100644 --- a/Engine/source/environment/decalRoad.cpp +++ b/Engine/source/environment/decalRoad.cpp @@ -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.