30

Bah... tout de suite alors ... grin

ps : Je suis en train d'étudier celui de SuperBurnout ( Jaguar ) et c'est assez énorme quand même !

31

cooper :
Pour une course "à plat" (pas de cotes) : pour la route c'est un décalage horizontal de l'offset de la route. que l'on affiche selon un circuit précalculé... Plus de détails plus tard si tu veux


Et si tu veux des cotes, cela est assez simple, si chaque élément de ton tableau est codé sur un mot (Le mot c'est bien !) tu utilises l'octet bas pour le décalage a la Coopy et l'octet haut pour indiqué une hauteur, c'est tout simpleeeeeeeeeeeeeeeeee !!

Le mieux c'est meme d'utilisé des mots longs, chaque valeur sur un mot et pour récupéré par exemple la hauteur tu a juste a swappé ta valeur (C'est plus rapide que de décallé 8 fois pour récup sur l'exemple du dessus !)

GT Turbo octopus
avatar< SCPCD > j'aurais du dire "les doigts dans le cul vu que le java c'est de la merde"
Je suis Goto !

32

Moi en fait le truc, c'est entre le tableau et l'affichage des graphs que je pige pas ... mon cerveau a du mal à se faire une idée de ce qui se passe ...

33

C'est vrai qu'à une époque, je m'étais aussi posé la question, de comment qu'on affiche une route à la vroom/lotus. Actuellement, je pense qu'on peut partir d'un cas général (genre 3D basique) puis optimiser progressivement vers le but à atteindre; à savoir, qu'il faut calculer pour chaque ligne de l'écran, quelle bande de route l'on va afficher (pour la notion de distance) et à quel emplacement (pour la position horizontale).

Comme dit plus haut, le circuit peut etre défini par un tableau de valeurs (hauteur, virage). Ceci dit pour faciliter les calculs, je stockerais plutot (que mickey) la position relative aux valeurs précédente. C'est à dire que pour une route droite et horizontale, on aurait (0,0) dans le tableau. Pour une cote (100,0), pour une descente (-100,0), pour un virage à droite (0,100) et une cote en virage à gauche (100,-100).

Il faut bien voir que la bande la plus basse à l'écran, est celle où se trouve la voiture, donc à une hauteur relative de 0, toutes les autres sont calculées par rapport à celle-ci.

Il reste ensuite à faire la correspondance entre le contenu du tableau et l'affichage, ce qui est le plus compliqué. Tout dépend de l'espacement entre les valeurs du tableau (10m, 100m, 1km de route ?). Vroom permettait de changer cet espacement en appuyant sur '*' il me semble, ce qui faisait que les virages étaient plus ou moins serrés. C'est la meme chose dans Burnout sur console, ou l'appui sur le Boost change la focale, pour avoir le temps de réagir tout en roulant plus vite.

Qui prend la suite de l'explication ?

34

Je ne prend pas la suite mais je voulais modestement intervenir pour dire que la chose la plus importante que j'ai retenu de ta prose était:
je stockerais plutot (que mickey)


GT désolé !

35

Très bonne idée de stocké relativement, cela permettrait (Je penses (Merci au personne qui ne feront pas de jeu de mots stupides la dessus..)) d'optimisé la partie affichage de la route et mieux pour ceux qui sont court en ram, ont peut compacté le tableau et le dépacké en temps réel a une très grande vitesse.


Sympa le sujet, très bonne idée de Patrice, mais perso je prendrais pas la suite de l'explication pour évité des dires des bétises, si un jour je fais un essais, je continuerais mais pour l'instant j'appliques la règle :

Mieux vaut se taire et passé pour un c..
Que de l'ouvrir et d'en être un...


GT octopus
avatar< SCPCD > j'aurais du dire "les doigts dans le cul vu que le java c'est de la merde"
Je suis Goto !

36

Mais vous ne réglez pas forcément le problème de l'affichage des voitures en cas de montées / descentes
En particulier de celles qui seront cachées par une cote.
Bon, je présume qu'il faut faire un tri en resituant la position de la voiture / indices de tableaux...
C'est pour ça que la version "plate" du jeu est plus simple et qu'il a fallu attendre un certain temps avoir d'avoir de beaux circuits en relief dans les jeux.
avatar

37

Fadest :
Mais vous ne réglez pas forcément le problème de l'affichage des voitures en cas de montées / descentes
En particulier de celles qui seront cachées par une cote.


Je pense qu'un simple Zbuffer pourrait régler le problème. Pour chaque ligne de l'écran, on a la distance visible, et on affiche la voiture seulement si elle est plus près que les lignes sur lesquelles elle est affichée.

Ce qui revient toujours à calculer, pour chaque ligne de l'écran, la distance à laquelle on voit la route, afin d'afficher celle-ci.

38

Actuellement, je pense qu'on peut partir d'un cas général (genre 3D basique)

Ah oui, j'avais pas lu attentivement le début de ton explication...
avatar

39

il y a bien le code source de Blue Lightning ( jag CD ) mais ce jeu n'exploite pas vraiment ce type de système et semble être beaucoup trop basique ... ( beurk quel jeu moche et nul !)

40

Après réflexion, ce n'est pas la hauteur (relative à la hauteur précédente) qu'il faut stocker, mais la pente. Sinon, on se retrouve avec une voiture toujours à l'horizontale, quelque soit la pente de la route. Ca va pas faire tres joli sinon.

A part ça, 2 bitplans suffisent (4 couleurs) pour afficher la route: l'herbe, la bordure, le bitume et les lignes blanches. Avec des rasters, on peut avoir autant de couleurs que l'on veut (en particulier pour la profondeur), en particulier pour faire des couleurs plus sombres pour les bandes les plus éloignées. Et en utilisant la couleur 0 pour l'herbe et le ciel, on a un overscan pas cher.

Pour ce qui est de la vitesse de Vroom, il faut bien voir qu'il ne remplit pas l'écran (tout au plus 120-140 lignes), et en mode turbo, c'et à peine la moitié de l'écran (100 lignes).

41

dans SB je pense que le vert est du raster ?

42

fredifredo :
dans SB je pense que le vert est du raster ?



Non, pour pouvoir faire des rasters, il te faudrait pouvoir te synchronisé sur un compteur de lignes, le problême sur la Jag aucune interruption ne le permet. On pourrait surement se synchronisé 'a la main' mais la perte de temps serait trop importante, c'est surement plus un sprite qu'autre chose.


GT Turbo octopus
avatar< SCPCD > j'aurais du dire "les doigts dans le cul vu que le java c'est de la merde"
Je suis Goto !

43

je viens de voir ça ... topics/45692-f-zero

y a vraiment des stars de la prog sur le forum !

44

[cite]GT Turbo :
[Non, pour pouvoir faire des rasters, il te faudrait pouvoir te synchronisé sur un compteur de lignes, le problême sur la Jag aucune interruption ne le permet. On pourrait surement se synchronisé 'a la main' mais la perte de temps serait trop importante, c'est surement plus un sprite qu'autre chose.
/cite]

Etant donné que nous sommes sur le forum 'Ordinateurs', je pensais aux ST/Falcon pour les rasters. Sur Jaguar, on pourrait utiliser les sprites hardware pour afficher chaque bande de la route (sous réserve de quantité de sprite suffisante), ça revient au meme que les rasters, sauf que ya pas besoin d'attendre le bon moment: on génère sa liste de sprites, et on l'envoie pour affichage.

45

Les sprites c'est illimité sur jaguar ! Je serais client pour un petit simili prog ( euh simili routine plutot ?) grin

46

Pas de soucis Patrice, j'avais compris.

Pour la routine c'est qui qui s'y colle ?


J'ai déjà beaucoup trop de truc a faire donc : dehors



GT Planqué snail
avatar< SCPCD > j'aurais du dire "les doigts dans le cul vu que le java c'est de la merde"
Je suis Goto !

47

GT Turbo :
Pour la routine c'est qui qui s'y colle ?


Pour l'instant, l'implémentation (fonction de la machine, du langage utilisé) est moins importante que l'algorithme (celui qui doit faire le calcul des différentes bandes à afficher en fonction du relief et des virages).

48

Dites les djeunes, sans vouloir être méchant pas beau, pouviez pas demander à Nature : http://nature.atari.org/reeking.html ?

Kochise
avatarSi Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

49

Kochise :
Dites les djeunes, sans vouloir être méchant pas beau, pouviez pas demander à Nature : http://nature.atari.org/reeking.html ?


Rabehnon, ce serait trop facile. Le but ici est d'expliquer le cheminement du raisonnement, pour aboutir au résultat final.

50

Une question me trotte dans la tête si on prend un virage complet, cela fait beaucoup de points sur une map, peut ètre meme trop dans le cas de 'grand circuit', interpolé les points entre l'entrée du virage et la sortie serait nécessaire non ?



GT octopus
avatar< SCPCD > j'aurais du dire "les doigts dans le cul vu que le java c'est de la merde"
Je suis Goto !

51

GT Turbo :
Une question me trotte dans la tête si on prend un virage complet, cela fait beaucoup de points sur une map, peut ètre meme trop dans le cas de 'grand circuit', interpolé les points entre l'entrée du virage et la sortie serait nécessaire non ?


Dans ce cas, il ne faut pas stocker le relief et les virages dans le meme tableau.
Le relief a besoin de plus de valeurs, tandis qu'on peut avoir 'ligne droite 1km', 'virage 200m', 'ligne droite 500m', 'virage 50m'. Quoique, on peut employer la meme tactique pour le relief, à savoir la variation de la hauteur sur une certaine distance.

52

Superburnout sous émulateur ( Project Tempest ) permet de voit comment est construit le décor puisque la route n'est pas émulée !
La moto ne peut pas sortir du décor, et si on décide d'aller tout droit dans un virage à droite par exemple, on reste toujours à gauche mais on prend quand même le virage.

C'est la position des objets graphiques ( mur de pneus, flèche de direction, etc.) qui indique aussi le virage; Toujours dans le cas d'un virage à droite : les objets sont affichés minuscules verticalement au milieu et horizontalement tout à droite et avec un zoom au blitter se retrouve ( surement en utilisant une fonction ) énormes en bas à gauche.