Message #4413
Sujet: C++ Moteur de terrain avec pagination
| Type | Date | Auteur | Contenu |
|---|---|---|---|
| Dernière modification | 21-07-2008 09:34:20 | Ikam |
Salut
Inspiré par la classe de terrain de Copland http://forum.irrlicht.fr/viewtopic.php?id=336 J'ai créé une classe qui permet d'organiser et de gérer la pagination de plusieurs terrains. L'intérêt est que l'on peut créé un monde immense divisé en parcelles tout en économisant la mémoire vive consommée puisque seule les parcelles proches de la camera son chargée. La pagination fonctionne sans thread supplémentaire car j'ai pas juger nécessaire d'en mettre puisque sans ca marche bien et que ça évite tout problèmes liés au threads avec rrlicht. En fait on ne détecte pas de lag pour le chargement des map, si celles-ci sont inférieures ou égales à 257x257 et que l'application est compilé en mode Release (testé sous VC++, faudrait voir si ça passe avec d'autre compilateur). En mode debug on constate un lag. Le fonctionnement du pager est simple :
J'ai aussi fais quelques modif sur la classe de terrain de Copland telle qu'elle est donnée sur le forum, afin de mieux fonctionner avec le pager et pour corriger quelques bugs :
J'ai supprimé le mode de texturing par splatting et son shader car je suis en train de coder un shader plus spécifique qui permettra de melanger jusqu'a 16 textures par terrain avec des alphamaps ou en procedural (splatting). Sinon il y a quelques bugs et améliorations à apporter :
Dans les sources j'ai mis un exemple de comment s'en servir avec des réglages des paramètres qui me semble optimales (au niveau des distances de chargement/dechargment des map et de rendu...). J'ai aussi mis une petite fonction qui permet de découper une grosse image en plusieurs petites afin de passer au TerrainPager une liste de heightmaps et de colormap. SOURCES |
| Création du message | 21-07-2008 09:00:26 | Ikam |
Salut
Inspiré par la classe de terrain de Copland http://forum.irrlicht.fr/viewtopic.php?id=336 J'ai créé une classe qui permet d'organiser et de gérer la pagination de plusieurs terrains. L'intérêt est que l'on peut créé un monde immense divisé en parcelles tout en économisant la mémoire vive consommée puisque seule les parcelles proches de la camera son chargée. La pagination fonctionne sans thread supplémentaire car j'ai pas juger nécessaire d'en mettre puisque sans ca marche bien et que ça évite tout problèmes liés au threads avec rrlicht. En fait on ne détecte pas de lag pour le chargement des map, si celles-ci sont inférieures ou égales à 257x257 et que l'application est compilé en mode Release (testé sous VC++, faudrait voir si ça passe avec d'autre compilateur). En mode debug on constate un lag. Le fonctionnement du pager est simple :
J'ai aussi fais quelques modif sur la classe de terrain de Copland telle qu'elle est donnée sur le forum, afin de mieux fonctionner avec le pager et pour corriger quelques bugs :
J'ai supprimé le mode de texturing par splatting et son shader car je suis en train de coder un shader plus spécifique qui permettra de melanger jusqu'a 16 textures par terrain avec des alphamaps ou en procedural (splatting). Sinon il y a quelques bugs et améliorations à apporter :
Dans les sources j'ai mis un exemple de comment s'en servir avec des réglages des paramètres qui me semble optimales (au niveau des distances de chargement/dechargment des map et de rendu...). J'ai aussi mis une petite fonction qui permet de découper une grosse image en plusieurs petites afin de passer au TerrainPager une liste de heightmaps et de colormap. SOURCES |
| Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
|---|---|---|---|---|
|
Préférences cookies Corrections |
![]() ![]() ![]() ![]() |
Propulsé par Django xhtml 1.0 css 2.1 |
884 membres 1440 sujets 11337 messages |
Dernier membre inscrit: Saidov17 553 invités en ligne membre en ligne: - RSS Feed |