1

我有一个小型块引擎,类似于使用 LWJGL 的早期版本的 Minecraft。我现在想实际实现照明。我了解它是如何工作的,我只是对应该如何渲染照明感到困惑。我应该改变纹理的“亮度”来模拟明亮的地形吗?我在问如何实际更改四边形的光值,也许那里有一些教程?我希望它是逐块的,没有平滑的照明。我发现方块需要有一个光值,并且对于它旁边的每个方块,你将光值降低一点,直到它“变黑”。

4

1 回答 1

0

(至少)两个选项,假设一个固定功能的渲染器:

  1. 使用单个纹理(您的基本纹理图集,使用默认的GL_MODULATEtexenv。)并设置每个顶点的灰度颜色以使纹理与光照水平成比例地变暗。使用GL_MODULATE纹理 RGB 通道乘以顶点颜色 RGB 通道。因此 RGB(255,255,255) 的顶点颜色将完全亮起,RGB(0,0,0) 将是纯黑色,而 RGB(128,128,128) 将位于中间的某个位置。

  2. 使用两个纹理(外观图集和光照图图集)和多纹理。通过提供选择适当光照贴图正方形的纹理坐标,为给定面设置光照级别。如果您对光照贴图进行动画处理,您可以“免费”获得昼/夜循环,而无需像 #1 中那样遍历整个体积来修复顶点颜色。

于 2013-02-20T06:50:09.157 回答