1
我的渲染器支持2種頂點格式:不同的頂點格式的金屬着色器
typedef struct
{
packed_float3 position;
packed_float2 texcoord;
packed_float3 normal;
packed_float4 tangent;
packed_float4 color;
} vertex_ptntc;
typedef struct
{
packed_float3 position;
packed_float2 texcoord;
packed_float4 color;
} vertex_ptc;
我的一個着色器庫的頂點着色器的簽名如下:
vertex ColorInOut unlit_vertex(device vertex_ptc* vertex_array [[ buffer(0) ]],
constant uniforms_t& uniforms [[ buffer(1) ]],
unsigned int vid [[ vertex_id ]])
一些該渲染的網格着色器將使用一種格式,一些將使用另一種格式。我如何支持這兩種格式?該着色器僅使用vertex_ptc中的屬性。我是否需要編寫另一個頂點着色器?