Ensuite, je sais que c'est pas tres claire comme sujet donc je vais elaborer.
Je travail actuelement sur un projet ou j'aurais besoin de rendre des planets de taille realiste, de pres et de loin.
J'ai donc lu tout ce qui est ecrit sur le sujet des ROAM et des LOD et j'ai un algo qui est entrain de prendre form, cependant j'ai une question concernant les optimisations:
Pour savoir si un triangle doit etre subdiviser, je cree un vecteur qui represent la deformation qui aurai lieu suite au subdivision, que je projet sur l'écran, et je test sa longeur par rapport a un valeur test.
OpenGL propose d'ailleurs une system bien pratique pour effectuer ceci: le FeedBack.
Les problemes commencent lorsqu'on se rend compt que le tampon que le feed back renvoie ne contien aucune trace des vecteurs qui n'ont pas etes rendus, donc plus moyen de les associes avec les vecteurs de depart.
OpenGL presente une solution a ce problem sous la form des PassThrough, des drapeaux qu'on peux poser entre appelles de fonctions de dessin, et qui nous permettent de nous reperer, seulement j'aurais au dela de 50000 vecteurs a traiter.
J'aurais donc envie de mettre tous mes vecteurs dans un array, et d'utiliser glvertexarray pour les traiter tous d'un coup.
Mais comment est ce que je peux mettre des drapeaux (tell les passthrough) dans ce array?
Euh je pense pas trop que le feedback soit une bonne idée, ça doit vachement ralentir, et puis calculer tout ça à chaque fois... Au lieu de subdiviser par rapport à la taille du triangle, je crois que c'est mieux de subdiviser en fonction de la distance par rapport au point de vue... (après c'est que des constantes à régler). Ca te permet de gérer ça avec de grosse optimisations et d'avoir très peu de calcul à faire, tu peux meme fonctionner en zones etc...
__________________________
[col]( [/col][col]B[/col]e [col]S[/col]i[col]d[/col]e [col])[/col]
est ce que tu pourrais expliciter un peu plus pour ceux qui ont du mal avec le 'polonais ancien' :)
donner un exemple de ce a quoi tu fais reference (je parles de toi Jis ;) )
__________________________
....... Curtis: RTS 3D .......
Merci pour ton opinion Jis, l'idee que j'avais était de prendre en compte et le distance a l'utilisateur, et le relief, histoir de pouvoir economiser un maximum la ou je peux, et aussi de ne pas avoir des montagnes qui debarquent de null part quand on approche.
Ceci dit, en vue de tes remarques, je vais peut-être simplement diviser le vecteur erreur par la distance qui le separe a l'utilisateur (voir utiliser un produit scalaire qui gererai les deux).
C'est pas une solution optimal, mais c'est deja plus rapid que le feedback si il est si lent que ca.
En plus, ce n'est pas la peine de verifier le mesh chaque frame, je pourrai le faire tt les 5 si le joueur est proche, et le faire de moins en moins souvant a mesure qu'il s'en eloigne.