• » Jeux Vidéo
  • » Toi aussi deviens indéveloppeur [Unity/UE4 pour platformers 2D osef]
Singe-Gobelin
Sage-Goblin

JVRS - 25 Jul 2018

Bon je connais pas DirectX 11, mais je travail avec OpenGL depuis de nombreuses années, et la philosophie des 2 API est la même, donc je peux te répondre.

Quand tu utilises une API bas niveau comme DX ou GL, généralement il faut réduire au maximum tes draw call, car c'est une fonction qui coûte cher, donc la meilleur idée est d'utiliser un VBO, mais ça c'est le cas idéal, la réalité impose que tu travailles généralement avec plusieurs VBO, l'idée est d'arranger tes vertex pour réduire au minimum tes VBO. Pour ça t'as plusieurs façon de faire, soit tu arranges tes vertex de manière "interleaved", c'est-a-dire chaque case mémoire représente un vertex offseter par ses attributs (généralement coordonnes | normal | textures, ainsi de suite).
Tu as la version "packed" (Toutes les coordonnes, suivis de toutes les normals, suivies de toutes les coordonnées textures, tout ceci dans un seul vbo).
Ou bien tu as un vbo par attribut, i.e un vbo pour les coordonnes, un vbo pour les normales, un vbo pour les textures, etc.

Dans l'ordre du meilleur au moins bon : interleaved -> packed -> vbo par attributs.

Décris un peu la topologie de ton ensemble afin d'en savoir un peu plus.

La 150 millions de vertex ça me semble un peu gros, mais j'ai déjà vu ça sur de très très gros assemblages avec beaucoup de part, dans un logiciel de CAO.

Est-ce un seul et unique mesh, ou bien, plusieurs sous-mesh ?