从零开始渲染器
从零开始渲染器.
渲染
游戏引擎的渲染就是把游戏世界中的几何、材质、光照等信息,通过可见性判断、光栅化、着色、后处理等一系列计算,最终生成屏幕上每一帧像素的完整系统工程。
渲染器
渲染器就是实现渲染这个功能的具体实现。
渲染器接收游戏世界中的所有数据,然后计算出每一帧最终显示在屏幕上的每个像素的颜色。 这些数据如下:
- 几何体:所有物体的形状(如角色、建筑、地形的三角形网格)。
- 材质与纹理:物体的表面外观,比如颜色、粗糙度、金属感,以及贴在表面的图片(纹理)。
- 光照:各种光源(太阳、灯光、火焰)的位置、颜色和强度。
- 摄像机:观察者的位置、角度和视野范围。
一般流程
渲染器的核心步骤可以简化为如下步骤:
- 可见性判断(剔除):首先,渲染器会快速判断哪些物体在摄像机视野内,哪些被遮挡看不见。看不见的物体直接跳过,不浪费计算资源。
- 光栅化:将3D物体的几何形状(由数学描述的三角形)转换为屏幕上的像素点。这一步确定了每个物体覆盖了哪些屏幕像素。
- 着色:对每个像素计算最终的颜色。这需要考虑物体的材质、光照方向、阴影、以及可能的环境反射等。这是决定画质最关键的步骤。
- 后期处理:在得到基础图像后,渲染器还会添加各种全屏特效,如抗锯齿(让边缘更平滑)、景深(背景模糊)、泛光(亮光溢出)等,让画面更电影化。