Деревья с повторяющимися сценами (Java3d / OpenGL) - PullRequest
1 голос
/ 09 апреля 2010

Я хочу сделать трехмерную сцену, которая зацикливается на себе.То есть, если вы продолжите идти в любом направлении, вы вернетесь на другую сторону.

Моя текущая реализация настолько плоха, что стыдно признаться в этом.Я перерисовываю каждое изменение двадцать семь раз, чтобы сделать куб сцены 3х3х3.Когда пользователь достигает конца среднего куба, я перепрыгиваю его на другую сторону.Поддержание согласованности (не говоря уже о производительности) - это кошмар.Total Disaster.

Это не похоже на необычный запрос, поэтому мне интересно, знает ли кто-нибудь более законное решение.

Спасибо!

РЕДАКТИРОВАТЬ / ПРИМЕЧАНИЕ: в Java3d нет функциональности рендеринга в текстуру.

Ответы [ 2 ]

0 голосов
/ 13 апреля 2010

Я могу придумать другой вариант, но он не очень красивый.

Вы можете оставить привязанного пользователя к источнику вашей вселенной. Поэтому вместо того, чтобы перемещать их, перемещайте все остальное во вселенной в противоположном направлении. Все, что пересекает границу вселенной, будет возвращено на противоположную сторону.

0 голосов
/ 11 апреля 2010

Без какого-либо знания вашей конкретной сцены и объектов, которые вы визуализируете, 27 кубов звучат как «правильный, но не оптимальный» способ сделать это.

Однако, если вы не можете думать ни о чем другом, вы можете по крайней мере сначала выполнить выборку усеченного конуса на своей камере, что означает выяснение того, какой из 27 кубов в настоящее время находится в поле зрения камеры.

Тогда вам никогда не придется рисовать более 6 из этих кубов, плюс текущий куб, в котором вы находитесь. Даже меньше, если у вас узкое поле зрения.

Это предполагает, что вы можете видеть только 1 куб на расстоянии ... В противном случае вам придется делать рендеринг в текстуру.

...