small refactor in rendermeshes

This commit is contained in:
turanszkij
2018-10-07 17:27:31 +01:00
parent a0155db87f
commit bb71c9f9b0
2 changed files with 12 additions and 13 deletions
+11 -12
View File
@@ -1340,8 +1340,7 @@ void CreateDirLightShadowCams(const LightComponent& light, const CameraComponent
void RenderMeshes(const XMFLOAT3& eye, const RenderQueue& renderQueue, SHADERTYPE shaderType, UINT renderTypeFlags, GRAPHICSTHREAD threadID,
bool tessellation = false)
void RenderMeshes(const RenderQueue& renderQueue, SHADERTYPE shaderType, UINT renderTypeFlags, GRAPHICSTHREAD threadID, bool tessellation = false)
{
if (!renderQueue.empty())
{
@@ -1461,7 +1460,7 @@ void RenderMeshes(const XMFLOAT3& eye, const RenderQueue& renderQueue, SHADERTYP
{
const InstancedBatch& instancedBatch = instancedBatchArray[instancedBatchID];
const MeshComponent& mesh = scene.meshes[instancedBatch.meshIndex];
bool forceAlphaTestForDithering = instancedBatch.forceAlphatestForDithering != 0;
const bool forceAlphaTestForDithering = instancedBatch.forceAlphatestForDithering != 0;
const float tessF = mesh.GetTessellationFactor();
const bool tessellatorRequested = tessF > 0 && tessellation;
@@ -4831,7 +4830,7 @@ void DrawForShadowMap(const CameraComponent& camera, GRAPHICSTHREAD threadID, ui
// render opaque shadowmap:
GetDevice()->BindRenderTargets(0, nullptr, shadowMapArray_2D, threadID, light.shadowMap_index + cascade);
RenderMeshes(shcams[cascade].Eye, renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_OPAQUE, threadID);
RenderMeshes(renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_OPAQUE, threadID);
if (GetTransparentShadowsEnabled() && transparentShadowsRequested)
{
@@ -4840,7 +4839,7 @@ void DrawForShadowMap(const CameraComponent& camera, GRAPHICSTHREAD threadID, ui
shadowMapArray_Transparent
};
GetDevice()->BindRenderTargets(ARRAYSIZE(rts), rts, shadowMapArray_2D, threadID, light.shadowMap_index + cascade);
RenderMeshes(shcams[cascade].Eye, renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_TRANSPARENT | RENDERTYPE_WATER, threadID);
RenderMeshes(renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_TRANSPARENT | RENDERTYPE_WATER, threadID);
}
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
}
@@ -4905,7 +4904,7 @@ void DrawForShadowMap(const CameraComponent& camera, GRAPHICSTHREAD threadID, ui
// render opaque shadowmap:
GetDevice()->BindRenderTargets(0, nullptr, shadowMapArray_2D, threadID, light.shadowMap_index);
RenderMeshes(frustum.getCamPos(), renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_OPAQUE, threadID);
RenderMeshes(renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_OPAQUE, threadID);
if (GetTransparentShadowsEnabled() && transparentShadowsRequested)
{
@@ -4914,7 +4913,7 @@ void DrawForShadowMap(const CameraComponent& camera, GRAPHICSTHREAD threadID, ui
shadowMapArray_Transparent
};
GetDevice()->BindRenderTargets(ARRAYSIZE(rts), rts, shadowMapArray_2D, threadID, light.shadowMap_index);
RenderMeshes(frustum.getCamPos(), renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_TRANSPARENT | RENDERTYPE_WATER, threadID);
RenderMeshes(renderQueue, SHADERTYPE_SHADOW, RENDERTYPE_TRANSPARENT | RENDERTYPE_WATER, threadID);
}
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
}
@@ -4985,7 +4984,7 @@ void DrawForShadowMap(const CameraComponent& camera, GRAPHICSTHREAD threadID, ui
}
GetDevice()->UpdateBuffer(constantBuffers[CBTYPE_CUBEMAPRENDER], &cb, threadID);
RenderMeshes(light.position, renderQueue, SHADERTYPE_SHADOWCUBE, RENDERTYPE_OPAQUE, threadID);
RenderMeshes(renderQueue, SHADERTYPE_SHADOWCUBE, RENDERTYPE_OPAQUE, threadID);
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
}
@@ -5082,7 +5081,7 @@ void DrawWorld(const CameraComponent& camera, bool tessellation, GRAPHICSTHREAD
if (!renderQueue.empty())
{
renderQueue.sort(RenderQueue::SORT_FRONT_TO_BACK);
RenderMeshes(camera.Eye, renderQueue, shaderType, RENDERTYPE_OPAQUE, threadID, tessellation);
RenderMeshes(renderQueue, shaderType, RENDERTYPE_OPAQUE, threadID, tessellation);
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
}
@@ -5155,7 +5154,7 @@ void DrawWorldTransparent(const CameraComponent& camera, SHADERTYPE shaderType,
if (!renderQueue.empty())
{
renderQueue.sort(RenderQueue::SORT_BACK_TO_FRONT);
RenderMeshes(camera.Eye, renderQueue, shaderType, RENDERTYPE_TRANSPARENT | RENDERTYPE_WATER, threadID, false);
RenderMeshes(renderQueue, shaderType, RENDERTYPE_TRANSPARENT | RENDERTYPE_WATER, threadID, false);
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
}
@@ -5862,7 +5861,7 @@ void RefreshEnvProbes(GRAPHICSTHREAD threadID)
if (!renderQueue.empty())
{
RenderMeshes(center, renderQueue, SHADERTYPE_ENVMAPCAPTURE, RENDERTYPE_OPAQUE | RENDERTYPE_TRANSPARENT, threadID);
RenderMeshes(renderQueue, SHADERTYPE_ENVMAPCAPTURE, RENDERTYPE_OPAQUE | RENDERTYPE_TRANSPARENT, threadID);
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
}
@@ -6211,7 +6210,7 @@ void VoxelRadiance(GRAPHICSTHREAD threadID)
GPUResource* UAVs[] = { resourceBuffers[RBTYPE_VOXELSCENE] };
device->BindUAVs(PS, UAVs, 0, 1, threadID);
RenderMeshes(center, renderQueue, SHADERTYPE_VOXELIZE, RENDERTYPE_OPAQUE, threadID);
RenderMeshes(renderQueue, SHADERTYPE_VOXELIZE, RENDERTYPE_OPAQUE, threadID);
frameAllocators[threadID].free(sizeof(RenderBatch) * renderQueue.batchCount);
// Copy the packed voxel scene data to a 3D texture, then delete the voxel scene emission data. The cone tracing will operate on the 3D texture
+1 -1
View File
@@ -9,7 +9,7 @@ namespace wiVersion
// minor features, major updates
const int minor = 21;
// minor bug fixes, alterations, refactors, updates
const int revision = 4;
const int revision = 5;
long GetVersion()