我正在启动一个允许角色隐藏在黑暗区域的游戏项目。躲在黑暗的角落应该会让其他角色更难看到你。
我需要的是一种计算角色所在位置的光照条件的方法。
理想的情况是拥有一个
double getLightFactor(GameCharacter observer, GameCharacter target)
因为我认为可能存在光线下降的照明条件,因此目标的不同侧面被不同数量的光线击中。但我很乐意接受
double getLightFactor(GameCharacter target)
无论您从哪里观看,甚至是从哪里观看,都可以为特定角色获得光线
double getLightFactor(int x, int z)
只是在地形中的特定地图点获得光线。
该方法需要考虑到光照条件在游戏过程中可能会发生变化,但由于它是基于回合的,因此可能允许进行一些繁重的计算。我打算让使用手电筒成为可能,因此也需要考虑它们(但它们可以单独建模和处理)。
我将使用 Ogre3d 来处理我的场景,但我很乐意接受通用解决方案甚至其他引擎的解决方案(我对引擎的选择并不是一成不变的)。
非常欢迎想法、论文或任何相关的东西!