3D 游戏开发基础:模型、材质与光照

FreeGuideOnline 最新 2026-06-17

什么是 3D 游戏开发基础

3D 游戏开发的核心挑战之一是让虚拟世界看起来可信且具有沉浸感。无论使用 Unity、Unreal 还是 Godot,掌握模型材质光照这三大基础模块,是构建任何 3D 场景的起点。本教程将带你从零理解它们的工作原理与协作方式,无需任何美术背景。


3D 模型:世界的骨架

模型是什么

3D 模型是物体形状的数学表示,由 顶点、边和面 构成。顶点是空间中的点,边连接顶点,而面(通常是三角形)则连接边形成表面。无数个三角面组合在一起,就能表现从光滑曲面到复杂角色的任何外形。

常见模型格式

游戏引擎通常支持多种文件格式,不同格式保存的信息有所区别:

  • FBX — 业界标准,支持几何体、骨骼动画、材质信息,是 Unity 和 Unreal 的首选交换格式。
  • OBJ — 轻量、纯几何体格式,不包含动画,适合静态道具或环境资产。
  • GLTF / GLB — 面向实时渲染的现代格式,可存储 PBR 材质、动画,Web 和移动端友好。
  • USD (Universal Scene Description) — 高端制作管线格式,逐渐被引擎原生支持。

模型从哪来

  • 建模软件 :Blender(免费)、Maya、3ds Max、Cinema 4D。Blender 是初学者首选。
  • 资产商店 :引擎内置商店(如 Unity Asset Store、Unreal Marketplace)或 Sketchfab、CGTrader 等。
  • 程序化生成:使用 Houdini 或引擎内工具(如地形系统)动态创建模型。

模型的消耗:三角面数与 LOD

性能直接与三角面数挂钩。移动平台建议角色在 5k-15k 三角面,PC/主机可更高。现代引擎通过 LOD(层次细节) 系统,在物体远离相机时自动切换为低面数版本,平衡画质与帧率。


材质与纹理:给模型穿上皮肤

材质 vs 纹理:别再混淆

  • 纹理 是一张二维图片,包含颜色、粗糙度等数据。
  • 材质 是一个容器或着色器程序,它引用纹理,并定义光线如何与表面交互。

例如,一块石头的材质会引用“颜色纹理”、“法线纹理”和“粗糙度纹理”,并结合着色器计算出最终外观。

PBR 材质基础

现代 3D 游戏普遍使用 基于物理的渲染(PBR),它模拟真实世界的光线行为。一个标准 PBR 材质通常由以下贴图组成:

贴图类型 作用
Albedo / Base Color 物体在均匀白光下的基础颜色,不含光影信息。
Normal Map 用 RGB 像素存储表面法线方向,在不增加几何体的情况下模拟凹凸细节。
Roughness (粗糙度) 控制表面光滑程度。0 为完美镜面,1 为完全漫反射。
Metallic (金属度) 区分金属(1)和非金属(0)。金属的反射会带有自身颜色。
Ambient Occlusion (AO) 预计算的环境光遮蔽,增强角落和缝隙的深度感。

材质实例与优化

不要为每个物体创建全新材质。利用主材质/材质实例机制:创建一个主材质模板,将颜色、粗糙度等暴露为参数,然后快速生成多个实例并微调参数。这既节省内存,又保持灵活性。


光照:赋予场景生命

光照基础:直接光与间接光

  • 直接光 从光源直接照射到物体表面,产生强烈的高光和清晰的阴影。
  • 间接光 是光线从周围表面反弹后形成的柔和照明,消除死黑区域。

引擎的光照系统会计算直接和间接光照(通过动态或烘焙),共同构成最终画面。

光源类型

每种光源都有特定用途:

  • 点光源 :像灯泡一样向所有方向发光,有衰减范围。用于火把、灯具。
  • 聚光源 :锥形光束,类似手电筒或舞台灯。可以调节角度和衰减。
  • 方向光 :模拟无限远的平行光线,如太阳。位置无关,仅旋转起作用。
  • 面光源 / 区域光 :从矩形或圆形表面发光,提供最柔和的真实阴影,但通常仅用于烘焙。

移动性设置:静态、固定、动态

在 Unreal 和 Unity 中,每个光源都有移动性选项,直接影响质量与性能:

  • 静态:光照和阴影完全预先计算(烘焙),运行时成本极低,但无法移动或改变颜色。
  • 固定:间接光照与阴影烘焙,但基础直接光可以实时影响物体亮度(Unreal 中的 Semi-dynamic)。
  • 动态:所有光照和阴影实时计算,最灵活但性能消耗最高。适合必须移动或变化的光源。

阴影技术

生成高质量阴影通常由 阴影贴图 实现。引擎从光源视角渲染一张深度图,然后比较场景中每个像素的深度来决定是否处于阴影中。调整阴影分辨率、级联距离(对于方向光)和柔和度至关重要。

全局光照与烘焙

全局光照(GI) 模拟光线在场景中的多次反弹,是真实感的关键。实时 GI 较昂贵,静态场景通常选择 光照烘焙:将 GI 结果预先计算并存储到光照贴图中,在运行时直接采样。这也是移动平台保持流畅的主要手段。


三者如何协同工作

一个完整的渲染流程大致如下:

  1. 模型 提供顶点位置和法线。
  2. 顶点着色器将顶点从本地空间转换到屏幕空间。
  3. 材质 中的纹理被采样,结合着色器计算每个像素的初始颜色、法线和物理属性。
  4. 光照 系统根据场景中的所有光源及 GI 计算最终的颜色和亮度,完成像素的着色。

理解这种协作关系,就能在调试效果时快速定位问题是出在模型、材质还是光照设置上。


快速上手指南:在引擎中检验所学

  1. 导入一个简单模型(如立方体、茶壶或免费角色)。
  2. 创建一个 PBR 材质,为其赋予 Albedo、Normal 和 Roughness 贴图,应用到模型。
  3. 在场景中添加一个方向光(太阳)和一个点光源(局部照明),调整强度和颜色。
  4. 切换光源的移动性,观察性能与画质的变化。
  5. 尝试通过光照烘焙,并对比动态光照下的视觉效果。

通过以上实践,你将深刻理解“模型是骨骼,材质是皮肤,光照是灵魂”的 3D 开发哲学。