- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
Unity 中的高动态范围 (High Dynamic Range) 渲染
在标准渲染中,像素的红色、绿色和蓝色值分别由 0..1 之间的分值表示,0 表示亮度为零,1 表示显示设备的亮度为最大。尽管此功能方便易用,但不能准确反映出真实生活场景中的光照效果。人眼具有调节实际照明效果的功能,因此,光线昏暗房间里看起来是白色的物体,其亮度实际上不如大白天看起来是灰色的物体。另外,眼睛对于此范围低端亮度差异的敏感度高于对高端亮度差异的敏感度。
如果调节渲染,让像素值的范围更准确地反映可在真实场景中显示出来的亮度级别,则可达到更有力的视觉效果。虽然这些值最终需要映射回显示设备上的可用范围,但任何中间计算(如 Unity 图像效果)可让结果更具权威性。可在内部显示图像以便使用 0..1 范围以外的值是高动态范围 (HDR) 渲染的精华所在。
HDR 的使用
HDR 单独启用,以便让每个相机 (Camera) 使用相机组件上的设置:-
HDR 激活时,程序会将场景渲染至可容纳 0..1 范围以外的像素值的 HDR 图像缓冲区。然后使用 HDR 泛光等图像效果对此缓冲区进行后处理。色调映射图像效果可将 HDR 图像转换为可传送并显示出来的低动态范围 (LDR) 图像。LDR 转换必须应用于图像效果管道的某个位置,但若仅限 LDR 的图像效果稍后会运用,则转换无需在最后一步进行。为方便起见,某些图像效果可在应用 HDR 效果后自动转换为 LDR(请参阅以下脚本 (Scripting))。
色调映射
色调映射是将 HDR 值映射回 LDR 范围的过程。色调映射技巧有许多种,但适用于某一工程的技巧不一定就适合其他工程。Unity 包含了各种色调映射图像效果。要使用这些效果,请选择资源 (Assets) -> 导入资源包 (Import Package) -> 图像效果 (Image Effects)(仅限专业版),在场景中选择相机,然后依次选择组件 (Component) -> 图像效果 (Image Effects) -> 色调映射 (ToneMapping) 图像效果文档中对色调映射类型做了详细介绍。
使用 HDR 渲染得异常明亮的场景。未使用色调映射时,大部分像素看起来都超出了范围。
与上面相同的场景。但这里的色调映射效果在更合理的范围内运用最强的亮度。请注意,自适应色调映射可在上述两张图之间实现平衡,从而模拟捕获媒体(例如眼睛,相机)的自适应性质。
HDR 泛光和光晕
使用 HDR 可对后处理进行更多控制。LDR 泛光有一个缺点,即使像素亮度低于 1.0,场景中的许多区域也会出现模糊。使用 HDR 就有可能只使亮度大于一的区域泛光。这导致只含超高亮元素的场景渗色到相邻像素,从而生成更理想的效果。内置的'泛光和镜头眩光 (Bloom and Lens Flares)' 图像效果现在也支持 HDR。要将其导入至相机,请选择资源 (Assets) -> 导入资源包 (Import Package) -> 图像效果 (Image Effects)(仅限专业版) 在场景中选择相机,然后依次选择组件 (Component) -> 图像效果 (Image Effects) -> 泛光 (Bloom) 图像效果文档中对“泛光 (Bloom)” 效果做了详细介绍。
此场景中的车窗太阳光反射亮度值远大于 1.0。如果相机的 HDR 功能启用,那么泛光只会在这些部分出现并显示光晕,从而捕获其亮度。
如果 HDR 功能未启用,则车窗仍保持为不显示光晕特效。强化光晕效果的唯一方式是降低亮度阈值,但是其他不需要强化光晕效果的图像区域也会显示光晕特效。
HDR 的优点
- 高亮度区域的色彩未丢失
- 更好的泛光和光晕支持
- 减少低频照明区域的波段
HDR 的缺点
- 使用浮点缓冲区(渲染速度更慢并需要更多 VRAM)
- 不支持硬件抗锯齿功能(但是,可以使用抗锯齿图像效果抚平边缘区域)
- 并非支持所有硬件
使用说明
正向渲染
在正向渲染模式中,只有显示某种图像效果时才支持 HDR。这是基于对性能的考虑。如果未显示图像效果,则不存在色调映射,并出现强度截断。这种情况下,程序会将场景直接渲染至不支持 HDR 的后台缓冲区。
延迟渲染
在 HDR 模式下,光照预通过缓冲区也作为浮点缓冲区分配。这可减少光照缓冲区的波段。即使不显示图像效果,延迟渲染也支持 HDR。
脚本
ImageEffectTransformsToLDR 属性可添加至图像效果脚本来指示目标缓冲区应位为 LDR,而非 HDR。实际上,这意味着脚本可在应用其 HDR 图像效果后自动转换为 LDR。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论