Unity Shader unity文档学习笔记(二十一):几种草体的实现方式(透明度剔除,GPU Instaning, 曲面细分+几何着色器实现)

1.透明度剔除(性能较差,不同颜色时需要不同材质会导致多个dc)

clip(_Color.a - _Cutoff); 传入值为0时 剔除

类似的草体效果:

2.GPU Instaning(可以自定义一次性合批最多1023个,能够传递颜色值等等(做草体融入地形等等效果),不会额外产生DC)

Graphics.DrawMeshInstanced

效果:

3.曲面细分+几何着色器实现(适合大世界,方式2如果是大世界的话 草体数据会非常多,不太适用)

了解一下渲染管线

主要是在红框的阶段处理

曲面细分着色器(用来增加顶点):

几何着色器:

对每个顶点进行操作,可以修改一整个三角形(和顶点着色器的区别是:顶点是只能改一个独立的顶点,这个是改一整个独立的三角形或者四边形),输出一个草体三角形

曲面细分+几何着色器结合:

调整曲线细分次数:

细分次数2

细分次数5

参考:

Grass Shader翻译及实现(草地渲染): Grass Shader翻译及实现(草地渲染)

曲面细分和几何着色器链接:链接: 【百人计划】图形 3.3 曲面细分与几何着色器 大规模草渲染

相关推荐
王维志3 小时前
使用C#控制台批量删除 Unity目录里的 .meta文件
unity·c#·.net
非凡ghost4 小时前
Wireshark中文版(网络抓包工具)
网络·windows·学习·测试工具·wireshark·软件需求
摇滚侠6 小时前
三天学通 Groovy—Groovy 程序设计,Groovy 中的数据类型,笔记 1-13
笔记·groovy
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [driver]base
linux·笔记·学习
am心6 小时前
学习笔记-套餐接口
笔记·学习
科技林总7 小时前
【系统分析师】3.6 操作系统
学习
avi91117 小时前
Unity 天命6源码- 商业游戏说明分析
开发语言·unity·c#·游戏开发·游戏源码
世洋Blog7 小时前
Unity脚本生命周期(全)
unity·游戏引擎
悠哉悠哉愿意9 小时前
【嵌入式学习笔记】OLED 显示驱动 (SSD1306)
笔记·单片机·嵌入式硬件·学习
萧技电创EIIA9 小时前
如何使用嘉立创EDA绘制元件
嵌入式硬件·学习·硬件工程·pcb工艺