Je travaille sur un jeu dans XNA pour Xbox 360. Le jeu a un terrain 3D avec une collection d'objets statiques qui sont reliés par un graphique de liens. Je veux dessiner les liens reliant les objets comme des lignes projetées sur le terrain. Je veux aussi pouvoir changer les couleurs, etc., des liens lorsque les joueurs déplacent leur sélection, même si je n'ai pas besoin des liens pour me déplacer. Cependant, je suis confronté à des problèmes qui rendent ce travail correctement et efficacement.Comment projeter dynamiquement des lignes sur un terrain 3D?
Quelques idées que j'ai eu sont:
1) Render quadriceps à une cible de rendu séparé, et utiliser la texture comme une superposition au-dessus du terrain. J'ai actuellement ce travail, générant la texture seulement pour la zone actuellement visible à la caméra pour minimiser l'alias. Cependant, je reçois toujours des problèmes d'aliasing - les lignes semblent jaggy, et le jeu chugs fréquemment
lors du déplacement de la caméra
EDIT: il chugs tout le temps, je n'ai tout simplement pas de compteur de fréquence d'images sur Xbox alors je seulement remarquez quand les choses bougent.
2) Faire cuire les lignes dans une texture à l'avance. Cela pourrait augmenter les performances, mais aggraver le problème d'aliasing. En outre, il ne me laisse pas changer de façon dynamique les propriétés des lignes sans trop mélanger.
3) Faire une géométrie qui correspond à la forme du terrain en mosaïquant les quadrilatères sur le terrain. Cette option semble pouvoir aider, mais je ne sais pas si je devrais passer du temps à l'essayer s'il y a un moyen plus simple.
Y at-il un moyen magique de faire cela auquel je n'ai pas pensé? L'un de ces chemins est-il le meilleur lorsqu'il est fait correctement?
Je n'ai pas de réponse, mais cela me fait penser à l'algèbre linéaire. Peut-être qu'il y a une transformation matricielle que vous pouvez faire? Désolé, cela peut ne pas aider. – jcollum
De la même manière que vous le faites statiquement, mais plus souvent et après que le programme soit en cours d'exécution. :-) – paxdiablo