2017-08-03 5 views
0

Je veux générer des routes pour jeu de voitures de course, par exemplealgorithmes ou des générateurs ou des exemples de voies routières et les réseaux/

(x = 0, y = 0), (x = 0, y = 5), (x = 0, y = 10) ... (x = 0, y = 100) sa voie verticale.

(x = 0, y = 0), (x = 5, y = 0), (x = 10, y = 0) sa voie horizontale.

J'ai besoin d'exemples de grande voie (500 points par exemple) avec des virages et des bandes. Il est très difficile de générer manuellement chaque bande et de tourner en douceur sur la route. Si un générateur/exemples/algorithme pour le faire plus simple? Je veux avoir un ensemble de points formant une ligne de la route (les points sont connectés séquentiellement, l'un après l'autre)

+1

Avez-vous à vous soucier des routes se croisent? c'est-à-dire que le joueur ne voit jamais que les routes du point de vue de la conduite et non une carte? S'ils ne voient pas une carte, ils ne le remarqueront probablement pas si la route fait une boucle et s'intersecte elle-même, tant que vous ne restituez qu'une certaine quantité en avant et en arrière de leur position actuelle – samgak

+0

Maintenant, je dois définir des voies . Toutes les voies - ensemble de données des points – Naduxa

Répondre

2

Votre définition de points peut rester relativement courte. Si c'est juste une question de rendu lisse alors vous pouvez utiliser quelque chose comme bezier surface pour rendre les surfaces légèrement incurvées à partir de la définition des points.

Il existe également des variantes de surfaces incurvées, par ex. NURBS. Jetez un coup d'œil à cette opengl tutorial pour rendre la surface de NURBS (bien sûr cela dépend de ce que vous utilisez, quel framework, etc. s'il s'agit seulement d'un algorithme pur alors les courbes de bezier sont encore valables).

+0

est-il prêt outil/instrument pour l'utiliser? Je n'ai pas besoin de beaucoup de précision, maintenant moi pour tester mon comportement racecar et généré manuellement c'est très affreux – Naduxa

+0

ça va être sympa de visualiser la forme (dessiner manuellement par exemple une voie) de visualisé doublé vers 2-d points format convertir, vraiment n'est-ce pas un service pour ça? – Naduxa

+0

@Naduxa Vous devez être plus précis ici. Ce n'est pas vraiment un sujet d'outil ou d'instrument puisque votre question concerne les algorithmes. –

2

Utilisez interpolation pour ce voir

Ainsi, chaque "voie" droite sera seulement de 2 points, peu importe la taille. En plus de cela, vous pouvez créer votre chemin par:

  1. modifier manuel

    vous pouvez modifier facilement avec quelque chose de la souris comme ceci: follow mouse et lisse points par le filtre FIR (moyenne).

  2. chemin aléatoire

    Je choisirais des deux tortues comme les graphiques où vous commencez avec une certaine position et la direction. Ajouter un point et ensuite se déplacer aléatoirement où le mouvement vers l'avant aurait la plus grande probabilité et les virages ont une probabilité plus petite.

    Ou une autre option serait de commencer par un chemin de polygone prédéfini et d'y ajouter du bruit aléatoire ... C'est mieux pour les boucles comme les chemins. voir:

    Si vous voulez quelque chose recherche réaliste puis créer carte aléatoire de la hauteur du terrain comme:

    a ensuite choisi de départ aléatoire à un élévation raisonnable et juste suivre eleva tion (de sorte que la route aura +/- la même altitude jusqu'à ce qu'une impasse frappe (colline ...) puis décide de monter ou de descendre jusqu'à ce que la zone "plate" frappe à nouveau et suive à nouveau cette altitude.Il est semblable à ceci:

    approche terrain a l'avantage qui peut l'utiliser comme filet pour votre jeu.

    Et enfin, vous pouvez mélanger les approches ensemble ...