1.透明度剔除(性能較差,不同顏色時需要不同材質會導致多個dc)
clip(_Color.a - _Cutoff); 傳入值為0時 剔除
類似的草體效果:
2.GPU Instaning(可以自定義一次性合批最多1023個,能夠傳遞顏色值等等(做草體融入地形等等效果),不會額外產生DC)
Graphics.DrawMeshInstanced
效果:
3.曲面細分+幾何著色器實現(適合大世界,方式2如果是大世界的話 草體數據會非常多,不太適用)
了解一下渲染管線
主要是在紅框的階段處理
曲面細分著色器(用來增加頂點):
幾何著色器:
對每個頂點進行操作,可以修改一整個三角形(和頂點著色器的區別是:頂點是只能改一個獨立的頂點,這個是改一整個獨立的三角形或者四邊形),輸出一個草體三角形
曲面細分+幾何著色器結合:
調整曲線細分次數:
細分次數2
細分次數5
參考:
Grass Shader翻譯及實現(草地渲染): Grass Shader翻譯及實現(草地渲染)
曲面細分和幾何著色器鏈接:鏈接: 【百人計劃】圖形 3.3 曲面細分與幾何著色器 大規模草渲染