Backlog/engine/rend/shaders/meshes.vert.hlsl

44 lines
960 B
HLSL

struct Input
{
float3 Position : TEXCOORD0;
float3 Normal : TEXCOORD1;
float4 Color : TEXCOORD2;
float2 UV : TEXCOORD3;
uint Bones : TEXCOORD4;
uint weights : TEXCOORD5;
uint Instance : SV_InstanceID;
};
struct Output
{
float2 TexCoord : TEXCOORD0;
float4 Position : SV_Position;
};
struct Scene
{
float4x4 Model;
};
StructuredBuffer<Scene> scene: register(t0, space0);
cbuffer Uniforms : register(b0, space1)
{
float4x4 ViewProjection;
float time;
};
Output main(Input input)
{
Output output;
output.TexCoord = input.UV;
// output.TexCoord[0] += scene[input.Instance].Model[0][0] * 0.0001;
//output.Position = mul(ViewProjection, float4(input.Position - float3(1 * sin(time + 0.05 * input.Position[0]),0, 1 * cos(time + 0.05 * input.Position[0])), 1.0));
output.Position = mul(ViewProjection, mul(scene[input.Instance].Model, float4(input.Position, 1.0)));
return output;
}