Shader凹凸纹理
2021-04-21 本文已影响0人
游戏程序猿
我们都知道Shader是unity中的渲染技术,我们可以通过编写Shader脚本,来给我们的游戏物体弄上很炫酷的渲染效果,比如游戏当中的贴图,特效等,都是Shader的功劳。现在的游戏发展起来了,不再是之前的那种渲染模式,现在都是在追求高质量的渲染效果。我们玩游戏都喜欢玩画质好的游戏,模型紧致的游戏,是吧。所以渲染技术非常的重要。我们今天就要做一个和渲染相关的案例,来加深对渲染的认识。先给大家看看渲染效果图:
这里有个unity学习交流小组点击可以直接加入,一起学习交流吧
对比一下,左边是unity自带的表面着色器带来的渲染效果,右边是我自己写的渲染效果。很明显右边的无论是从细节方面还是光照方面都是非常好看,也更加贴近生活的,难道不是吗?很明显我们的游戏就需要像右边这样的渲染效果,而不是左边的那种。
那么这个效果是怎么做的呢?其实我们unity中渲染物体,一般情况都是像左边那种。除非我们自己编写特殊的渲染算法。像今天右边这个,我们的模型都是一样的,但是为啥右边能有凹凸的效果,有高模的渲染效果呢?这就是我今天要给大家讲的一个点。凹凸技术。
一般让地膜具有高模的渲染效果,我们有很多的方式,比如法线贴图,给地膜用上高模的法线贴图,这样的话,虽然模型本身的面数不够,但是我们用了高模的法线贴图过后,就会根据高模的法线来进行渲染,这样的话,地膜就具有了高模的渲染效果了。今天我们不是用的法线贴图,而是根据深度图来进行偏移顶点的,并且用到了曲面细分函数,来分出更多的面数来。这样自然就能把细节渲染的很到位了。OK,上代码:
完整的Shader脚本这就是,这样我们就能实现今天的渲染效果了,好了,本次分享就到这里了!