Additional improvements to scene rendering

This commit is contained in:
Wojtek Figat
2022-11-15 22:39:03 +01:00
parent a2670dc3b5
commit eb281a7574
11 changed files with 68 additions and 79 deletions

View File

@@ -30,14 +30,12 @@ PACK_STRUCT(struct DeferredMaterialShaderData {
float TimeParam;
Float4 ViewInfo;
Float4 ScreenSize;
Float3 WorldInvScale;
float WorldDeterminantSign;
Float2 Dummy0;
float LODDitherFactor;
float PerInstanceRandom;
Float4 TemporalAAJitter;
Float3 GeometrySize;
float Dummy1;
float WorldDeterminantSign;
});
DrawPass DeferredMaterialShader::GetDrawModes() const
@@ -96,13 +94,6 @@ void DeferredMaterialShader::Bind(BindParameters& params)
materialData->TimeParam = params.TimeParam;
materialData->ViewInfo = view.ViewInfo;
materialData->ScreenSize = view.ScreenSize;
const float scaleX = Float3(drawCall.World.M11, drawCall.World.M12, drawCall.World.M13).Length();
const float scaleY = Float3(drawCall.World.M21, drawCall.World.M22, drawCall.World.M23).Length();
const float scaleZ = Float3(drawCall.World.M31, drawCall.World.M32, drawCall.World.M33).Length();
materialData->WorldInvScale = Float3(
scaleX > 0.00001f ? 1.0f / scaleX : 0.0f,
scaleY > 0.00001f ? 1.0f / scaleY : 0.0f,
scaleZ > 0.00001f ? 1.0f / scaleZ : 0.0f);
materialData->WorldDeterminantSign = drawCall.WorldDeterminantSign;
materialData->LODDitherFactor = drawCall.Surface.LODDitherFactor;
materialData->PerInstanceRandom = drawCall.PerInstanceRandom;