2010-04-09 5 views
1

Je veux créer une scène 3D qui se boucle sur elle-même. C'est-à-dire, si vous continuez dans n'importe quelle direction, vous rebondirez de l'autre côté.Arbres de scène répétés (Java3d/OpenGL)

Ma mise en œuvre actuelle est si mauvaise, il est gênant de l'admettre. Je redessine chaque changement vingt-sept fois, pour faire un cube de scène 3x3x3. Lorsque l'utilisateur atteint la fin du cube du milieu, je les saute de l'autre côté. Maintenir la cohérence (sans parler de la performance) est un cauchemar. Désastre total.

Cela ne semble pas être une requête inhabituelle, donc je me demande si quelqu'un connaît une solution plus légitime.

Merci!

EDIT/NOTE: Il n'y a pas de fonctionnalité de rendu vers texture disponible dans Java3d.

Répondre

0

Sans aucune connaissance de votre scène spécifique et du type d'objets que vous êtes en train de restituer, les 27 cubes ressemblent à la manière "correcte mais non optimale" de le faire. Cependant, si vous ne pouvez pas penser à autre chose, vous pouvez au moins effectuer d'abord une tromperie sur votre caméra, ce qui signifie que vous devez déterminer lequel des 27 cubes est actuellement dans le champ de vision des caméras.

Ensuite, vous ne devez jamais dessiner plus de 6 de ces cubes, plus le cube actuel dans lequel vous êtes. Encore moins si vous avez un champ de vision étroit. C'est à supposer que vous ne pouvez voir qu'un maximum de 1 cube dans la distance ... Sinon, vous devrez faire un rendu pour texturer.

0

Je peux penser à une autre option, mais ce n'est pas très joli.

Vous pouvez garder l'utilisateur ancré à l'origine de votre univers. Par conséquent, au lieu de les déplacer, déplacez tout le reste dans l'univers dans la direction opposée. Tout ce qui traverse la frontière de l'univers serait ramené du côté opposé.