struct VertexIn { float3 Pos : Position; }; cbuffer EveryObject2D : register(c0) { float4x4 VP; }; struct Pixel2DIn { float4 Pos : SV_Position; float2 Uv : TEXCOORD; }; const static float Width = 5.0f; VertexIn PassThrough(VertexIn input) { return input; } [maxvertexcount(16)] void Lazer(line VertexIn input[2],inout TriangleStream Quads) { //build coordinate system float3 r =normalize(input[1].Pos-input[0].Pos); float3 s = abs(r); //set s ortogonal to r if(s.x