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

 

效果如下:

 

 转载请注明出处:https://www.cnblogs.com/jietian331/p/17025512.html

posted @ 2023-01-04 17:23  太乙_真人  阅读(638)  评论(0)    收藏  举报