延伸阅读(Further Reading)
在一篇开创性的早期论文中,Arthur Appel(1968)首次描述了光线追踪的基本思想,以解决隐藏表面问题并计算多边形场景中的阴影。Goldstein 和 Nagel(1971)随后展示了光线追踪如何用于渲染具有二次曲面的场景。Kay 和 Greenberg(1979)描述了一种渲染透明度的光线追踪方法,而 Whitted 的开创性 CACM 文章描述了一种通用递归光线追踪算法,准确模拟了镜面表面的反射和折射以及点光源的阴影(Whitted 1980)。Whitted 最近撰写了一篇文章,描述了光线追踪早期发展的情况(Whitted 2020)。
除了第 1.6 节中讨论的内容,早期关于基于物理的渲染和图像合成的著名书籍还包括 Cohen 和 Wallace 的 《辐射度与真实图像合成》(Radiosity and Realistic Image Synthesis) (1993 年)、Sillion 和 Puech 的 《辐射度与全局光照》(Radiosity and Global Illumination) (1994 年)以及 Ashdown 的 《辐射度:程序员的视角》(Radiosity: A Programmer’s Perspective) (1994 年),这些书籍主要描述了有限元辐射度方法。SIGGRAPH 的蒙特卡罗光线追踪课程的课程笔记包含了大量实用信息(Jensen 等,2001a,2003),其中许多内容在近二十年后仍然相关。
在一篇关于光线追踪系统设计的论文中,Kirk 和 Arvo(1988)提出了许多现在已成为渲染器设计经典的原则。他们的渲染器被实现为一个核心内核,封装了基本的渲染算法,并通过精心构建的面向对象接口与图元和着色例程进行交互。这种方法使得用新的图元和加速方法扩展系统变得容易。 pbrt 的设计基于这些思想。
至今,关于基本光线追踪器设计的一个良好参考是 《光线追踪导论》(Introduction to Ray Tracing)(Glassner 1989a),该书描述了当时光线追踪的最新技术,并有 Heckbert 撰写的一章,概述了基本光线追踪器的设计。最近,Shirley 和 Morley 的 《真实光线追踪》(Realistic Ray Tracing) (2003)提供了一个易于理解的光线追踪入门,并包括一个基本光线追踪器的完整源代码。Suffern 的书(2007)也提供了对光线追踪的温和介绍。Shirley 的 《七天入门光线追踪》(Ray Tracing in One Weekend) 系列(2020)是一个容易体验到光线追踪编写乐趣的入门。
康奈尔大学的研究人员经过多年的努力开发了一个渲染测试平台;其设计和整体结构由 Trumbore、Lytle 和 Greenberg(1993)描述。其前身由 Hall 和 Greenberg(1983)描述。该系统是一个松散耦合的模块和库集合,每个模块都旨在处理单一任务(光线-物体相交加速、图像存储等),并以易于组合适当模块的方式编写,以便研究和开发新的渲染算法。这个测试平台非常成功,成为了 1990 年代康奈尔大学进行的大部分渲染研究的基础。
Radiance 是第一个广泛可用的基于物理量的开源渲染器。它旨在为建筑设计执行准确的光照模拟。Ward 在一篇论文和一本书中描述了它的设计和历史(Ward 1994;Larson 和 Shakespeare 1998)。 Radiance 采用 UNIX 风格设计,作为一组相互作用的程序,每个程序处理渲染过程的不同部分。这种一般类型的渲染架构首次由 Duff(1985)描述。
Glassner(1993)的 Spectrum 渲染架构也专注于基于物理的渲染,通过基于信号处理的问题公式进行处理。它是一个可扩展的系统,采用插件架构; pbrt 使用参数/值列表来初始化主要抽象接口实现的方法 Spectrum 的类似。 Spectrum 的一个显著特点是,描述场景的所有参数都可以是时间的函数。
Slusallek 和 Seidel (1995, 1996; Slusallek 1996) 描述了 Vision 渲染系统,该系统同样是基于物理的,旨在支持多种光传输算法。特别是,它有一个雄心勃勃的目标,即支持蒙特卡罗和有限元基础的光传输算法。
许多论文描述了其他渲染系统的设计和实现,包括用于娱乐和艺术应用的渲染器。Reyes 架构是皮克斯 RenderMan 渲染器的基础,首次由 Cook 等人(1987 年)描述,Apodaca 和 Gritz(2000 年)总结了对原有算法的一些改进。Gritz 和 Hahn(1996 年)描述了 BMRT 光线追踪器。 Maya 建模和动画系统中的渲染器由 Sung 等人(1998 年)描述,mental ray 渲染器的一些内部结构在 Driemeyer 和 Herken 的 API 书中有所描述(Driemeyer 和 Herken 2002 年)。高性能 Manta 交互式光线追踪器的设计由 Bigler 等人(2006 年)描述。
OptiX 引入了一种特别有趣的高性能光线追踪设计方法:它基于在运行时进行即时编译,以生成专用版本的光线追踪器,将用户提供的代码(例如材料评估和采样)与渲染器提供的代码(例如高性能光线-物体相交)交织在一起。该方法由 Parker 等人(2010)描述。
最近,Eisenacher 等人讨论了迪士尼 Hyperion 渲染器的光线排序架构(Eisenacher 等人 2013),而 Lee 等人则撰写了关于梦工厂 MoonRay 渲染系统实现的文章(Lee 等人 2017)。 Iray 光线追踪器的实现由 Keller 等人描述(2017)。
在 2018 年,ACM 图形学会刊(ACM Transactions on Graphics) 的特刊中包含了描述五个用于电影制作的渲染系统实现的论文。这些论文详细介绍了各种渲染器;阅读它们是值得的。它们包括 Burley 等人对迪士尼 Hyperion 渲染器的描述(2018),Christensen 等人关于皮克斯最新的 RenderMan 的论文(2018),Fascione 等人描述的 Weta Digital 的 Manuka(2018),Georgiev 等人关于 Solid Angle 的 Arnold 版本的论文(2018),以及 Kulla 等人关于索尼影像工作室使用的 Arnold 版本的论文(2018)。
标准渲染算法是从 3D 场景描述生成图像,而 Mitsuba 2 系统则围绕相应的逆问题进行设计。它使用 JIT 编译的内核计算与场景参数相关的导数,这些内核可以高效地在 GPU 和 CPU 上运行。这些内核随后在优化算法的内循环中使用,以重建与用户提供的输入图像一致的 3D 场景。该主题在第 16.3.1 节中进一步讨论。该系统的设计和实现由 Nimier-David 等人(2019)描述。
参考文献(References)
- Apodaca, A. A., and L. Gritz. 2000. Advanced RenderMan: Creating CGI for Motion Pictures. San Francisco: Morgan Kaufmann.
- Appel, A. 1968. Some techniques for shading machine renderings of solids. In AFIPS 1968 Spring Joint Computer Conference 32, 37–45.
- Arvo, J., and D. Kirk. 1990. Particle transport and image synthesis. Computer Graphics (SIGGRAPH ’90 Proceedings) 24 (4), 63–66.
- Ashdown, I. 1994. Radiosity: A Programmer’s Perspective. New York: John Wiley & Sons.
- Bigler, J., A. Stephens, and S. Parker. 2006. Design for parallel interactive ray tracing systems. IEEE Symposium on Interactive Ray Tracing, 187–95.
- Burley, B., D. Adler, M. J-Y. Chiang, H. Driskill, R. Habel, P. Kelly, P. Kutz, Y. K. Li, and D. Teece. 2018. The design and evolution of Disney’s Hyperion renderer. ACM Transactions on Graphics 37 (3), 33:1–22.
- Christensen, P. 2015. The path-tracing revolution in the movie industry. ACM SIGGRAPH 2015 Course, 24:1–7.
- Christensen, P., J. Fong, J. Shade, W. Wooten, B. Schubert, A. Kensler, S. Friedman, C. Kilpatrick, C. Ramshaw, M. Bannister, B. Rayner, J. Brouillat, and M. Liani. 2018. RenderMan: An advanced path-tracing architecture for movie rendering. ACM Transactions on Graphics 37 (3), 30:1–21.
- Cohen, M., and D. P. Greenberg. 1985. The hemi-cube: A radiosity solution for complex environments. SIGGRAPH Computer Graphics 19 (3), 31–40.
- Cohen, M., and J. Wallace. 1993. Radiosity and Realistic Image Synthesis. San Diego: Academic Press Professional.
- Cook, R. L., and K. E. Torrance. 1981. A reflectance model for computer graphics. Computer Graphics (SIGGRAPH ’81 Proceedings) 15, 307–16.
- Cook, R. L., and K. E. Torrance. 1982. A reflectance model for computer graphics. ACM Transactions on Graphics 1 (1), 7–24.
- Cook, R. L., L. Carpenter, and E. Catmull. 1987. The Reyes image rendering architecture. Computer Graphics (Proceedings of SIGGRAPH ’87) 21 (4), 95–102.
- Cook, R. L., T. Porter, and L. Carpenter. 1984. Distributed ray tracing. Computer Graphics (SIGGRAPH ’84 Proceedings) 18, 137–45.
- Driemeyer, T., and R. Herken. 2002. Programming mental ray. Wien: Springer-Verlag.
- Duff, T. 1985. Compositing 3-D rendered images. Computer Graphics (Proceedings of SIGGRAPH ’85) 19, 41–44.
- Eisenacher, C., G. Nichols, A. Selle, and B. Burley. 2013. Sorted deferred shading for production path tracing. Computer Graphics Forum (Proceedings of the 2013 Eurographics Symposium on Rendering) 32 (4), 125–32.
- Farmer, D. F. 1981. Comparing the 4341 and M80/40. Computerworld 15 (6), 9–20.
- Fascione, L., J. Hanika, M. Leone, M. Droske, J. Schwarzhaupt, T. Davidovič, A. Weidlich, and J. Meng. 2018. Manuka: A batch-shading architecture for spectral path tracing in movie production. ACM Transactions on Graphics 37 (3), 31:1–18.
- Georgiev, I., T. Ize, M. Farnsworth, R. Montoya-Vozmediano, A. King, B. Van Lommel, A. Jimenez, O. Anson, S. Ogaki, E. Johnston, A. Herubel, D. Russell, F. Servant, and M. Fajardo. 2018. Arnold: A brute-force production path tracer. ACM Transactions on Graphics 37 (3), 32:1–12.
- Glassner, A. (ed.) 1989a. An Introduction to Ray Tracing. San Diego: Academic Press.
- Glassner, A. 1993. Spectrum: An architecture for image synthesis, research, education, and practice. Developing Large-Scale Graphics Software Toolkits, SIGGRAPH ’93 Course Notes, 3, 1:14–43.
- Glassner, A. 1995. Principles of Digital Image Synthesis. San Francisco: Morgan Kaufmann.
- Goldstein, R. A., and R. Nagel. 1971. 3-D visual simulation. Simulation 16 (1), 25–31.
- Goral, C. M., K. E. Torrance, D. P. Greenberg, and B. Battaile. 1984. Modeling the interaction of light between diffuse surfaces. Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH ’84) 18 (3), 213–22.
- Greenberg, D. P., K. E. Torrance, P. S. Shirley, J. R. Arvo, J. A. Ferwerda, S. Pattanaik, E. P. F. Lafortune, B. Walter, S.-C. Foo, and B. Trumbore. 1997. A framework for realistic image synthesis. Proceedings of SIGGRAPH ’97, Computer Graphics Proceedings, Annual Conference Series, 477–94.
- Gritz, L., and J. K. Hahn. 1996. BMRT: A global illumination implementation of the RenderMan standard. Journal of Graphics Tools 1 (3), 29–47.
- Hall, R. 1989. Illumination and Color in Computer Generated Imagery. New York: Springer-Verlag.
- Hall, R. A., and D. P. Greenberg. 1983. A testbed for realistic image synthesis. IEEE Computer Graphics and Applications 3 (8), 10–20.
- Jensen, H. W., J. Arvo, M. Fajardo, P. Hanrahan, D. Mitchell, M. Pharr, and P. Shirley. 2001a. State of the art in Monte Carlo ray tracing for realistic image synthesis. In SIGGRAPH 2001 Course 29, Los Angeles.
- Jensen, H. W., J. Arvo, P. Dutré, A. Keller, A. Owen, M. Pharr, and P. Shirley. 2003. Monte Carlo ray tracing. In SIGGRAPH 2003 Courses, San Diego.
- Kajiya, J. T. 1986. The rendering equation. In Computer Graphics (SIGGRAPH ’86 Proceedings) 20, 143–50.
- Kajiya, J. T., and B. P. Von Herzen. 1984. Ray tracing volume densities. In Computer Graphics (Proceedings of SIGGRAPH ’84), Volume 18, 165–74.
- Kay, D. S., and D. P. Greenberg. 1979. Transparency for computer synthesized images. In Computer Graphics (SIGGRAPH ’79 Proceedings), Volume 13, 158–64.
- Keller, A., C. Wächter, M. Raab, D. Seibert, D. van Antwerpen, J. Korndörfer, and L. Kettner. 2017. The Iray light transport simulation and rendering system. arXiv:1705.01263 [cs.GR].
- Kirk, D. B., and J. Arvo. 1991. Unbiased sampling techniques for image synthesis. Computer Graphics (SIGGRAPH ’91 Proceedings), Volume 25, 153–56.
- Kirk, D., and J. Arvo. 1988. The ray tracing kernel. In Proceedings of Ausgraph ’88, 75–82.
- Kulla, C., A. Conty, C. Stein, and L. Gritz. 2018. Sony Pictures Imageworks Arnold. ACM Transactions on Graphics 37 (3), 29:1–18.
- Larson, G. W., and R. A. Shakespeare. 1998. Rendering with Radiance: The Art and Science of Lighting Visualization. San Francisco: Morgan Kaufmann.
- Lee, M., B. Green, F. Xie, and E. Tabellion. 2017. Vectorized production path tracing. In Proceedings of High Performance Graphics (HPG ’17), 10:1–11.
- Nimier-David, M., D. Vicini, T. Zeltner, W. Jakob. 2019. Mitsuba 2: A retargetable forward and inverse renderer. ACM Transactions on Graphics (Proceedings of SIGGRAPH 2019) 38 (6), 203:1–17.
- Nishita, T., and E. Nakamae. 1985. Continuous tone representation of three-dimensional objects taking account of shadows and interreflection. SIGGRAPH Computer Graphics 19 (3), 23–30.
- Ohmer, S. 1997. Ray Tracers: Blue Sky Studios. Animation World Network, http://www.awn.com/animationworld/ray-tracers-blue-sky-studios.
- Parker, S. G., J. Bigler, A. Dietrich, H. Friedrich, J. Hoberock, D. Luebke, D. McAllister, M. McGuire, K. Morley, A. Robison, and M. Stich. 2010. OptiX: A general purpose ray tracing engine. ACM Transactions on Graphics (Proceedings of SIGGRAPH 2010) 29 (4), 66:1–13.
- Shirley, P. 1990. Physically based lighting calculations for computer graphics. Ph.D. thesis, Department of Computer Science, University of Illinois, Urbana–Champaign.
- Shirley, P. 2020. Ray Tracing in One Weekend Series. https://raytracing.github.io/.
- Shirley, P., and R. K. Morley. 2003. Realistic Ray Tracing. Natick, Massachusetts: A. K. Peters.
- Shirley, P., C. Y. Wang, and K. Zimmerman. 1996. Monte Carlo techniques for direct lighting calculations. ACM Transactions on Graphics 15 (1), 1–36.
- Sillion, F., and C. Puech. 1994. Radiosity and Global Illumination. San Francisco: Morgan Kaufmann.
- Slusallek, P. 1996. Vision—An architecture for physically-based rendering. Ph.D. thesis, University of Erlangen.
- Slusallek, P., and H.-P. Seidel. 1995. Vision—An architecture for global illumination calculations. IEEE Transactions on Visualization and Computer Graphics 1 (1), 77–96.
- Slusallek, P., and H.-P. Seidel. 1996. Towards an open rendering kernel for image synthesis. In Eurographics Rendering Workshop 1996, 51–60.
- Snow, J. 2010. Terminators and Iron Men: Image-based lighting and physical shading at ILM. SIGGRAPH 2010 Course: Physically-Based Shading Models in Film and Game Production.
- Suffern, K. 2007. Ray Tracing from the Ground Up. Natick, Massachusetts: A. K. Peters.
- Sung, K., J. Craighead, C. Wang, S. Bakshi, A. Pearce, and A. Woo. 1998. Design and implementation of the Maya renderer. In Pacific Graphics ’98.
- Trumbore, B., W. Lytle, and D. P. Greenberg. 1993. A testbed for image synthesis. In Developing Large-Scale Graphics Software Toolkits, SIGGRAPH ’93 Course Notes, Volume 3, 4-7–19.
- Veach, E. 1997. Robust Monte Carlo methods for light transport simulation. Ph.D. thesis, Stanford University.
- Wald, I., P. Slusallek, and C. Benthin. 2001b. Interactive distributed ray tracing of highly complex models. In Rendering Techniques 2001: 12th Eurographics Workshop on Rendering, 277–88.
- Ward, G. J. 1994. The Radiance lighting simulation and rendering system. In Proceedings of SIGGRAPH ’94, 459–72.
- Whitted, T. 1980. An improved illumination model for shaded display. Communications of the ACM 23 (6), 343–49.
- Whitted, T. 2020. Origins of global illumination. IEEE Computer Graphics and Applications 40 (1), 20–27.