我实施魔兽世界/帝国时代风格"战争之雾"通过使用顶点和片段着色器编写Filter类和相应的JME材质定义。
我能够非常轻松地解决这个问题,例如我现在可以在整个屏幕上着色。
但我现在再次陷入计算世界中给定片段的计算。
那么,怎么办呢?
为什么我需要这个,基本上我有一个纹理(32x32),可以根据纹理的alpha通道在特定的地方使世界变暗。
纹理中的0,0将对应于世界上的0,0,0。给出一个世界地图或地形"大小100,100。
答案 0 :(得分:0)
这不回答关于如何在过滤器中使用的着色器中获取片段的世界位置的问题,但无论如何:
向我解释说,为游戏中的物体使用的所有着色器实施战争迷雾会更明智,因为它更容易且更容易扩展(可以在单个物体或材料上切换FOW效果) )。
答案是添加一个名为“worldPos”的新varying
vec2,并在顶点着色器中将其设置为worldPos = g_WorldMatrix * vec4(inPosition, 1.0);
。
这就是全部。但这对过滤器不起作用。