Hello,
I wrote a geometry shader in order to render (in the future, grass) some planes. I get a strange error that I do not understand.
It says: The given primitive topology does not match with the topology expected by the geometry shader
I do not have the magenta error color, but nothing appears in the scene. Could anyone point me my error ?
struct v2g
{
float4 pos: POSITION;
// float3 norm : NORMAL;
};
struct g2f
{
float4 pos : POSITION;
// float3 norm : NORMAL ;
};
v2g vert(appdata_full v)
{
// float3 v0 = v.vertex.xyz;
v2g o;
o.pos = UnityObjectToClipPos(v.vertex);
// o.norm = v.normal;
return o;
}
[maxvertexcount(3)]
void geom(point v2g v[1], inout TriangleStream <g2f> triStream)
{
float3 lightPosition = _WorldSpaceLightPos0;
float3 perpAngle = float3(1,0,0);
float3 up_normal = float3(0,1,0);
float3 faceNormal = cross(perpAngle, up_normal);
float4 v0 = v[0].pos;
float4 v1 = v0;
v1.xyz += _GrassWidth*perpAngle;
float4 v2 = v1;
v2.xyz += (0,1,0)*_GrassHeight;
g2f o ;
o.pos = UnityObjectToClipPos(v0);
triStream.Append(o);
o.pos = UnityObjectToClipPos(v1);
triStream.Append(o);
o.pos = UnityObjectToClipPos(v2);
triStream.Append(o);
}
Thanks a lot !