This commit is contained in:
2026-02-20 19:35:09 +02:00
parent 3ed689f801
commit c00ecf4081
35 changed files with 576 additions and 99 deletions

View File

@@ -10,6 +10,7 @@ COMMON {
{
float4x4 m_matTranslation;
float4x4 m_matRotation;
uint32_t m_uAlbedo;
}
StructuredBuffer<PerModelData> g_modelData;
struct PS_INPUT
@@ -30,13 +31,13 @@ VS
float3 m_vNormal: NORMAL0;
}
PS_INPUT vsMain( VS_INPUT input )
PS_INPUT vsMain( VS_INPUT input, uint uInstance: SV_InstanceID )
{
PS_INPUT output = {};
output.m_vScreenPosition = float4(input.m_vPosition, 1);
output.m_vScreenPosition = mul(
output.m_vScreenPosition,
g_modelData[0].m_matTranslation
g_modelData[uInstance].m_matTranslation
);
output.m_vScreenPosition = mul(
output.m_vScreenPosition,
@@ -44,11 +45,11 @@ VS
);
output.m_vWorldPosition = mul(
float4(input.m_vPosition, 1),
g_modelData[0].m_matTranslation
g_modelData[uInstance].m_matTranslation
);
output.m_vNormal = mul(
float4(input.m_vNormal, 1),
g_modelData[0].m_matRotation
g_modelData[uInstance].m_matRotation
);
output.m_vTexCoord = float4(input.m_vTexCoord, 0, 0);
return output;
@@ -57,15 +58,23 @@ VS
PS
{
#include "brdf.hlsl"
#include "textures.hlsl"
struct PS_OUTPUT
{
float4 m_vAlbedo: SV_Target0;
float4 m_vNormal: SV_Target1;
float4 m_vWorldPosition: SV_Target2;
}
PS_OUTPUT psMain( PS_INPUT input )
PS_OUTPUT psMain( PS_INPUT input, uint uInstance: SV_InstanceID )
{
PS_OUTPUT output = {};
output.m_vAlbedo = input.m_vNormal;
PerModelData data = g_modelData[uInstance];
output.m_vAlbedo = g_textures[data.m_uAlbedo].Sample(g_textureSampler, input.m_vTexCoord.xy);
output.m_vWorldPosition = input.m_vWorldPosition;
output.m_vNormal = input.m_vNormal;
return output;
}
}