第1章你学习了Three.js的基础知识,第2章我们更深入地了解了场景的最重要部分:几何体、网格和相机。你可能已经注意到,第2章我们跳过了光源的相关细节,尽管它们是每个Three.js场景的重要组成部分。没有光源,我们将看不到任何渲染的内容(除非使用基本或线框材质)。Three.js包含了几种不同的光源,每种光源都有特定的用途,我们将在本章解释光源的各种细节,并为即将到来的材质章节做准备。在本章结束时,你将了解这些光源之间的差异,并能选择和配置正确的光源以适用于你的场景。
提示
WebGL本身并不直接支持光源。如果没有Three.js,那么你需要编写特定的WebGL着色器程序来模拟这些光源,这是一项复杂且困难的工作。关于在WebGL中如何从头开始模拟光源有一篇很好的文章:https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial/Lighting_in_WebGL。
本章涵盖以下主题:
❑ Three.js的各种光源。
❑ 如何使用基本光源。
❑ 如何使用特殊光源。
和所有其他章节一样,我们有许多可以用来实验光源行为的示例。本章中展示的示例可以在本书源代码的chapter-03目录中找到。