Merge pull request #13775 from SamGondelman/shadows

Don't bind materials during shadow pass
This commit is contained in:
Sam Gondelman 2018-08-07 15:43:48 -07:00 committed by GitHub
commit da71572d2c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 10 deletions

View file

@ -112,11 +112,14 @@ void MaterialEntityRenderer::doRender(RenderArgs* args) {
} }
batch.setModelTransform(renderTransform); batch.setModelTransform(renderTransform);
drawMaterial->setTextureTransforms(textureTransform);
// bind the material if (args->_renderMode != render::Args::RenderMode::SHADOW_RENDER_MODE) {
RenderPipelines::bindMaterial(drawMaterial, batch, args->_enableTexturing); drawMaterial->setTextureTransforms(textureTransform);
args->_details._materialSwitches++;
// bind the material
RenderPipelines::bindMaterial(drawMaterial, batch, args->_enableTexturing);
args->_details._materialSwitches++;
}
// Draw! // Draw!
DependencyManager::get<GeometryCache>()->renderSphere(batch); DependencyManager::get<GeometryCache>()->renderSphere(batch);

View file

@ -268,8 +268,10 @@ void ShapeEntityRenderer::doRender(RenderArgs* args) {
geometryCache->renderSolidShapeInstance(args, batch, geometryShape, outColor, pipeline); geometryCache->renderSolidShapeInstance(args, batch, geometryShape, outColor, pipeline);
} }
} else { } else {
RenderPipelines::bindMaterial(mat, batch, args->_enableTexturing); if (args->_renderMode != render::Args::RenderMode::SHADOW_RENDER_MODE) {
args->_details._materialSwitches++; RenderPipelines::bindMaterial(mat, batch, args->_enableTexturing);
args->_details._materialSwitches++;
}
geometryCache->renderShape(batch, geometryShape); geometryCache->renderShape(batch, geometryShape);
} }

View file

@ -157,8 +157,10 @@ void MeshPartPayload::render(RenderArgs* args) {
bindMesh(batch); bindMesh(batch);
// apply material properties // apply material properties
RenderPipelines::bindMaterial(!_drawMaterials.empty() ? _drawMaterials.top().material : DEFAULT_MATERIAL, batch, args->_enableTexturing); if (args->_renderMode != render::Args::RenderMode::SHADOW_RENDER_MODE) {
args->_details._materialSwitches++; RenderPipelines::bindMaterial(!_drawMaterials.empty() ? _drawMaterials.top().material : DEFAULT_MATERIAL, batch, args->_enableTexturing);
args->_details._materialSwitches++;
}
// Draw! // Draw!
{ {
@ -417,8 +419,10 @@ void ModelMeshPartPayload::render(RenderArgs* args) {
bindMesh(batch); bindMesh(batch);
// apply material properties // apply material properties
RenderPipelines::bindMaterial(!_drawMaterials.empty() ? _drawMaterials.top().material : DEFAULT_MATERIAL, batch, args->_enableTexturing); if (args->_renderMode != render::Args::RenderMode::SHADOW_RENDER_MODE) {
args->_details._materialSwitches++; RenderPipelines::bindMaterial(!_drawMaterials.empty() ? _drawMaterials.top().material : DEFAULT_MATERIAL, batch, args->_enableTexturing);
args->_details._materialSwitches++;
}
// Draw! // Draw!
{ {