struct VertexInput { float2 positions; float3 colors; float2 texCoord; }; struct UniformBuffer { float4x4 model; float4x4 view; float4x4 proj; }; ConstantBuffer ubo; struct VertexOutput { float4 pos: SV_Position; float3 color; float2 texCoord; }; [shader("vertex")] VertexOutput vertMain(VertexInput inVert) { VertexOutput outVert; outVert.pos = mul(ubo.proj, mul(ubo.view, mul(ubo.model, float4(inVert.positions, 0.0, 1.0)))); outVert.color = inVert.colors; outVert.texCoord = inVert.texCoord; return outVert; } Sampler2D texture; [shader("fragment")] float4 fragMain(VertexOutput inVert) : SV_Target { //return float4(inVert.texCoord, 0.0, 1.0); //return float4(inVert.color * texture.Sample(inVert.texCoord).rgb, 1.0); return texture.Sample(inVert.texCoord); }