Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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
重复场景树(Java3d/OpenGL)_Java_Opengl_3d_Java 3d - Fatal编程技术网

重复场景树(Java3d/OpenGL)

重复场景树(Java3d/OpenGL),java,opengl,3d,java-3d,Java,Opengl,3d,Java 3d,我想制作一个3d场景,让它自己循环。也就是说,如果你一直朝着任何方向走,你就会回到另一边 我目前的实现非常糟糕,承认这一点让人尴尬。我将每次更改都重新绘制了27次,以生成一个3x3x3的场景立方体。当用户到达中间立方体的末端时,我将它们跳到另一边。保持一致性(更不用说性能)是一场噩梦。彻底的灾难 这似乎不是一个不寻常的请求,所以我想知道是否有人知道一个更合法的解决方案 谢谢 编辑/注意:Java3d中没有“渲染到纹理”功能。如果不知道您的特定场景以及渲染的对象类型,27个立方体听起来像是“正确但

我想制作一个3d场景,让它自己循环。也就是说,如果你一直朝着任何方向走,你就会回到另一边

我目前的实现非常糟糕,承认这一点让人尴尬。我将每次更改都重新绘制了27次,以生成一个3x3x3的场景立方体。当用户到达中间立方体的末端时,我将它们跳到另一边。保持一致性(更不用说性能)是一场噩梦。彻底的灾难

这似乎不是一个不寻常的请求,所以我想知道是否有人知道一个更合法的解决方案

谢谢


编辑/注意:Java3d中没有“渲染到纹理”功能。

如果不知道您的特定场景以及渲染的对象类型,27个立方体听起来像是“正确但不是最佳”的方式

但是,如果你想不出其他任何东西,你至少可以先在你的相机上执行截锥剔除,这意味着找出27个立方体中的哪一个当前在相机的视野内

然后你永远不必画超过6个立方体,再加上你当前所在的立方体。如果你的视野很窄,那就更糟了


这是假设你最多只能看到一个立方体的距离。。。否则,您将不得不对纹理进行渲染。

我可以想出另一个选项,但它不是很漂亮

您可以将用户锚定在您的宇宙起源处。因此,与其移动它们,不如将宇宙中的其他一切都朝相反的方向移动。任何跨越宇宙边界的东西都会从另一边带回来