Fix InstanceOrigin, PerInstanceRandom and LODDitherFactor to not use interpolation between shader stages

This commit is contained in:
2022-05-12 13:30:59 +02:00
parent ab37cc72a9
commit 70de677266
3 changed files with 9 additions and 12 deletions
@@ -76,8 +76,8 @@ struct VertexOutput
#if USE_CUSTOM_VERTEX_INTERPOLATORS
float4 CustomVSToPS[CUSTOM_VERTEX_INTERPOLATORS_COUNT] : TEXCOORD9;
#endif
float3 InstanceOrigin : TEXCOORD6;
float InstanceParams : TEXCOORD7; // x-PerInstanceRandom
nointerpolation float3 InstanceOrigin : TEXCOORD6;
nointerpolation float InstanceParams : TEXCOORD7; // x-PerInstanceRandom
};
// Interpolants passed to the pixel shader
@@ -94,8 +94,8 @@ struct PixelInput
#if USE_CUSTOM_VERTEX_INTERPOLATORS
float4 CustomVSToPS[CUSTOM_VERTEX_INTERPOLATORS_COUNT] : TEXCOORD9;
#endif
float3 InstanceOrigin : TEXCOORD6;
float InstanceParams : TEXCOORD7; // x-PerInstanceRandom
nointerpolation float3 InstanceOrigin : TEXCOORD6;
nointerpolation float InstanceParams : TEXCOORD7; // x-PerInstanceRandom
bool IsFrontFace : SV_IsFrontFace;
};
@@ -43,8 +43,8 @@ struct GeometryData
#endif
float3 WorldNormal : TEXCOORD3;
float4 WorldTangent : TEXCOORD4;
float3 InstanceOrigin : TEXCOORD5;
float2 InstanceParams : TEXCOORD6; // x-PerInstanceRandom, y-LODDitherFactor
nointerpolation float3 InstanceOrigin : TEXCOORD5;
nointerpolation float2 InstanceParams : TEXCOORD6; // x-PerInstanceRandom, y-LODDitherFactor
float3 PrevWorldPosition : TEXCOORD7;
};
+3 -6
View File
@@ -98,26 +98,24 @@ struct ModelInput
#if USE_VERTEX_COLOR
half4 Color : COLOR;
#endif
#if USE_INSTANCING
float4 InstanceOrigin : ATTRIBUTE0; // .w contains PerInstanceRandom
float4 InstanceTransform1 : ATTRIBUTE1; // .w contains LODDitherFactor
float3 InstanceTransform2 : ATTRIBUTE2;
float3 InstanceTransform3 : ATTRIBUTE3;
half4 InstanceLightmapArea : ATTRIBUTE4;
half4 InstanceLightmapArea : ATTRIBUTE4;
#endif
};
struct ModelInput_PosOnly
{
float3 Position : POSITION;
#if USE_INSTANCING
float4 InstanceOrigin : ATTRIBUTE0; // .w contains PerInstanceRandom
float4 InstanceTransform1 : ATTRIBUTE1; // .w contains LODDitherFactor
float3 InstanceTransform2 : ATTRIBUTE2;
float3 InstanceTransform3 : ATTRIBUTE3;
half4 InstanceLightmapArea : ATTRIBUTE4;
half4 InstanceLightmapArea : ATTRIBUTE4;
#endif
};
@@ -129,13 +127,12 @@ struct ModelInput_Skinned
float4 Tangent : TANGENT;
uint4 BlendIndices : BLENDINDICES;
float4 BlendWeights : BLENDWEIGHT;
#if USE_INSTANCING
float4 InstanceOrigin : ATTRIBUTE0; // .w contains PerInstanceRandom
float4 InstanceTransform1 : ATTRIBUTE1; // .w contains LODDitherFactor
float3 InstanceTransform2 : ATTRIBUTE2;
float3 InstanceTransform3 : ATTRIBUTE3;
half4 InstanceLightmapArea : ATTRIBUTE4;
half4 InstanceLightmapArea : ATTRIBUTE4;
#endif
};