Removed ClearCoatNormal RT from the pipeline and shaders.
Changed stencil bits to use 0x3 for the IBL Specular pass and 0x80 for the DiffuseGI pass.
This commit is contained in:
@@ -240,6 +240,8 @@ namespace AZ
|
||||
{
|
||||
meshHandle->m_materialAssignments = materials;
|
||||
}
|
||||
|
||||
meshHandle->m_objectSrgNeedsUpdate = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -547,6 +549,8 @@ namespace AZ
|
||||
drawPacketListOut.clear();
|
||||
drawPacketListOut.reserve(meshCount);
|
||||
|
||||
m_hasForwardPassIblSpecularMaterial = false;
|
||||
|
||||
for (size_t meshIndex = 0; meshIndex < meshCount; ++meshIndex)
|
||||
{
|
||||
Data::Instance<RPI::Material> material = modelLod.GetMeshes()[meshIndex].m_material;
|
||||
@@ -602,7 +606,16 @@ namespace AZ
|
||||
AZ_Warning("MeshDrawPacket", false, "Failed to set o_meshUseForwardPassIBLSpecular on mesh draw packet");
|
||||
}
|
||||
|
||||
drawPacket.SetStencilRef(m_useForwardPassIblSpecular || MaterialRequiresForwardPassIblSpecular(material) ? Render::StencilRefs::None : Render::StencilRefs::UseIBLSpecularPass);
|
||||
bool materialRequiresForwardPassIblSpecular = MaterialRequiresForwardPassIblSpecular(material);
|
||||
|
||||
// track whether any materials in this mesh require ForwardPassIblSpecular, we need this information when the ObjectSrg is updated
|
||||
m_hasForwardPassIblSpecularMaterial |= materialRequiresForwardPassIblSpecular;
|
||||
|
||||
// stencil bits
|
||||
uint8_t stencilRef = m_useForwardPassIblSpecular || materialRequiresForwardPassIblSpecular ? Render::StencilRefs::None : Render::StencilRefs::UseIBLSpecularPass;
|
||||
stencilRef |= Render::StencilRefs::UseDiffuseGIPass;
|
||||
|
||||
drawPacket.SetStencilRef(stencilRef);
|
||||
drawPacket.SetSortKey(m_sortKey);
|
||||
drawPacket.Update(*m_scene, false);
|
||||
drawPacketListOut.emplace_back(AZStd::move(drawPacket));
|
||||
@@ -891,7 +904,9 @@ namespace AZ
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_useForwardPassIblSpecular)
|
||||
ReflectionProbeFeatureProcessor* reflectionProbeFeatureProcessor = m_scene->GetFeatureProcessor<ReflectionProbeFeatureProcessor>();
|
||||
|
||||
if (reflectionProbeFeatureProcessor && (m_useForwardPassIblSpecular || m_hasForwardPassIblSpecularMaterial))
|
||||
{
|
||||
// retrieve probe constant indices
|
||||
AZ::RHI::ShaderInputConstantIndex posConstantIndex = m_shaderResourceGroup->FindShaderInputConstantIndex(Name("m_reflectionProbeData.m_aabbPos"));
|
||||
@@ -924,7 +939,6 @@ namespace AZ
|
||||
TransformServiceFeatureProcessor* transformServiceFeatureProcessor = m_scene->GetFeatureProcessor<TransformServiceFeatureProcessor>();
|
||||
Transform transform = transformServiceFeatureProcessor->GetTransformForId(m_objectId);
|
||||
|
||||
ReflectionProbeFeatureProcessor* reflectionProbeFeatureProcessor = m_scene->GetFeatureProcessor<ReflectionProbeFeatureProcessor>();
|
||||
ReflectionProbeFeatureProcessor::ReflectionProbeVector reflectionProbes;
|
||||
reflectionProbeFeatureProcessor->FindReflectionProbes(transform.GetTranslation(), reflectionProbes);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user