|
|
1
3
我不知道Ogre3d引擎,但这应该是处理问题的一种相当通用的方法(毕竟它只是从不同的视点渲染场景…) |
|
|
2
0
哦,孩子。这在很大程度上取决于发动机。我现在可以告诉你,你想要第二个选择。 照明是如何工作的?它是动态的还是静态的?让我们假设这是两者的结合。 对于静态照明,请检查附近的光照贴图。它要么是基于顶点的,要么是纹理,无论哪种方式,你都可以在附近的几个点对它进行采样并取平均值。查看引擎如何计算模型的照明,深入研究图形代码,并查看数据实际来自何处,您可以使用相同的源。有些游戏具有体积照明信息,Quake 2在BSP树中以每片叶子为基础进行此操作(易于检查),Quake 3具有体积纹理(也易于检查)。 然后需要添加动态灯光。一种方法是从播放器向光源发射光线(可以肯定的是,从播放器的不同部分发射几条不同的光线)。数一数被击中的次数,根据光线的距离,在你的数字中为每一个增加一点。所有像样的游戏引擎都有一个“射出射线,看看它击中了什么”的程序,这是AI如何瞄准线,以及你如何计算子弹击中了什么以及当你撞到墙时会发生什么。不要射太多太远的光线,因为它可能会很慢。 您不必太频繁地重新计算该值,您可以在创建新光源时以及每隔一秒左右进行计算。 |
|
|
3
0
根据环境的复杂性,您可以欺骗并使用覆盖在地形上的2D光照贴图。每个单元都有一个基于附近光源的光强度值。即使对于移动的物体,计算速度也会很快,而确定一个位置的“黑暗”也会很快。 您可能必须使用简单的框或圆算法在其上“冲压”形状,具体取决于您拥有的灯光类型。 |