diff --git a/Source/Engine/Core/Math/Transform.cpp b/Source/Engine/Core/Math/Transform.cpp index 8c9a45a0d..627ca4682 100644 --- a/Source/Engine/Core/Math/Transform.cpp +++ b/Source/Engine/Core/Math/Transform.cpp @@ -150,11 +150,18 @@ void Transform::LocalToWorldVector(const Vector3& vector, Vector3& result) const Vector3::Transform(tmp, Orientation, result); } -void Transform::LocalToWorld(const Vector3& point, Vector3& result) const +void Transform::LocalToWorld(const Float3& point, Float3& result) const { - Vector3 tmp = point * Scale; - Vector3::Transform(tmp, Orientation, tmp); - Vector3::Add(tmp, Translation, result); + Float3 tmp = point * Scale; + Float3::Transform(tmp, Orientation, tmp); + Float3::Add(tmp, Translation, result); +} + +void Transform::LocalToWorld(const Double3& point, Double3& result) const +{ + Double3 tmp = point * Scale; + Double3::Transform(tmp, Orientation, tmp); + Double3::Add(tmp, Translation, result); } void Transform::WorldToLocal(const Transform& other, Transform& result) const diff --git a/Source/Engine/Core/Math/Transform.h b/Source/Engine/Core/Math/Transform.h index f7590cd78..e5d1c07bc 100644 --- a/Source/Engine/Core/Math/Transform.h +++ b/Source/Engine/Core/Math/Transform.h @@ -219,7 +219,14 @@ public: /// /// The local space point. /// The world space point. - void LocalToWorld(const Vector3& point, Vector3& result) const; + void LocalToWorld(const Float3& point, Float3& result) const; + + /// + /// Performs transformation of the given point in local space to the world space of this transform. + /// + /// The local space point. + /// The world space point. + void LocalToWorld(const Double3& point, Double3& result) const; /// /// Performs transformation of the given transform in local space to the world space of this transform. diff --git a/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp b/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp index 850aafc02..5093d3ea1 100644 --- a/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp +++ b/Source/Engine/Graphics/Materials/MaterialShaderFeatures.cpp @@ -78,7 +78,7 @@ void ForwardShadingFeature::Bind(MaterialShader::BindParameters& params, SpanEnvironmentProbes.Count(); i++) { const RenderEnvironmentProbeData& probe = cache->EnvironmentProbes.Get()[i]; - const float sphereCullDistance = objectBounds.Radius + probe.Radius; + const float sphereCullDistance = (float)objectBounds.Radius + probe.Radius; const float distanceSq = Float3::DistanceSquared(probe.Position, objectBounds.Center); if (distanceSq <= sphereCullDistance * sphereCullDistance && distanceSq < minDistanceSq) {