我是编写着色器的新手,我正在使用练习几何着色器。着色器的目标是使#34;正常"传递产生透明像素,使得对象是不可见的,而"几何"传递将采取每个三角形,重绘在原始相同的地方,但黑色。因此,我希望输出是原始对象,但是黑色。但是,我的几何传递似乎没有产生任何我能看到的输出:
以下是我目前为着色器提供的代码。
ordnum
由于我所做的一切都是采用相同的三角形,我已经给出并将它们附加到三角形流中,我不确定我做错了什么也不会出现任何问题。任何人都知道为什么会这样吗?
答案 0 :(得分:1)
我注意到你没有打电话
在几何着色器中输入三角形的3个顶点之后triStrem.RestartStrip();
。
这会通知流特定三角形条带已结束,并且将开始新的三角形条带。如果你不这样做,传递给流的每个(单个)顶点将使用三角形条图案添加到现有的三角形条:https://en.wikipedia.org/wiki/Triangle_strip
我自己对地理着色器相当陌生,所以我不确定这是否是您的问题,我不认为在每个结束时会自动调用RestartStrip函数。几何着色器,但尚未测试过。相反,我认为只有当你到达maxvertexcount
时才会自动调用它。对于一个三角形,我会将maxvertexcount设置为3,而不是现在的12。
(我也知道得到任何着色器的答案都很难,所以我试图提供帮助。)