CGINCLUDE
Ссылки к модулям cginc
#include "Name.cginc"
переменные
int x1;
структуры
struct geometryOutput
{
float4 pos : SV_POSITION;
float2 uv: TEXCOORD0;
};
простые функции
geometryOutput VertexOutput(float3 pos, float2 uv)
{
geometryOutput o;
o.pos = UnityObjectToClipPos(pos);
o.uv = x1 * uv;
return o;
}
[maxvertexcount(3)]
void geo(triangle geometryOutput IN[3] : SV_POSITION, inout TriangleStream<geometryOutput> OutputStream)
{
geometryOutput o;
float3 pos = IN[0].pos;
float x = x1;
OutputStream.Append(VertexOutput(float3(x, -x, 0), float2(1, 0)));
OutputStream.Append(VertexOutput(float3(-x, -x, 0), float2(1, 1)));
OutputStream.Append(VertexOutput(float3(-x, 0, 0), float2(0, 1)));
}
описание
[km_showhide]
[maxvertexcount(3)]
Он говорит GPU, что мы будем выводить не более 3 вершин
но не обязаны это делать
triangle geometryOutput IN[3]
в качестве ввода один треугольник
(состоящий из трёх точек)
[/km_showhide]