Unity的地形开发管线
由于这段时间泡在场景组这边,接到了他们提出的许多需求,其中地形相关的占了许多,零零散散做下来,发现已经集成了一套地形的小小管线,因此做一总结。
工具
首先需要提到的是Unity自带的Preview Package:Terrain Tools,虽说有许多地形相关的功能,但个人感觉最为便利的是多出来的笔刷(可旋转)、Mesh Stamp、splatmaps的导入导出。问题在于,是预览版所以不太稳定。
样条线铺路
虽然没有用过虚幻,但是听美术讲了讲他们的地形样条线,正巧发现已经有现成的样条线轮子,以及实现参考,于是开始造车。
直接把所有的参考导入到项目里,似乎总是不能运行起来,在一番操作之后,做了如下修改:
目录结构的确定:PathCreator放到Asset...
在unity中实现真实感布料
总的参数与大纲
这次做了一个基本不会用上的东西,毕竟为了布料花上这么大的消耗不太划算,除非是暖暖一类的换装游戏。回到正题,之前做毕设的时候就在研究这个模型,但是当时不太行没有发现问题。参考的文献是《A Practical Microcylinder Appearance Model for Cloth Rendering》1,还有一篇博客。这篇博客相当详细的说明了他参照文献的实现过程,不过是在houdini里面模拟的。英文好日语好的可以去看看。
文献使用光追渲染的效果如下。
可以发现,这个基于微圆柱体的模型的特点就是,经纬线的参数可以不同,使用不同的参数可以组合表现的范围很广,平织的、丝绸、生丝、天鹅绒都能模拟。
参数主要有这几个,对于经线纬线各有一套,也就是一共两套:
...
在unity中实现基于PBR的丝绸材质
丝绸的实现挺普遍的了,但是自己实际操作一遍之后还是会发现有些小细节需要注意的地方。
注意本文的数据精度均为float,由于个人对这个研究不深,不敢乱改,之后学明白了再来优化一下计算精度,不然计算太费。
另外本文的算法实现均直接采用的是Google的开源渲染器Filament的实现。如果想要深入了解PBR的原理和细节,可以看《Real-Time Rendering 4th》的第九章,Filament的设计文档和浅墨的PBR白皮书,我推荐使用Disney开发的BRDF Explore来研究BRDF的性质。
开始前的准备
丝绸的特性
丝绸最主要的就是其各向异性高光,这也正是为什么在unity中,丝绸的效果必须单独实现而不能借助standard shader(不支持各向异性的高光,...
呆在家里的两个月
想一想这两个月,其实还挺奇妙的,因为人在疫情的最中心,结果在家一直关禁闭。一开始玩了好几天,后来毕设开始开题,就一股脑的研究题目去了。
这个研究还有点点波折,因为申请了校外毕设,公司的导师又是美术出身,所以对渲染器底层没有太多可以提供的意见,我的毕设就变成了孤军奋战。题目自己想,首先得做个渲染器,然后又问了问公司的图程朋友,于是想试着研究一下Vulkan。本来对Google的Filament已经研究了了一段时间,结果学校的老师又说应用背景不清晰,得换题目。不得已只能将目光放到老项目上,看看能不能给老项目的丝绸类布料重做个PBR模型。
在换题目之前,我翻译了《Real-Time Rendering 4th》的第九章,想对PBR大框架有个全面的认识。翻译下来花了一个月(其实中间还有很多...