42 lines
886 B
HLSL
42 lines
886 B
HLSL
/*
|
|
|
|
Compile command:
|
|
dxc.exe -T vs_6_0 -spirv -E Test_VS -Fo rocketz.spv rocketz.hlsl
|
|
|
|
*/
|
|
|
|
struct S_cbPerObjectBones {
|
|
float4 v4Bones[4095];
|
|
};
|
|
|
|
shared cbuffer _cbPerObjectBones : register(b4)
|
|
{
|
|
S_cbPerObjectBones cbPerObjectBones;
|
|
};
|
|
|
|
struct v2f {
|
|
float4 HPosition : SV_POSITION;
|
|
float4 Position : POSITION;
|
|
};
|
|
|
|
struct a2v_StandardWeighted {
|
|
float4 Position : POSITION0;
|
|
int4 Indices : BLENDINDICES;
|
|
};
|
|
|
|
float3x4 FailFunc(int4 i, float4 v4Bones[4095])
|
|
{
|
|
float4 mRow1 = v4Bones[i.x + 0];
|
|
return float3x4(mRow1, mRow1, mRow1);
|
|
}
|
|
|
|
v2f Test_VS(a2v_StandardWeighted input)
|
|
{
|
|
v2f OUT = (v2f)0;
|
|
float4 inputPosition = float4(input.Position.xyz, 1);
|
|
int4 i = input.Indices;
|
|
float3x4 mMatrix = FailFunc(i, cbPerObjectBones.v4Bones);
|
|
float4 v4Position = float4(mul(mMatrix, inputPosition), 1);
|
|
OUT.Position = v4Position;
|
|
return OUT;
|
|
} |