Netcode Bootstrap
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
||||
#ifndef SKIN_MATRIX_HLSL_
|
||||
#define SKIN_MATRIX_HLSL_
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
struct SkinMatrix
|
||||
{
|
||||
static const uint size = 4 * 3 * 4;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static float3x4 Identity()
|
||||
{
|
||||
float3x4 rv = float3x4
|
||||
(
|
||||
float3(1, 0, 0),
|
||||
float3(0, 1, 0),
|
||||
float3(0, 0, 1),
|
||||
float3(0, 0, 0)
|
||||
);
|
||||
return rv;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static float3x4 ReadFromRawBuffer(ByteAddressBuffer b, int index)
|
||||
{
|
||||
uint byteAddress = index * size;
|
||||
|
||||
float3x4 rv;
|
||||
|
||||
rv._11_21_31_12 = asfloat(b.Load4(byteAddress + 00));
|
||||
rv._22_32_13_23 = asfloat(b.Load4(byteAddress + 16));
|
||||
rv._33_14_24_34 = asfloat(b.Load4(byteAddress + 32));
|
||||
|
||||
CHECK_RAW_BUFFER_OUT_OF_BOUNDS(RUKHANKADEBUGMARKERS_DEFORMATION_FRAME_SKIN_MATRICES_READ, byteAddress, size, b);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static void WriteToRawBuffer(RWByteAddressBuffer b, float3x4 v, int index)
|
||||
{
|
||||
uint byteAddress = index * size;
|
||||
|
||||
b.Store4(byteAddress + 00, asuint(v._11_21_31_12));
|
||||
b.Store4(byteAddress + 16, asuint(v._22_32_13_23));
|
||||
b.Store4(byteAddress + 32, asuint(v._33_14_24_34));
|
||||
|
||||
CHECK_RAW_BUFFER_OUT_OF_BOUNDS(RUKHANKADEBUGMARKERS_GPUANIMATOR_COMPUTE_SKIN_MATRICES_OUT_SKIN_MATRICES_WRITE, byteAddress, size, b);
|
||||
}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user