Tesselation学习
Tesselation的作用:给低片面数模型镶嵌更多片面,让低模变高模。
和法线贴图不同,法线本质是通过改变低模表面的颜色来模拟高模,比如在一个片面上普通diffuse是均匀的颜色分布(因为光照颜色一样,它插值顶点对应纹理色值,所以是均匀的,很多情况还是单一的,比如全是灰色等),而法线贴图通过插手光照颜色,使得该片面的色值各种变化而造成眼睛的错觉:该片面表面是凹凸不平的,是多个片面构成的。
文:http://blog.csdn.net/qq984786645/article/details/73920811中所说的置换贴图是在顶点shader里对顶点位置进行一定的偏移而让模型变得更加凹凸,但这个其实很依赖模型的片面数,因为它是对顶点进行操作的,片面很少顶点很稀,效果就出不来,官方文档(Unity/Editor/Data/Documentation/en/Manual/SL-SurfaceShaderTessellation.html)中的“displacement in vert shader”就是这样做的。
但如果先使用Tesselation增加片面,然后在使用置换贴图进行偏移顶点,效果就出来了。官方文档也说了,先进行tesselation,然后对所有顶点执行domain shader里的vert函数
至于Tesselation的几个镶嵌方案可以看官方文档的例子。
有时候制作置换贴图需要花时间,可以通过Phong Tesselation来进行默认的凹凸平滑,来代替置换贴图,具体效果可以看官方文档。
看完官方文档后,需要知道的是:
1.Tesselation只是在片面上增加更多片面,比如把一个三角形对半分成2个三角形,如果不做任何其他处理,直接进行surf处理,和原来的渲染结果是一样的。
2.Displacement Mapping即置换贴图做的事情是,对每个顶点进行位置偏移。
3.Phong Tesselation=Tesselation+Phong
一般的方案是1+2或者单独3,Phong是一种平滑各个片面的Displacement mapping算法
值得注意的是,Tesselation需要DX11或OPENGL Core这么高级的GPU API
最新文章
- python自动化测试(4)-使用第三方python库技术实现
- 集群节点间网络通信TIPC
- submit 后台运行代码
- 【目录】Matlab和C#混合编程文章目录
- sqlserver -- 学习笔记(六)日期格式转换
- 【HTTP劫持和DNS劫持】腾讯的实际业务分析
- 面向对象 理解 C#复习
- OpenCV入门学习笔记
- Linux Curses编程实现贪吃蛇
- 面向对象设计模式之TemplateMethod模板方法(行为型)
- 调用test case集,并生成测试报告
- jQuery插件开发入门
- Linux系统编程(11)——进程间通信之有名管道
- mac下配置cocos2d-x3.0
- ASP.NET MVC HttpPostedFileBase文件上传
- SparkMLlib-----GMM算法
- 【Python】 日志管理logging
- js 重写alert 兼容iphone使得alert 不带src
- JS 删除Array对象中的元素。
- vue3.0中如何使用ueditor