tag:blogger.com,1999:blog-1953199578888068867.post7521343103797857828..comments2014-01-08T18:03:30.751+01:00Comments on Le Blog de Layl: 18# Moteur de terrain en voxelsLayl Duponthttp://www.blogger.com/profile/04052526260116586427noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-1953199578888068867.post-90895890589588408602013-04-26T13:42:54.847+02:002013-04-26T13:42:54.847+02:00Utilisez un vbo est des indices si besoin. le but ...Utilisez un vbo est des indices si besoin. le but étant d'utiliser le moins de draw call possible. C'est là qu'est le bottleneck de votre programme.Unknownhttps://www.blogger.com/profile/17777030912529281714noreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-8271104159148804012012-04-09T11:59:13.437+02:002012-04-09T11:59:13.437+02:00cool que cool !
Dans mon cas, l'interêt d'...cool que cool !<br /><br />Dans mon cas, l'interêt d'une display list ne perd pas son sens car ça permet un rendu très rapide, et pour le problème de staticité il est contournable: chaque chunk ayant sa propre display list, si je modifie un voxel dans un chunk il faudra que je recompile la display list du susdit chunk avec les nouvelles propriétés (ce qui prend relativement du temps). Mais les chunks sont relativement petits (plus ou moins 10*10*10 cubes) alors la recompilation prendra d'autant moins de temps, et comme il y aura plus souvent des rendus à faire que des recompilations, c'est une approche justifiée :DLayl Duponthttps://www.blogger.com/profile/04052526260116586427noreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-68451241157139185522012-04-08T20:53:29.971+02:002012-04-08T20:53:29.971+02:00oui alors pour ce qui est de mes connaissances dis...oui alors pour ce qui est de mes connaissances disons que j'essaye de comprendre opengl depuis qlq mois et puis je grappille des infos à droite à gauche autour du sujet. Cependant pour tous ce qui est programmation je pense les choses de manière très théorique ^^.<br /><br />Ensuite pour aplatir ton tableau, tu peux peut-être représenter chaque élévation par une liste chainé. De cette manière si le cube le plus haut d'une colonne se situe à 2 et que le point le plus haut de ton chunk est a 255 tu économise le parcourt de 252 "case" vide. (purement théorique t'as vu ^^)<br /><br />Ensuite si ton terrain sera amené à évoluer au cour de la partie, il me semble que l'utilisation de display-list est à bannir. D'après ce que j'ai compris, une display-list est en qlq sorte une compilation de l'affichage de ta géométrie. Dc ça t'obligerai à "recompiler ton chunk à chaque modification.<br />A mon avis, le mieux est effectivement de passer par l'utilisation des VBO mais alors là je dois t'avouer que je n'ai absolument pas compris comment m'en servir. Si il y a des extension d'opengl à ajouter ou seulement des include à faire... J'en sais rien ^^<br /><br />voilà en tout cas je serais ravi de t'aider comme je le peux ;).Sebinhttps://www.blogger.com/profile/17587537026576253979noreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-73320199863651303862012-04-08T14:40:43.862+02:002012-04-08T14:40:43.862+02:00En fait, je savais que tu modélisais en 3D, mais c...En fait, je savais que tu modélisais en 3D, mais c'est le même jargon et tu te préoccupes aussi de ce genre de question ?Laylnoreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-74515668998127394892012-04-08T14:37:21.966+02:002012-04-08T14:37:21.966+02:00Justement, pour l'instant je n'utilise pas...Justement, pour l'instant je n'utilise pas de display list. Mais c'est prévu !<br />Pour le moment je dois modifier mon tableau tridimensionnel pour "l'aplatir" en une seule dimension et le rendre plus rapide à parcourir, et partitionner le terrain en "chunks", des sortes de blocs virtuels englobant des groupes réguliers de voxels. Puis l'idée est de faire en sorte que chaque chunk possède une display list contenant les faces des voxels à afficher, et que le terrain possède une display list appellant les display list des chunks concernés (comme ça on apelle pas les chunks vides, par exemple). Depuis que j'ai écrit ce post j'ai repensé pas mal de choses sur la structure du programme et j'ai pas encore implémenté tout ça mais il y a de fortes chances pour que ça augmente grandement les performances. Par contre, pour le moment je compte faire des appels au dessin direct dans les display list (avec glBegin et glEnd et des dizaines d'appels à glVertex3f, parce que j'ai pas encore compris comment me servir des vertex-array ou des VBO... <br />Je pensais m'attaquer au culling par la suite et j'avais lu qu'afficher ma géométrie dans le sens que tu me proposes permettait de faire de l'occlusion culling, mais j'avoue que je ne saurais pas comment m'y prendre efficacement ...<br /><br />Mais tu m'as l'air de t'y connaître dans ce domaine dis moi ? :DLaylnoreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-74285385100706581862012-04-08T11:04:05.754+02:002012-04-08T11:04:05.754+02:00Pour le moment tu utilise les display list ? peut-...Pour le moment tu utilise les display list ? peut-être tu pourrais créer une sorte de Z-buffer pour les cubes entiers (en modifiant le sens de parcourt de ton tableau selon l'orientation de la camera pour pas commencer à afficher le cube le plus éloigné)Sebinhttps://www.blogger.com/profile/17587537026576253979noreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-71727479587674780632012-04-03T19:37:46.259+02:002012-04-03T19:37:46.259+02:00Même que des fois vu un et c'étaitMême que des fois vu un et c'étaitElunarannhttps://www.facebook.com/Elunarann?ref=tn_tnmnnoreply@blogger.comtag:blogger.com,1999:blog-1953199578888068867.post-2593360700537036922012-04-03T19:10:20.122+02:002012-04-03T19:10:20.122+02:00Moi j'ai un rubick's cube chez moi maiMoi j'ai un rubick's cube chez moi maiToxichttps://www.blogger.com/profile/14693560610715239341noreply@blogger.com