Árvores de cena repetidas (Java3D / OpenGL)
Pergunta
Eu quero fazer uma cena em 3D que se estende por aí. Ou seja, se você continuar em qualquer direção, voltará para o outro lado.
Minha implementação atual é tão ruim que é embaraçoso admitir. Redroço a cada alteração vinte e sete vezes, para fazer um cubo de cena de 3x3x3. Quando o usuário chega ao final do cubo do meio, eu os pulo para o outro lado. Manter a consistência (muito menos o desempenho) é um pesadelo. Desastre total.
Isso não parece que seria um pedido incomum, por isso estou me perguntando se alguém sabe de uma solução mais legítima.
Obrigado!
EDIT/NOTA: Não há funcionalidade de renderização para textura disponível no Java3D.
Solução
Sem nenhum conhecimento da sua cena específica e que tipo de objetos você está renderizando, os 27 cubos soam como a maneira "correta, mas não ótima" de fazê -lo.
No entanto, se você não consegue pensar em mais nada, pode pelo menos executar o Frustum abate primeiro sua câmera, o que significa descobrir quais dos 27 cubos estão atualmente dentro do campo de visão das câmeras.
Então você nunca precisa desenhar mais de 6 desses cubos, além do cubo atual em que você está. Ainda menos se tiver um campo de visão estreito.
Isso assume que você só pode ver um máximo de 1 cubo à distância ... caso contrário, você precisará fazer a renderização da textura.
Outras dicas
Posso pensar em outra opção, mas não é muito bonita.
Você pode manter o usuário ancorado na origem do seu universo. Portanto, em vez de movê -los, mova todo o resto no universo na direção oposta. Qualquer coisa que atravesse o limite do universo seria trazida de volta para o lado oposto.