57 lines
1.1 KiB
HLSL
57 lines
1.1 KiB
HLSL
|
|
struct VertexData
|
|
{
|
|
float4 m_Normal;
|
|
float2 m_TexCoord0;
|
|
float2 m_TexCoord1;
|
|
float4 m_Color0;
|
|
};
|
|
|
|
struct TransformData
|
|
{
|
|
float4x4 transform;
|
|
};
|
|
|
|
struct MaterialData
|
|
{
|
|
float m_AlbedoFactor[4];
|
|
float m_EmissionFactor[3];
|
|
float m_MetalFactor;
|
|
float m_RoughFactor;
|
|
uint m_AlbedoTex;
|
|
uint m_NormalTex;
|
|
uint m_MetalRoughTex;
|
|
uint m_OcclusionTex;
|
|
uint m_EmissionTex;
|
|
};
|
|
|
|
struct Block
|
|
{
|
|
uint vertexBufferHandle;
|
|
uint vertexDataHandle;
|
|
uint materialBufferHandle;
|
|
uint nodeBufferHandle;
|
|
int m_MaterialIdx;
|
|
uint m_NodeIdx;
|
|
};
|
|
|
|
struct Camera
|
|
{
|
|
float4x4 view;
|
|
float4x4 proj;
|
|
};
|
|
|
|
#define INVALID_HANDLE 0xFFFFFFFF
|
|
|
|
[[vk::binding(0, 0)]] StructuredBuffer<float4> vertexBuffer[];
|
|
[[vk::binding(0, 0)]] StructuredBuffer<VertexData> vertexDataBuffer[];
|
|
[[vk::binding(0, 0)]] StructuredBuffer<MaterialData> materialsBuffer[];
|
|
[[vk::binding(0, 0)]] StructuredBuffer<TransformData> nodeBuffer[];
|
|
|
|
[[vk::binding(1, 0)]] Texture2D<float4> textures[];
|
|
[[vk::binding(1, 0)]] SamplerState immutableSamplers[];
|
|
|
|
[[vk::binding(0, 1)]] ConstantBuffer<Camera> camera;
|
|
|
|
[[vk::push_constant]]
|
|
Block pcb; |