Afterword 后记
Congratulations! You now have a good understanding of how 3D rendering works. You’ve created a raytracer and a rasterizer and gained a good conceptual understanding of the algorithms and math that power them.
祝贺你!你现在对3D渲染的工作原理有了很好的理解。你已经创建了一个光线跟踪器和一个光栅器,并对驱动它们的算法和数学有了很好的概念性理解。
However, as I explained in the introduction, it’s impossible to cover the entirety of 3D rendering in a single book. Here’s a few topics you might want to explore on your own to expand your horizons:
然而,正如我在介绍中所解释的那样,在一本书中不可能涵盖3D渲染的全部内容。这里有几个主题,你可能想自己去探索,以扩大你的视野。
- Global illumination, including radiosity and path tracing
全局照明,包括辐射性和路径追踪 Find out how deep the “ambient light” rabbit hole goes!
找出 "环境光 "的兔子洞有多深!- Physically based rendering 基于物理的渲染
Illumination and shading models that don’t just look good, but model real-life physics.
光照和阴影模型不仅看起来很好,而且是现实生活中的物理模型。- Voxel rendering 体素渲染
Think Minecraft, or MRI scans in hospitals.
想想《Minecraft》,或者医院的核磁共振扫描。- Level-of-detail algorithms 详细程度的算法
This includes offline and dynamic mesh simplification, impostors, and billboards. These algorithms are how we efficiently render forests with billions of plants, crowds of millions of people, or extremely detailed 3D models.
这包括离线和动态网格简化、冒牌货和广告牌。这些算法是我们有效渲染拥有数十亿植物的森林、数百万人的人群或极其详细的三维模型的方法。- Acceleration structures 加速结构
This includes binary space partition trees, k-d trees, quadtrees, and octrees. These structures help efficiently render massive scenes, such as an entire city.
这包括二进制空间分割树、K-D树、四叉树和八叉树。这些结构有助于有效地渲染大规模场景,如整个城市。- Terrain rendering 地形渲染
How to efficiently render a terrain model that might be as big as a country yet have human-scale detail.
如何有效地渲染一个可能像国家一样大但又有人类尺度细节的地形模型。- Atmospheric effects and particle systems
大气影响和粒子系统 Fog, rain, and smoke, but also some less intuitive materials like grass and hair.
雾、雨和烟,但也有一些不太直观的材料,如草和头发。- Image-based lighting 基于图像的照明
Similar to environment mapping, but for diffuse lighting.
类似于环境贴图,但用于漫反射照明。- High dynamic range, gamma correction
高动态范围,伽玛校正 The color representation rabbit hole also goes deep.
颜色代表的兔子洞也很深。- Caustics 苛责
Also known as “the moving white patterns at the bottom of the swimming pool.”
也被称为 "游泳池底部移动的白色图案"。- Procedural generation of textures and models
纹理和模型的程序化生成 Add more variety and possibly infinitely big scenes.
增加更多种类,可能会有无限大的场景。- Hardware acceleration 硬件加速
Using OpenGL, Vulkan, DirectX, and others to run graphics algorithms on GPUs.
使用OpenGL、Vulkan、DirectX等在GPU上运行图形算法。
Of course, there are many other topics, and that’s just 3D rendering! Computer graphics is an even broader subject. Here are some areas you might want to investigate:
当然,还有很多其他的主题,这还只是3D渲染!这还只是3D渲染。计算机图形学是一个更加广泛的主题。以下是你可能想要调查的一些领域。
- Font rendering 字体渲染
This is surprisingly more complex than you might think.
这竟然比你想象的要复杂得多。- Image compression 图像压缩
How to store images in the least amount of space.
如何用最少的空间存储图像。- Image processing (e.g. transforming and filtering)
图像处理(如转换和过滤)。 Think Instagram filters. 想想Instagram的过滤器。
- Image recognition 图像识别
Is that a dog or a cat?
那是一只狗还是一只猫?- Curve rendering, including Bezier curves and splines
曲线渲染,包括贝塞尔曲线和样条曲线 Find out what these weird arrows on the curves of your favorite drawing program really are!
找出你最喜欢的绘图程序的曲线上这些奇怪的箭头到底是什么?- Computational photography 计算型摄影
How does the camera on your phone take such good pictures with almost no light?
你手机上的摄像头是如何在几乎没有光线的情况下拍出如此好的照片的?- Image segmentation 图像分割
Before you can “blur the background” of your video call, you need to determine which pixels are background and which aren’t.
在你可以 "模糊背景 "的视频通话之前,你需要确定哪些像素是背景,哪些不是。
再次祝贺你迈出了进入计算机图形世界的第一步。现在你可以选择下一步该怎么走了!