feedback from PR
This commit is contained in:
@@ -256,7 +256,7 @@ namespace AZ
|
||||
}
|
||||
}
|
||||
|
||||
void MeshFeatureProcessor::SetMatrix3x4(const MeshHandle& meshHandle, const AZ::Matrix3x4& matrix3x4)
|
||||
void MeshFeatureProcessor::SetTransform(const MeshHandle& meshHandle, const AZ::Transform& transform, const AZ::Vector3& nonUniformScale)
|
||||
{
|
||||
if (meshHandle.IsValid())
|
||||
{
|
||||
@@ -264,26 +264,39 @@ namespace AZ
|
||||
meshData.m_cullBoundsNeedsUpdate = true;
|
||||
meshData.m_objectSrgNeedsUpdate = true;
|
||||
|
||||
m_transformService->SetMatrix3x4ForId(meshHandle->m_objectId, matrix3x4);
|
||||
m_transformService->SetTransformForId(meshHandle->m_objectId, transform, nonUniformScale);
|
||||
|
||||
// ray tracing data needs to be updated with the new transform
|
||||
if (m_rayTracingFeatureProcessor)
|
||||
{
|
||||
m_rayTracingFeatureProcessor->SetMeshMatrix3x4(meshHandle->m_objectId, matrix3x4);
|
||||
m_rayTracingFeatureProcessor->SetMeshTransform(meshHandle->m_objectId, transform, nonUniformScale);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Matrix3x4 MeshFeatureProcessor::GetMatrix3x4(const MeshHandle& meshHandle)
|
||||
Transform MeshFeatureProcessor::GetTransform(const MeshHandle& meshHandle)
|
||||
{
|
||||
if (meshHandle.IsValid())
|
||||
{
|
||||
return m_transformService->GetMatrix3x4ForId(meshHandle->m_objectId);
|
||||
return m_transformService->GetTransformForId(meshHandle->m_objectId);
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Assert(false, "Invalid mesh handle");
|
||||
return Matrix3x4::CreateIdentity();
|
||||
return Transform::CreateIdentity();
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 MeshFeatureProcessor::GetNonUniformScale(const MeshHandle& meshHandle)
|
||||
{
|
||||
if (meshHandle.IsValid())
|
||||
{
|
||||
return m_transformService->GetNonUniformScaleForId(meshHandle->m_objectId);
|
||||
}
|
||||
else
|
||||
{
|
||||
AZ_Assert(false, "Invalid mesh handle");
|
||||
return Vector3::CreateOne();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -844,11 +857,14 @@ namespace AZ
|
||||
AZ_Assert(m_cullBoundsNeedsUpdate, "This function only needs to be called if the culling bounds need to be rebuilt");
|
||||
AZ_Assert(m_model, "The model has not finished loading yet");
|
||||
|
||||
Matrix3x4 localToWorld = transformService->GetMatrix3x4ForId(m_objectId);
|
||||
Transform localToWorld = transformService->GetTransformForId(m_objectId);
|
||||
Vector3 nonUniformScale = transformService->GetNonUniformScaleForId(m_objectId);
|
||||
|
||||
Vector3 center;
|
||||
float radius;
|
||||
Aabb localAabb = m_model->GetAabb();
|
||||
localAabb.MultiplyByScale(nonUniformScale);
|
||||
|
||||
localAabb.GetTransformedAabb(localToWorld).GetAsSphere(center, radius);
|
||||
|
||||
m_cullable.m_cullData.m_boundingSphere = Sphere(center, radius);
|
||||
@@ -922,11 +938,11 @@ namespace AZ
|
||||
|
||||
// retrieve the list of probes that contain the centerpoint of the mesh
|
||||
TransformServiceFeatureProcessor* transformServiceFeatureProcessor = m_scene->GetFeatureProcessor<TransformServiceFeatureProcessor>();
|
||||
Matrix3x4 matrix3x4 = transformServiceFeatureProcessor->GetMatrix3x4ForId(m_objectId);
|
||||
Transform transform = transformServiceFeatureProcessor->GetTransformForId(m_objectId);
|
||||
|
||||
ReflectionProbeFeatureProcessor* reflectionProbeFeatureProcessor = m_scene->GetFeatureProcessor<ReflectionProbeFeatureProcessor>();
|
||||
ReflectionProbeFeatureProcessor::ReflectionProbeVector reflectionProbes;
|
||||
reflectionProbeFeatureProcessor->FindReflectionProbes(matrix3x4.GetTranslation(), reflectionProbes);
|
||||
reflectionProbeFeatureProcessor->FindReflectionProbes(transform.GetTranslation(), reflectionProbes);
|
||||
|
||||
if (!reflectionProbes.empty() && reflectionProbes[0])
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user