2020-08-06 00:54:43 +02:00
|
|
|
struct MaterialVertexParameter
|
|
|
|
|
{
|
|
|
|
|
float3 worldPosition;
|
2022-03-19 22:45:30 +01:00
|
|
|
float3 viewPosition;
|
2023-02-27 13:52:57 +01:00
|
|
|
float3x3 worldToTangent;
|
2020-08-06 00:54:43 +02:00
|
|
|
#if NUM_MATERIAL_TEXCOORDS
|
|
|
|
|
float2 texCoords[NUM_MATERIAL_TEXCOORDS];
|
|
|
|
|
#endif
|
2020-09-19 14:36:50 +02:00
|
|
|
#ifdef USE_INSTANCING
|
2020-08-06 00:54:43 +02:00
|
|
|
float4x4 instanceLocalToWorld;
|
|
|
|
|
float3 instanceLocalPosition;
|
|
|
|
|
float4 perInstanceParams;
|
|
|
|
|
uint instanceId;
|
|
|
|
|
#endif
|
|
|
|
|
//float3 preSkinnedPosition;
|
|
|
|
|
//float3 perSkinnedNormal;
|
|
|
|
|
float4 vertexColor;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MaterialFragmentParameter
|
|
|
|
|
{
|
2023-02-27 13:52:57 +01:00
|
|
|
float3 position_TS;
|
|
|
|
|
float3 viewDir_TS;
|
2020-08-06 00:54:43 +02:00
|
|
|
float4 vertexColor;
|
2023-02-27 13:52:57 +01:00
|
|
|
float3x3 worldToTangent;
|
2020-09-19 14:36:50 +02:00
|
|
|
#ifdef USE_INSTANCING
|
2020-08-06 00:54:43 +02:00
|
|
|
float3 perInstanceParams;
|
|
|
|
|
#endif
|
|
|
|
|
#if NUM_MATERIAL_TEXCOORDS
|
|
|
|
|
float2 texCoords[NUM_MATERIAL_TEXCOORDS];
|
|
|
|
|
#endif
|
2023-02-27 13:52:57 +01:00
|
|
|
float3 transformWorldToTangent(float3 vec)
|
2020-08-06 00:54:43 +02:00
|
|
|
{
|
2023-02-27 13:52:57 +01:00
|
|
|
return mul(worldToTangent, vec);
|
2020-09-19 14:36:50 +02:00
|
|
|
}
|
2020-08-06 00:54:43 +02:00
|
|
|
};
|
2020-09-19 14:36:50 +02:00
|
|
|
|