depth, normals i guess

This commit is contained in:
2026-02-19 22:06:21 +02:00
parent 4dd2e13c48
commit 04b0f02e7f
18 changed files with 129 additions and 55 deletions

View File

@@ -3,7 +3,7 @@ float GetSpecularThreshold( float m_fMetalness )
return 0;
}
struct BRDF_Data
struct BRDF_t
{
float3 m_vRayIn;
float3 m_vRayOut;
@@ -23,7 +23,7 @@ struct BRDF_Data
float fSineNormalView = saturate(dot(m_vNormal, m_vRayIn));
float fFresnelLight = FresnelDiffuseTerm(fSineNormalLight);
float fFresnelView = FresnelDiffuseTerm(fSineNormalView);
return fFresnelView * fFresnelLight;
return saturate(dot(m_vNormal,m_vRayOut));
}
float3 GetOutGoingDirection()

View File

@@ -1,12 +0,0 @@
#include "../macros.hlsl"
COMMON
{
}
VS
{
}
PS
{
}

View File

@@ -4,16 +4,20 @@ COMMON {
cbuffer CameraInfo
{
float4x4 g_matViewProjection;
float4 g_vViewPosition;
};
struct PerModelData
{
float4x4 m_matTranslation;
float4x4 m_matRotation;
}
StructuredBuffer<PerModelData> g_modelData;
struct PS_INPUT
{
float4 m_vScreenPosition: SV_POSITION;
float4 m_vWorldPosition: POSITION;
float4 m_vTexCoord: TEXCOORD0;
float4 m_vNormal: NORMAL0;
}
}
VS
@@ -22,6 +26,8 @@ VS
struct VS_INPUT
{
float3 m_vPosition: POSITION;
float2 m_vTexCoord: TEXCOORD0;
float3 m_vNormal: NORMAL0;
}
PS_INPUT vsMain( VS_INPUT input )
@@ -36,7 +42,15 @@ VS
output.m_vScreenPosition,
g_matViewProjection
);
output.m_vWorldPosition = float4(input.m_vPosition, 1);
output.m_vWorldPosition = mul(
float4(input.m_vPosition, 1),
g_modelData[0].m_matTranslation
);
output.m_vNormal = mul(
float4(input.m_vNormal, 1),
g_modelData[0].m_matRotation
);
output.m_vTexCoord = float4(input.m_vTexCoord, 0, 0);
return output;
}
}
@@ -47,8 +61,15 @@ PS
float4 psMain( PS_INPUT input )
{
float4 vWorldSpacePosition = input.m_vWorldPosition;
return float4(vWorldSpacePosition);
float4 vWorldSpacePosition = input.m_vNormal;
BRDF_t brdf = {};
brdf.m_vRayIn = normalize(g_vViewPosition.xyz-input.m_vWorldPosition.xyz);
brdf.m_vRayOut = normalize(-input.m_vWorldPosition.xyz);
brdf.m_vNormal = input.m_vNormal.xyz;
brdf.m_fRoughness = 1;
brdf.m_fMetalness = 1;
return float4(brdf.BurleyDiffuse(), 1);
}
}