蚂蚁金服体验科技大会

04 2019 SEEConf 实时绘制的过去、现在与将来 王锐

1. 实时绘制的过去、现在与将来 王锐 rwang@cad.zju.edu.cn 浙江⼤大学计算机学院 CAD&CG国家重点实验室
2. 图形绘制技术 是重要的⼈人-机信息传递形 式,是多个应⽤用领域的基础 技术,例例如电影、游戏、可 视化、⼈人机交互、虚拟现实 等等。
3. 实时绘制技术 01. 过去 02. 现在 03. 将来
4. 实时绘制技术 01. 过去 02. 现在 03. 将来
5. “Ready Player One”
6. 实时绘制技术 01. 过去 02. 现在 03. 将来
7. 实时绘制技术 01. 过去 02. 现在 03. 将来
8. “Red Dead Redemption 2”, 2018
9. 实时绘制技术 01. 过去 02. 现在 03. 将来
10. 实时绘制技术 01. 过去 02. 现在 03. 将来
11. Punched card ENIAC, 1945
12. Oscilloscope, 1950
13. Oscilloscope, 1950 Whirlwind computer with a video display, 1951
14. “Tennis for Two”, 1958
15. Space War, 1961 Lunar landing, 1969 Space Travel, 1969
16. Pong, 1972 Maze War, 1973 D&D, 1974
17. Shadows, 1968 Utah Teapot, 1975 Recursive ray tracing, 1980 Rendering Equation, 1986
18. 绘制⽅方程 • 像素( i, j )的颜⾊色?
19. 绘制⽅方程 • 像素( i, j )的颜⾊色?
20. 绘制⽅方程 像素( i, j )的颜⾊色? = • 在特定频率的光强
21. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
22. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
23. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
24. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
25. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐿𝑜(𝑥, 𝜔𝑜) = ∫ 𝐻 2 = 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
26. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐿𝑜(𝑥, 𝜔𝑜) = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐻 2 2 = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐻 𝐿𝑜(𝑥, 𝜔𝑜) = = 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
27. 绘制⽅方程 像素( i, j )的颜⾊色? • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐿𝑜(𝑥, 𝜔𝑜) = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐿𝑜(𝑥, 𝜔𝑜) = 2 𝐻 2 … 𝐻 2 = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐻 𝐿𝑜(𝑥, 𝜔𝑜) = = 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
28. Stochastic path tracing, PBRT rd 3 edition,
29. 实时绘制 • 基于时间预算的绘制 • 绘制计算必须在规定时间⽚片内完成 Time step input Time step input Time step input input Rendering period T …… output output Missing deadline Time
30. 实时绘制 • • • 实时绘制的帧率要求 传统上 30 帧/秒 (FPS) VR 60 – 90 帧/秒 (FPS) Time step input Time step input Time step input input Rendering period T …… output output Missing deadline Time
31. 实时绘制 ∫ 像素( i, j )的颜⾊色? ——绘制⽅方程 • 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐿𝑜(𝑥, 𝜔𝑜) = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐿𝑜(𝑥, 𝜔𝑜) = 2 𝐻 2 … 𝐻 2 = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐻 𝐿𝑜(𝑥, 𝜔𝑜) = = 𝐻 2
32. 实时绘制 • 像素( i, j )的颜⾊色? ——局部光照明模型 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖
33. 实时绘制 • 绘制流⽔水线——绘制硬件
34. 实时绘制 • Geometry Engine, SGI 1982 绘制流⽔水线——绘制硬件 Voodoo, 3dfx 1996 GeForce 256, nVidia 1999 GeForce RTX, nVidia 2018
35. 绘制流⽔水线的发展 硬件绘制流⽔水线
36. 绘制流⽔水线的发展 • Geometry Engine Vertex Data Geometry Engine Fragment Generator Pixel Data Texture Store Image Engine Blending
37. 绘制流⽔水线的发展 • Geometry Engine / OpenGL 1.0 / DirectX 8 Vertex Data Pixel Data Vertex Transform and Lighting Texture Store Primitive Setup and Rasterization Fragment Coloring and Texturing Blending
38. 绘制流⽔水线的发展 • • Geometry Engine / OpenGL 1.0 / DirectX 8 OpenGL 2.0 / DirectX 9 Vertex Data Pixel Data Vertex Shader Primitive Setup and Rasterization Texture Store Fragment Shader Blending
39. 绘制流⽔水线的发展 • • • Geometry Engine / OpenGL 1.0 / DirectX 8 OpenGL 2.0 / DirectX 9 OpenGL 3.2 / DirectX 10 Vertex Data Vertex Shader Geometry Shader Pixel Data Texture Store Primitive Setup and Rasterization Fragment Shader Blending
40. 绘制流⽔水线的发展 • • • • Geometry Engine / OpenGL 1.0 / DirectX 8 OpenGL 2.0 / DirectX 9 OpenGL 3.2 / DirectX 10 OpenGL 4.1/Vulkan/DirectX 11&12 Vertex Data Vertex Shader Tessellation Control Shader Pixel Data Texture Store Primitive Setup and Rasterization Tessellation Evaluation Shader Geometry Shader Fragment Shader Blending
41. 绘制流⽔水线的发展 • • • • • Geometry Engine / OpenGL 1.0 / DirectX 8 OpenGL 2.0 / DirectX 9 OpenGL 3.2 / DirectX 10 OpenGL 4.1/Vulkan/DirectX 11&12 Turing Mesh Shaders Vertex Data Pixel Data Task Shader Mesh Generation Texture Store Mesh Shader Primitive Setup and Rasterization Fragment Shader Blending
42. Shaft PRT PBS 实时绘制 AO Volumetric effects SSS Dist AO Bump Light Cache Baking light Soft shadows ……
43. Time Realistic & Realtime Realism
44. Stochastic Path Tracing Time Hardware-based Local Shading Realistic & Realtime Realism
45. 现在 Stochastic Path Tracing Stochastic Progressive Photon Mapping Offline Rendering Many-lights Time Rendering Precomputed Radiance Transfer Screen-based Hardware-based Rendering Local Shading Realtime Rendering State-of-the-art Approaches Realistic & Realtime Realism
46. 未来
47. 未来 • 快速求解绘制⽅方程 𝐿𝑜(𝑥, 𝜔𝑜) = 𝐿𝑒(𝑥, 𝜔𝑜) + ∫ 𝐿𝑜(𝑥, 𝜔𝑜) = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐿𝑜(𝑥, 𝜔𝑜) = 2 𝐻 2 … 𝐻 2 = ∫ 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖 𝐻 𝐿𝑜(𝑥, 𝜔𝑜) = = 𝐻 2 𝐿𝑖(𝑥, 𝜔𝑖)𝑓𝑟(𝑥, 𝜔𝑖 → 𝜔𝑜)cos𝜃𝑖𝑑𝜔𝑖
48. 未来 • 2018年年8⽉月, nVidia发布了了新⼀一代显卡Geforce RTX • 新的Mesh Shader • 新的Ray Tracing硬件(RT Core)
50. 未来 VR 裸眼光场显示器器
51. 未来 应 ⽤ 终 端 端低相关光照计算 端⽆关光照计算 虚拟 GPUs 数据 云服 务 云-端 结合的绘制引擎与架构 … … 端低相关光照计算 … 虚 拟 流 ⽔ 线 端⾼相关光照计算 … … 端⽆关光照计算 虚 拟 流 ⽔ 线 端⾼相关光照计算 … … 端低相关光照计算 … 端⽆关光照计算 虚 拟 流 ⽔ 线 端⾼相关光照计算 应⽤ 应⽤ … 端低相关光照计算 应⽤ … 计算 云服 务 虚 拟 流 ⽔ 线 端⾼相关光照计算 … 虚拟 CPUs 端⽆关光照计算 应⽤ … 端低相关光照计算 … 云 服 务 器 虚 拟 流 ⽔ 线 端⾼相关光照计算 … 绘 制 流 ⽔ 线 虚 拟 化 应⽤ 端⽆关光照计算
52. 总结 过去 现在 将来 经过⼏几⼗十年年的研究, 逼真、开放的实时 为⼈人们创造⼀一个随处 实时绘制技术获得了了 虚拟世界已逐渐成 可⻅见的虚拟世界,重 ⻜飞速发展 为可能 塑⼈人-机交互模式
53. 谢 谢!

相关幻灯片