problème 3D (real time)

problème 3D (real time) - Infographie 3D - Graphisme

Marsh Posté le 23-12-2007 à 17:19:53    

Bonjour,
 
Je cherche un model mathématique réaliste de la formation des images sur la rétine. En effet je suis sur un projet de jeu 3D -en gros le but est de simuler une partie d'airsoft- en JavaScript utilisant VML pour l'aspect graphique.
 
Pour l'instant j'utilise un model assimilant l'oeil à une lentille mince convergente, donc le calcul de l'image se fait sur base de la relation de conjugaison (truc de lycéen  :o ).
 
Ce modèle est réaliste tant qu'on a les conditions suivantes :
1) la distance entre O (origine du repère "joueur" et centre de la lentille) et le point est supérieure à F
2) O est derrière F
 
Lorsqu'on sort de ces conditions, ça devient le bordel (image inversée, on voit des point que l'on ne devrait pas voir). La solution peut aussi bien être un algorithme, je suis preneur de toutes vos idées  :)  
 
merci  :bounce:  

Reply

Marsh Posté le 23-12-2007 à 17:19:53   

Reply

Marsh Posté le 23-12-2007 à 17:29:53    

hop une vidéo : http://morierjo.perso.cegetel.net/test 3d.wmv
 
alpha c'est l'orientation du joueur Oy invariant. Pour une bonne jouabilité je devrais introduire aussi celle Ox invariant, je crois que ça s'appelle angles d'Euler mais j'y connais rien  :whistle:
 
edit : d'ailleurs il y a bien d'autres bugs par exemple quand on fait un demi-tour la maison file du mauvais côté enfin bref ..  :sweat:


Message édité par simius_computus le 23-12-2007 à 17:32:39
Reply

Marsh Posté le 23-12-2007 à 17:33:14    

simius_computus a écrit :

Bonjour,
 
Je cherche un model mathématique réaliste de la formation des images sur la rétine. En effet je suis sur un projet de jeu 3D -en gros le but est de simuler une partie d'airsoft- en JavaScript utilisant VML pour l'aspect graphique.
 
Pour l'instant j'utilise un model assimilant l'oeil à une lentille mince convergente, donc le calcul de l'image se fait sur base de la relation de conjugaison (truc de lycéen  :o ).
 
Ce modèle est réaliste tant qu'on a les conditions suivantes :
1) la distance entre O (origine du repère "joueur" et centre de la lentille) et le point est supérieure à F
2) O est derrière F
 
Lorsqu'on sort de ces conditions, ça devient le bordel (image inversée, on voit des point que l'on ne devrait pas voir). La solution peut aussi bien être un algorithme, je suis preneur de toutes vos idées  :)  
 
merci  :bounce:  


F c'est la distance focale de la lentille? sinon ton probleme peut venir du fait que lorsqu'un objet est situé entre la lentille et son plan focal objet, son image conjugée est virtuelle nan?


---------------
The Archiver
Reply

Marsh Posté le 23-12-2007 à 17:55:12    

Oui c'est tout-à-fait cela !

Reply

Marsh Posté le 23-12-2007 à 18:09:46    

simius_computus a écrit :

Oui c'est tout-à-fait cela !


ben j'y connais rien mais y'a peu de chances que ton objet soit si pres de l'oeil non? (etant donné que la distance focale de l'oeil est tres petite)
sinon jme demandais, tu tiens compte de l'accomodation de l'oeil en fonction de la distance de l'objet?


---------------
The Archiver
Reply

Marsh Posté le 23-12-2007 à 18:34:24    

Non du tout, F est fixe et c'est normal à moins de mettre une touche "regarder loin/près" (mais ici je ne cherche pas le photo-réalisme).
 

Citation :

y'a peu de chances que ton objet soit si pres de l'oeil non?


 
C'est vrai, dans ce cas il faudrait mettre une condition interdisant à la caméra d'aprocher à moins de 20 cm d'un point.

Reply

Marsh Posté le 24-12-2007 à 12:53:42    

simius_computus a écrit :

Non du tout, F est fixe et c'est normal à moins de mettre une touche "regarder loin/près" (mais ici je ne cherche pas le photo-réalisme).

 
Citation :

y'a peu de chances que ton objet soit si pres de l'oeil non?

 

C'est vrai, dans ce cas il faudrait mettre une condition interdisant à la caméra d'aprocher à moins de 20 cm d'un point.


ouai je pense que c'est encore le plus simple :D
mais sinon ca sert a quoi de creer un oeil avec une lentille etc...? pourquoi ne pas placer une "camera" comme dans les logiciels de 3d par exemple? (enfin c'est peut etre con comme question mais j'y connais rien  :D )


Message édité par Torhgrim le 24-12-2007 à 12:53:49

---------------
The Archiver
Reply

Marsh Posté le 24-12-2007 à 17:39:23    

Oui c'est relativement con comme question  :whistle:  
Dans ton logiciel 3D la caméra se charge de rendre la perspective. Elle reproduit donc le fonctionnement de la vision humaine, c'est pour ça que je parle d'oeil. Pour arriver à ça il faut des calculs et algorithmes, c'est là-dessus que je planche  :D  
 
D'ailleurs je n'ai pas vraiment avancé  :sweat:  
En ce moment je réécris le script pour que tout soit bien propre et paramétrable car dans le jeu une fois terminé l'utilisateur pourras créer ses propres map. Va falloir gérer le z-buffer ça va être une bonne galère aussi. Je vais devoir construire des fonction createSurface(), createLine(), createPoint(). Mais VML me facilite la tâche avec polyline, line, et le style z-index. Le gros morceau sera l'IA des ennemis  :ouch:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed