[RESOLU] Planète cheloux dans le planetarium

Moderator: Franck

Post Reply
NeoET
Posts: 11
Joined: 03 Jun 2005, 13:35

[RESOLU] Planète cheloux dans le planetarium

Post by NeoET »

C'est quand je suis en mode planetarium et que je verrouille disons Jupiter et ben si je lance l'animation, donc le temps normal, la planète n'apparait plus ronde on dirait qu'on lui a bouffé ses contours avec une sci sauteuse :lol: .
Petre ça vient de mon pc ? :?:
User avatar
Franck
Posts: 272
Joined: 03 Jun 2005, 02:28
Contact:

Post by Franck »

En fait, ce problème d’affichage ne correspond pas à un bug… Pour dessiner le système solaire sur l’écran de l’ordinateur, il ne suffit pas de placer les objets 3D dans un repère orthonormé en respectant les positions. Ca ne marche malheureusement pas aussi simplement que cela.
Directx impose bien des contraintes.
Tout d’abord, la carte vidéo n’est capable de tracer que des objets situés dans un intervalle de distance (par rapport à la caméra). Si l’objet est trop proche de la caméra, une partie ou la totalité de l’objet disparaît. De la même façon, si l’objet est trop loin, là encore il disparaît totalement (et même si son diamètre apparent est important !)…
Comment expliquer cela ? Pour placer les points définissant les objets dans le champ de l’écran, il y a un grand nombre de calculs trigonométriques à effectuer. L’emploi de matrices permet de réduire le nombre de calculs nécessaires mais cela demeure une tâche lourde pour le processeur central. Aussi, la carte vidéo vient le seconder (les cartes vidéos sont des championnes du calcul matriciel) dans les calculs de projection.
Pour réduire le coût des circuits, les constructeurs ont cependant décidé qu’elles réaliseraient ces calculs en simple précision et c’est là que ce situe le problème.
Si ce choix ne pose aucun problème dans un jeu (le monde virtuel défini a une taille relativement limité), c’est bien différent pour un logiciel d’astronomie.

Et oui, les ordinateurs calculent faux ! C’est la triste vérité ! et tout particulièrement les cartes vidéos qui ne connaissent que la simple précision !

(Un exemple. Si je prends un nombre réel assez grand sur un ordinateur (par exemple 1555554444454545422354545.0) et que je lui additionne un million, un milliard, 100 milliards de fois la valeur 0.00000000001, et bien il sera toujours égal à sa valeur de départ, c'est-à-dire 1555554444454545422354545.0 !!!! Cela vient de la façon dont sont codés les nombres réels dans nos machines. La vitesse impose d’ignorer dans le codage certaines décimales peu significatives)

Donc, il faut toujours maintenir les objets dans un certain intervalle de distance par rapport à la caméra pour éviter les erreurs de calculs et pour qu’ils (les objets) restent visibles. Il faut alors jouer sur leurs dimensions pour conserver les diamètres apparents coûte que coûte…

Ainsi, lorsqu’on se rapproche de Hubble, on doit se rapprocher d’un objet tout petit (20 mètres) situé à proximité d’un objet immense (la terre). La carte graphique devient folle. La différence de taille des objets est telle que des approximations apparaissent dans les calculs effectués par la carte graphique (c’est l’exemple donné précédemment : je me rapproche d’un mètre par exemple de Hubble qui est situé à 149657875254.0 m du soleil ).
Dans WinStars, pour remédier à cela, Hubble devient de plus en plus grand à mesure que l’on s’approche de lui et cela pour le maintenir dans l’intervalle de visibilité et éviter que des morceaux disparaissent…
Mais rien n’y paraît sur l’écran, tout est fait pour que l’illusion des proportions soit parfaite et que le rendu soit optimal…

Mais lorsque les valeurs des matrices deviennent trop petits ou trop grandes (c’est surtout le cas lorsque l’on réduit le champ de vision – càd que l’on augmente le grossissement – comme vous sur Jupiter) alors il devient impossible de maintenir l’objet dans l’intervalle de visibilité et des parties de la sphère ne sont alors pas dessinées…
Le programme est calibré pour que les cartes modernes ne posent pas ce problème, même avec des grossissements élevés. Mais le problème sera plus visible sur des cartes vidéos anciennes (comme les nVidia TNT/TNT2, les PowerVR etc) qui ont une précisions numériques particulièrement médiocres.
A mesure que le grossissement augmente, la précision dans certaines matrices devient de + en + faible, les approximations s’amplifient mutuellement et la carte n’est alors plus en mesure de tracer tous les polygones d’une sphère, et Jupiter semble tout craquelé …

Franck
NeoET
Posts: 11
Joined: 03 Jun 2005, 13:35

Post by NeoET »

Oui mon pc est tout vieux mais merci de ces supers explications Franck 8)
User avatar
danardf
Posts: 57
Joined: 03 Jun 2005, 06:34
Location: Trans sur Erdre
Contact:

Post by danardf »

Moi j'en ai un.

Je clic sur suivi, je lance l'animation ( 1i/5mn) et au bout d'un moment, jupiter disparaît!

pfffouff
A pu

Annnavait, mais annapu :lol:
<a href="http://www.agmp.org/"><img src="http://www.agmp.org/uploads/agmp.gif" border=0></a>
User avatar
Franck
Posts: 272
Joined: 03 Jun 2005, 02:28
Contact:

Post by Franck »

La planète était peut-être passée sous l'horizon ? (le programme ne suis pas les objets sous l'horizon...)

Franck
User avatar
danardf
Posts: 57
Joined: 03 Jun 2005, 06:34
Location: Trans sur Erdre
Contact:

Post by danardf »

Haaaa peut être

Tu as raison, c'est peut être çà.
J'essais de savoir ce que j'ai pris hier soir!
J'avais jupiter et deux lunes. (IO et Europa)
"voir mon site en prmière page"
<a href="http://www.agmp.org/"><img src="http://www.agmp.org/uploads/agmp.gif" border=0></a>
Post Reply