从DirectX到OpenGL的投影网格范围矩阵?

时间:2014-11-11 19:38:41

标签: android opengl-es grid libgdx directx

我尝试实施投影网格解决方案来展示海洋。我关注这篇文章:http://habib.wikidot.com/projected-grid-ocean-shader-full-html-version

因为它将是andoid的游戏我选择了libgdx引擎。我遇到的问题是如何计算论文中提到的范围(最小/最大)矩阵。目前我正在这样做:

float [] frange =         {         x_max-x_min,0,0,x_min,                   0,y_max-y_min,0,y_min,         0,0,1f,0f,
        0,0,0,1f         };

Matrix4 range = new Matrix4()。set(frange); range.tra(); //转置

此矩阵与投影仪的InverseView投影矩阵相乘。目标是投影仪在基于相机/平面交叉点计算的最小最大范围内扩展投影网格。

问题是我从示例实现中获取的这个矩阵使用的是DirectX,并且在我的情况下无法正常工作。我尝试切换Y / Z并获得更好看的网格,但仍然没有100%确定。

有人可以帮助我建议如何使用相同的矩阵但是对于Open GL。

1 个答案:

答案 0 :(得分:0)

问题解决了。我只是在将距离矩阵与投影仪矩阵相乘时改变了顺序。