If you're just opting for default Vertex and Pixel inputs which are usable on the default shading model, these are the reference member variables for each:
struct VertexInput
{
float3 vPositionOs : POSITION < Semantic( PosXyz ); >;
float2 vTexCoord : TEXCOORD0 < Semantic( LowPrecisionUv ); >;
float4 vNormalOs : NORMAL < Semantic( OptionallyCompressedTangentFrame ); >;
float4 vTangentUOs_flTangentVSign : TANGENT < Semantic( TangentU_SignV ); >;
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
// Skinning
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
#if ( D_SKINNING > 0 )
uint4 vBlendIndices : BLENDINDICES < Semantic( BlendIndices ); >;
float4 vBlendWeight : BLENDWEIGHT < Semantic( BlendWeight ); >;
#endif
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
// SSS Curvature
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
#if ( S_USE_PER_VERTEX_CURVATURE )
float flSSSCurvature : TEXCOORD2 < Semantic( Curvature ); >;
#endif
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
// Morph
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
#if ( D_MORPH )
float nVertexIndex : TEXCOORD14 < Semantic( MorphIndex ); >;
#endif
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
// Instancing data
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
uint nInstanceTransformID : TEXCOORD13 < Semantic( InstanceTransformUv ); >;
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
// Baked lighting
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
#if ( D_BAKED_LIGHTING_FROM_LIGHTMAP )
float2 vLightmapUV : TEXCOORD3 < Semantic( LightmapUV ); > ;
#endif
}
struct PixelInput
{
#if ( PROGRAM == VFX_PROGRAM_PS )
float3 vPositionWithOffsetWs : TEXCOORD0;
#else
float3 vPositionWs : TEXCOORD0;
#endif
float3 vNormalWs : TEXCOORD1;
float2 vTextureCoords : TEXCOORD2;
float4 vVertexColor : TEXCOORD4;
centroid float3 vCentroidNormalWs : TEXCOORD5; // For specular, used if interpolation sends normal outside the unit sphere
float3 vTangentUWs : TEXCOORD6;
float3 vTangentVWs : TEXCOORD7;
#if ( S_USE_PER_VERTEX_CURVATURE )
float flSSSCurvature : TEXCOORD11;
#endif
#if ( D_BAKED_LIGHTING_FROM_LIGHTMAP )
centroid float2 vLightmapUV : TEXCOORD3;
#endif
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
// System interpolants
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
#if ( PROGRAM != VFX_PROGRAM_PS )
float4 vPositionPs : SV_Position;
#else // PS only
float4 vPositionSs : SV_Position;
#if ( S_RENDER_BACKFACES )
bool face : SV_IsFrontFace;
#endif
#endif
}
Different combos expose different feature sets for these