Unity URP Shader之视差贴图,色调映射
首先要弄清以下几个概念:
1. 什么是视差贴图(Parallax Mapping)?
视差贴图,是一种贴图,通过采样这张贴图,并依据视角方向对uv做一定的偏移,从而模拟出现实世界中凹凸不平的效果,毕竟通过模型顶点来表达这种效果工作量太大不太实现。
注意,视角方向需要转换到切线空间再做计算。
详细知识可参考:https://zhuanlan.zhihu.com/p/265317045
2. 什么是色调映射(Tone Mapping)?
由于光照计算时如果过爆,则会丢失掉物体表面的细节,使用色调映射能将整体颜色压暗,从而使物体表面的细节不至于丢失。
3. 什么是伽马空间,线性空间?
关于伽马空间和线性空间,写shader时注意如果在线性空间中来计算颜色和光照信息,这样效果更好,更符合现实。
它们的转换方法如下:
伽马空间 -> 线性空间:half4 linnerCol = pow(gammaCol, 2.2);
线性空间 -> 伽马空间: half4 gammaCol = pow(linnerCol, 1/2.2);
关于两个空间的详细知识可参考:https://blog.csdn.net/bill2ccssddnn/article/details/53423410
效果如下:



浙公网安备 33010602011771号