|
如果刚刚入门,建议先看Peter Shirley的 Minibook Series (Ray Tracing in One Weekend & Ray Tracing The Next Week)
首先是数学背景。线性代数和微积分都很重要。我推荐这本线性代数的书:Introduction to Linear Algebra, 5th Edition
一些我看过觉得很不错的书:
(基础)Shirley 的 Fundamentals of Computer Graphics 和 Foley 的 Computer Graphics: Principles and Practice 都行,两者挑一个看。
(PBR)PBRT真的是好书,基本上读完后对渲染系统就有了一个很好的理解。最近PBRT免费啦:
http://www.pbr-book.org/如果实在觉得PBRT啃不下来,就先看一下henrik的书
Realistic Image Synthesis Using Photon MappingVolume Rendering 还有一本书, Magnus Wrenninge 的 Production Volume Rendering,但如果能啃得动PBRT还是去啃PBRT吧。The conceptual framework for volumes is not great for more advanced work....
一些比较重要的论文:
T. Whitted. An Improved Illumination Model for Shaded Display, 1980.Interactive Rendering with Coherent Ray Tracing, Wald et al., 2001.Large Ray Packets for Real-time Whitted Ray Tracing, Overbeck et al., 2008.Fast Agglomerative Clustering for Rendering, Walter et al., 2008.Heuristics for Ray Tracing using Space Subdivision, MacDonald & Booth, 1990.Distributed Ray Tracing, Cook et al., 1984.The Rendering Equation, Kajiya, 1986.Importance Sampling for Production Rendering, pages 5-38. Ray tracing on programmable graphics hardware. Purcell et al., 2002.Interactive k-d tree GPU raytracing. Horn et al., 2007.Understanding the Efficiency of Ray Tracing on GPUs. Aila & Laine, 2009.Getting Rid of Packets - Efficient SIMD Single-Ray Traversal using Multi-branching BVHs. Wald et al., 2008.Megakernels Considered Harmful: Wavefront Path Tracing on GPUs. Laine et al., 2013.Theory for Off-Specular Reflection from Roughened Surfaces. Torrance & Sparrow, 1967.
有段时间前我曾经email过大牛Prof. Jerry Tessendorf, 他是这么说的:
"Graphics is a mish-mash of many fields, physics, math, CS, multiple engineering disciplines, atmospheric science, chemistry, art, performing arts, and much more. This is a big part of what makes it so interesting and prolific."
"You want to build up your math oriented skills. Ideally this would include differential equations, multi variable calculus, linear algebra, abstract algebra, differential geometry, physics with calculus, classical mechanics, electricity and magnetism, fluid dynamics, and even a little quantum mechanics. C++, Python, glsl are important languages for coding. Also important: basic art skills like sketching and painting. Even if you are not very good at art, having those experiences and understanding will help you communicate with the art-focused CG people you might someday work with."
祝你好运! |
|