我尝试实施投影网格解决方案来展示海洋。我关注这篇文章: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。
答案 0 :(得分:0)
问题解决了。我只是在将距离矩阵与投影仪矩阵相乘时改变了顺序。