Unity Shader 学习笔记(33) 全局光照(GI)、反射探针、线性空间和伽马空间、高动态范围(HDR)
来源:互联网 发布:mac系统字体库 编辑:程序博客网 时间:2024/05/04 20:52
Unity Shader 学习笔记(33) 全局光照(GI)、反射探针、线性空间和伽马空间、高动态范围(HDR)
参考书籍:《Unity Shader 入门精要》
【《Real-Time Rendering 3rd》 提炼总结】(八) 第九章 · 全局光照:光线追踪、路径追踪与GI技术进化编年史
官方:ReflectionProbes
官方:Global Illumination
官方:High Dynamic Range Rendering
官方:Linear rendering overview
全局光照(Global illumination, GI)
场景的物体的光线投射到物体会反弹(Bounce)光线到别的物体,产生间接光照。
通过设置Bounces值来控制间接光的强度。
预计算实时全局光照(Precomputed Realtime GI)
动态为场景实时更新复杂的光照结果。
实现原理:先计算静态物体间和光源位置的关系,对动态移动的物体,使用光照探针模拟光照环境。
反射探针(Reflection Probes)
在特定位置对场景采样。在有反射效果的物体在探针附近时,会把探针的结果给物体。多个探针时,做插值。
下图白色带微笑的圆圈就是反射探针。
反射探针还可以实现物体互相反射的效果。(如下反射值为2,第一次反射会是全黑色的。)
线性空间(Linear)和 伽马空间(Gamma)
- 线性空间:采集到亮度为0.5,像素就是0.5。符合计算规则(PBS必须在线性空间计算)。
- 伽马空间:采集到亮度为0.22,像素是0.5(0.45的编码伽马γ)。根据人眼光灵敏度,调整像素值,充分利用图像的存储空间。
伽马校正:伽马空间转换到线性空间。Lout = Linγ
sRGB颜色空间标准下,0.45的编码伽马,配合2.2的显示伽马来相互抵消(2.2 × 0.45 ≈ 1)。线性空间下,输入纹理设置为sRGB模式,对纹理采样时就会转换到线性空间。
高动态范围(High Dynamic Range, HDR)
动态范围:最高和最低的亮度值之间的比值。
HDR使用高于8位的精度来记录亮度信息,可表示超过0~1的亮度值,更精确反映真实光照。尽管最后要把信息转回显示设备的LDR,但中间的计算可以得到更真实的效果,即如果亮度超过1,可以使用色调映射(tonemapping)来最大限度保留需要的亮度细节。
缺点:需要更大显存空间,渲染会变慢,一些硬件并不支持HDR。使用HDR就无法开启硬件的抗锯齿功能(可以用屏幕后处理弥补)。
- Unity Shader 学习笔记(33) 全局光照(GI)、反射探针、线性空间和伽马空间、高动态范围(HDR)
- unity shader学习笔记(三)——在Unity中计算高光反射光照
- 光照与渲染(六)- 高动态范围(HDR)
- 高动态范围(HDR)
- Unity Shader 学习笔记(7) 高光反射
- Unity Shader入门精要笔记(十):Unity 的基础光照——高光反射的实现
- HDR(High-Dynamic Range)高动态光照渲染
- unity shader学习笔记(十五)——Unity中的复杂光照之光照衰减
- camera 高动态范围(High-Dynamic Range,简称HDR)
- Unity预计算全局实时GI(三)- 光照图表(Charts)
- Unity预计算全局实时GI(五)- 探头光照技术(Probe lighting)
- unity shader学习笔记(一)——基础光照之标准光照模型定义
- Unity3d HDR和Bloom效果(高动态范围图像和泛光)
- Unity3d HDR和Bloom效果(高动态范围图像和泛光)
- Unity3d HDR和Bloom效果(高动态范围图像和泛光)
- Unity3d HDR和Bloom效果(高动态范围图像和泛光)
- Unity3d HDR和Bloom效果(高动态范围图像和泛光)
- Unity Shader学习笔记:坐标空间
- OMRON plc连接电脑
- Mockplus设计大赛获奖选手专访 | 千人静听:千人千面的音乐推荐与分享APP
- 2017-12-18
- 0001
- android viewmodel 数据刷新异常
- Unity Shader 学习笔记(33) 全局光照(GI)、反射探针、线性空间和伽马空间、高动态范围(HDR)
- 【cs229】斯坦福机器学习笔记(一)
- java解析音频文件/音乐播放器
- CRC校验和LCRC校验
- Android自动化测试
- spingAop——小白入门运用例子
- CSS居中的各种实现方式
- fastjson解析json数组/js文件
- [LeetCode]313. Super Ugly Number