Rendering

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);
    }
}

Source: Facepunch/sbox-docs (CC-BY-4.0) · updated 2024-12-16. Read it rendered on the official docs.

More in Rendering

Community wiki — not affiliated with Facepunch Studios. For the latest and most authoritative information, see the official developer wiki.