More Related Content
Similar to 游戏的实时辐射度光能传递架构
Similar to 游戏的实时辐射度光能传递架构 (13)
游戏的实时辐射度光能传递架构
- 3. 目录
• 启发
– 概览
– 架构特色
• 寒霜引擎
– 概览
– 管线
– Demo
• 总结 / 问题
- 4. 概况:目标和权衡
目标平台 • XBox360, PS3, 多核心PC
灵活的开发工具,没有固定
• 成本和质量必须可灵活伸缩
解决方案
保持图像质量 • 不能牺牲即时渲染的图像质量
可靠性高,值得信赖 • 基于物理的,但是可控
- 5. 架构的四个关键特色
1. 独立照明管线
2. 带有回馈的单次反弹
3. 光照贴图 输出
4. 从目标几何来二次光照
- 7. 启发管线
• 把景象分解入系统
• 为了二次光照,将细节 几何映射成目标 几何
预先计算 • 提取 目标 形状,为了实现实时辐射度光能传递
• 像往常一样渲染直接光照(基于GPU)
• 异步生成辐射度 (基于CPU)
运行时 • 使用GPU来融合直接和间接光照(直接+间接=全局光)
- 8. 运行时的打光管线
点
发现
直接l 基准照明
环境
区域 作用于目标模型
用户指定
+ 从前一帧获得
辐射度信息
直接光源
GPU最终生成图像
点采样输入,用于 在细节模型上,并且
启发 带有间接镜面反射
- 15. 启示光照贴图输出
“球形”
106 x 106 纹理
90% 覆盖率 “定向光照”
- 16. 目标几何
具有简单的UV表面区域
三角形数量并不重要
有很多编写选项
- 17. 细节几何
UV由投射创建
没有额外的打光数据
“全圆倾斜l照明” 从光照贴图的定向
数据中得到
不参与辐射度光能传递的互动
- 19. 回顾: 架构特色
1. 独立的照明管线
2. 带有回馈的单次反弹
3. 光照贴图输出
4. 从目标几何得到二次光照
- 20. 议程
• 启发
– 简要概述, 关键决定, 关于未来
• 寒霜引擎
– 作用方式
– 管线
– 运行时
– Demo
• QA?
- 22. 预计算 渠道
1. 将动态和静态的物体分类
2. 辐射度光能传递生成系统
3. 将静态几何参数化
4. 生成运行时需要的数据
- 23. 1. 静态和动态的几何
• 静态物体接受并反弹光线
- 使用动态光照贴图
• 动态物体只接受,不反弹
- 简单的光照来自反射球
输入景象 将模型分类 基础几何 转移光照
- 25. 3. 参数化
• 静态模型使用目标几何
- 目标几何是用来计算辐射度光能传递
- 映射细节模型到目标模型上,以得到UV
• 系统打包进分开的 uv 阵列
系统自动映射UV 系统阵列
- 27. 渲染时
• 分离 直接光照 和 辐射度光能传递的 渠道
- CPU负责 辐射度光能传递
- GPU负责: 直接光照和最终融合
• 寒霜引擎使用延迟渲染
- 所有的光照都可以反弹动态光能传递
• 分离 光照贴图 和 光探(lightprobe) 两种材质的渲染
- 光照贴图在前端通道渲染
- 光探添加到3D材质中,并且延迟渲染
- 28. 运行时渠道
1) 辐射度光能传递渠道(CPU)
更新光照贴图和光探
把光探 移至3D纹理
2) 几何通道 (GPU)
添加间接光照贴图来分割g-buffer
使用模板缓冲区来掩盖动态目标
3) 光照通道 (GPU)
延迟渲染光源
从g-buffer 添加光照贴图
从3D纹理添加光探
- 35. 总结 / 问题?
• 感谢!
• per.einarsson@dice.se
• sam.martin@geomerics.com
圈圈会-模组网 战地新闻网
HTTP://HI.BAIDU.COM/H0NKER
- 36. 附加奖励:启示未来!
• 替换光照贴图?
• 把更多数据转换成并行计算?
• 间断更新与固定不变的代价比?
• 以距离分割光照的组成?