【Unity Shaders】使用Unity Render Textures实现画面特效 您所在的位置:网站首页 unity画质调整 【Unity Shaders】使用Unity Render Textures实现画面特效

【Unity Shaders】使用Unity Render Textures实现画面特效

2023-02-22 01:02| 来源: 网络整理| 查看: 265

解释:这个函数的第一个参数是当前的render texture的某个像素;其他参数则是用于整体调整颜色,这些变量会通过后面的脚本传递给Shader。函数一开始,声明了一些常量,它们被用于定义一个最基本的颜色值,以便和修改后的进行比较。

书上讲这个函数的实现的地方比较含糊不清,看不懂。我按自己的理解解释一下。这其实是一个叠加的过程:先计算当前亮度值下的像素,再在此基础上计算当前饱和度值下的像素,最后再在此基础上计算当前对比度下的像素,并输出:—— 当前亮度值下的像素是通过使用render texture上原始的像素乘以亮度值实现的,这很好理解,brt越大(可以大于1),图像越偏向白色,也就越亮。—— 计算当前饱和度值下的像素,需要使用lerp函数。其中,lerp的右边界值就是上一步得到的像素值,而左边界值是当前亮度下饱和度最低的像素值。计算方法是在当前亮度的基础上,点乘LuminanceCoeff常量系数。这些系数是基于CIE颜色匹配函数的,也是业界公认的标准。最后,sat参数在两者之间进行线性插值。sat越大(可以大于1),brtColor的份重越大。—— 计算当前对比度下的像素是类似的过程,同样使用lerp函数。其中,lerp的右边界是上一步得到的像素值,左边界值是对比度最低的像素值,这里使用了常量avgLumin。最后,con参数在两者之间进行线性插值。con越大(可以大于1),satColor的份重越大。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有