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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top