Vertex Helpers

Helper functions to do standard vertex shader, does instancing, skinning, etc.

This would eventually be moved to a Vertex or inside PixelInput class that would be more malleable.

Reference

  • ProcessVertex( VertexInput i )

    • Sets up common processing for the Vertex Shader, processing the following steps:

      • Instancing

      • Skinning

      • Position on the world

      • Normals, Tangents from transformation

  • FinalizeVertex( PixelInput o )

    • Does post-processing for the vertex, converts the position on the world to what’s displayed on the screen ( Projection Space )


You’re expected to commonly use these on start and end of the Vertex Block, and have any modifications of it in between them

VS
{
    #include "common/vertex.hlsl"
    //
    // Main
    //
    PixelInput MainVs( VertexInput i)
    {
        PixelInput o = ProcessVertex(i);
        // Add your vertex manipulation functions here
        return FinalizeVertex(o);
    }
}