你们如何处理 3d 游戏中的阴影?我有一个定向光源,可以遮蔽由立方体制成的树的一侧。其余 3 个面都只获得环境阴影。因此,当查看两个环境阴影面时,3d 效果会丢失。我错过了什么吗?我是否应该将离光源最远的一侧涂得更暗?我尝试查看《辐射 3》,看起来这就是他们所做的,但 Minecraft 似乎用两个相对的侧面光遮蔽了一个草丘,而其余两个相对的侧面则有点暗,给人的效果是两个光有两个定向灯阴影面和深色阴影面的环境光。
问问题
244 次
3 回答
1
听起来您的光源当前是轴对齐的(例如具有方向:x、y、0 或 0、y、z)。这将完全照亮面向光线的树的一侧,而根本不照亮其他树。您可以做的一件事是稍微移动灯光(通过在 x 或 z 的 0 上添加一点)。这将意味着两个面以不同的量被照亮(假设 0 增加到介于 0 和 x/z 值之间的某个位置)。那么你就只有两张不亮的脸。如有必要,第二盏灯将使它们不太相似。
于 2010-12-28T19:08:39.970 回答
1
使用由立方体制成的物体,您可以保证物体的一侧将处于黑暗中。使用环境光,您会稍微照亮它,但边缘仍然没有阴影。您可以使用几个选项:
- 使用立方体的纹理来帮助显示立方体的形状
- 多次通过,从镜面反射光(昂贵!)
- 制作第二个光源(尽管这可能看起来很不自然)
听起来您正在做的事情应该很简单,所以我想说您当前的实现似乎令人满意。
于 2010-12-28T19:18:45.460 回答
0
首先,尝试调用 glLightModeli 将 GL_LIGHT_MODEL_TWO_SIDE 设置为 GL_TRUE。
于 2010-12-28T18:36:27.090 回答