Question

Je travaille sur un jeu dans XNA pour Xbox 360. Le jeu a un terrain en 3D avec une collection d'objets statiques reliés par un graphique de liens. Je veux dessiner les liens qui relient les objets sous forme de lignes projetées sur le terrain. Je veux aussi pouvoir changer les couleurs, etc. des liens au fur et à mesure que les joueurs déplacent leur sélection, même si je n'ai pas besoin des liens pour les déplacer. Cependant, je rencontre des problèmes pour que cela fonctionne correctement et efficacement.

Certaines de mes idées sont les suivantes:

1) Rendez les quadruples dans une cible de rendu séparée et utilisez la texture comme superposition au-dessus du terrain. Je travaille actuellement, générant la texture uniquement pour la zone actuellement visible par la caméra afin de minimiser le repliement. Cependant, des problèmes de crénelage persistent: les lignes semblent irrégulières et les erreurs du jeu sont fréquentes lorsque vous déplacez la caméra EDIT: il émet des bugs tout le temps, je n'ai simplement pas de compteur de fréquence d'images. sur Xbox, je ne le remarque que lorsque les choses bougent.

2) Cuire les lignes dans une texture à l'avance. Cela pourrait augmenter les performances, mais aggraverait le problème du repliement du spectre. De plus, cela ne me permet pas de changer dynamiquement les propriétés des lignes sans trop se faire entendre.

3) Créez une géométrie qui corresponde à la forme du terrain en lustrant les quads sur le terrain. Cette option semble pouvoir aider, mais je ne sais pas si je devrais passer du temps à l'essayer s'il existe un moyen plus simple.

Existe-t-il une méthode magique à laquelle je n’ai pas pensé? Est-ce que l'un de ces chemins est le meilleur lorsqu'il est fait correctement?

Était-ce utile?

La solution

Votre 1) est une assez bonne solution. Vous pouvez réduire le jagginess en filtrant - tout d’abord, veillez à utiliser l’échantillonnage bilinéaire lorsque vous utilisez la superposition. Ensuite, essayez de rendre la superposition floue après le dessin, mais avant de l’utiliser; si vous choisissez un filtre approprié, le pseudonyme sera supprimé.

Si le rendu de la superposition prend trop de temps, essayez de réduire sa résolution. Sans le filtre anti-crénelage, cela le rendrait plus jaggier, mais avec un bon filtre, cela pourrait même être mieux.

Je ne sais pas pourquoi le jeu ne bougerait que lorsque vous déplacez la caméra. N'oubliez pas que vous devez disposer d'une caméra distincte pour la superposition: orthogonale et pointant vers le terrain.

Autres conseils

XNA a-t-il une bibliothèque d’observation? Si c'est le cas, vous pouvez simplement prétendre que les lignes sont des ombres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top