Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl es 如何使用GLSL和LWJGL渲染无限测试网格/平面?_Opengl Es_Lwjgl_Plane_Glsles - Fatal编程技术网

Opengl es 如何使用GLSL和LWJGL渲染无限测试网格/平面?

Opengl es 如何使用GLSL和LWJGL渲染无限测试网格/平面?,opengl-es,lwjgl,plane,glsles,Opengl Es,Lwjgl,Plane,Glsles,我试图用LWJGL3渲染一个无限的测试网格/平面。我对它做了很多研究,包括stackExchange上的几个线程,但我只是被卡住了。我似乎不知道这是怎么做的。我似乎找不到任何可以研究和实现的代码/示例。 例如,这个答案: 总的来说,这对我来说似乎是有意义的,但我无法实现它。我真的不知道这个公式中的“视图坐标”,“剪辑坐标”是什么,以及它应该如何帮助我显示平面。然而,每个人似乎都明白他的意思 在我的项目中,我使用JOML生成projectionMatrix和modelViewMatrix,并将它们

我试图用LWJGL3渲染一个无限的测试网格/平面。我对它做了很多研究,包括stackExchange上的几个线程,但我只是被卡住了。我似乎不知道这是怎么做的。我似乎找不到任何可以研究和实现的代码/示例。 例如,这个答案: 总的来说,这对我来说似乎是有意义的,但我无法实现它。我真的不知道这个公式中的“视图坐标”,“剪辑坐标”是什么,以及它应该如何帮助我显示平面。然而,每个人似乎都明白他的意思

在我的项目中,我使用JOML生成projectionMatrix和modelViewMatrix,并将它们传递给着色器。这适用于普通的3d模型,我让它们彼此相对移动,旋转和显示纹理,等等。我完全理解这些概念

我不确定我可以在这里提供哪些代码

有人能给我一个算法或者给我指出正确的方向吗?
这个问题我已经解决了一天多了,但我还是想不出来。另外,StackExchange上的所有线程都有关于它的内容,我可能已经看过了。

我目前实施了一种变通方法。我基本上在我的模型上附加了一个1000x1000的大平面(相机跟随),因此模型即使在移动时也保持在平面的中心。然后,我使用GLSL着色器更改该平面的片段颜色以生成网格图案。到目前为止,这不是一个完美的解决方案,我觉得应该有一个更好的解决方案——但这对我的项目来说是可行的,因为模型应该总是在一个平面上移动而不会离开它。实际上,提到的StackOverflow线程“渲染无限大的平面”是正确的。只需使用齐次坐标按指定方式渲染这四个三角形。就这样。还可以选择构建投影矩阵,将远平面映射到无穷远。我在LWJGL/lwjgl3演示库中构建了一个演示,使用JOML完成了所有这些工作: