渲染照明

时间:2013-02-19 21:31:59

标签: java opengl lwjgl lighting

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

1 个答案:

答案 0 :(得分:0)

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

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

  2. 使用两个纹理(外观图集和光照贴图)和多重纹理。通过提供选择适当光照贴图方块的纹理坐标,为给定面设置光照水平。如果您为光照贴图设置动画,则可以“免费”获得日/夜循环,而无需迭代修复顶点颜色的整个卷,如#1。