1
我正在努力創建一個cg着色器,該着色器從網格的每個頂點發出一個四邊形。我知道我正在研究製作幾何着色器,但找不到任何可以在Unity中發揮很好效果的文檔或幾何附加着色器示例 - 大多數只修改頂點子着色器中的現有頂點。Unity3D中的幾何發射着色器
對於網格上的每個頂點,我基本上都是在創建一個由在網格上每個現有頂點處創建的四邊形組成的粒子系統。
在此先感謝您的任何指導或資源!
我正在努力創建一個cg着色器,該着色器從網格的每個頂點發出一個四邊形。我知道我正在研究製作幾何着色器,但找不到任何可以在Unity中發揮很好效果的文檔或幾何附加着色器示例 - 大多數只修改頂點子着色器中的現有頂點。Unity3D中的幾何發射着色器
對於網格上的每個頂點,我基本上都是在創建一個由在網格上每個現有頂點處創建的四邊形組成的粒子系統。
在此先感謝您的任何指導或資源!
使用一個old answer of mine elsewhere作爲基礎,你需要如下因素:
#pragma geometry geom
[maxvertexcount(N)]
void geom(triangle v2g IN[3], inout TriangleStream<g2f> triStream)
請注意,雖然there are other types上面的示例一次完成三角形,但是。需要注意的第二件事是註釋中的N
,那就是告訴GPU有多少個返回的頂點。在我的情況下,我發送12(原始三角形中的每個邊緣爲4),在您的情況下,您可以使用GL_POINTS並獲取單個頂點並輸出4作爲四元組(因此N
將爲4
)。另請參閱MSDN有關如何爲其他輸入聲明geom
函數的文章。