2016-07-29 2 views
0

J'ai deux fichiers .dae, l'un a 1 million de faces et l'autre 20 millions de faces. Je les ai importés en utilisant ColladaLoader. Le problème est que les 20 millions de faces tournent à 30fps et les 1 million de faces tournent à 2fps. Comment est-ce? Comment puis-je résoudre ce problème?Trois millions de visages rendant des fichiers performa collada

+0

Ce n'est pas seulement le nombre de faces qui détermine la performance. Pouvez-vous peut-être fournir un code-échantillon? D'autres facteurs peuvent être: le nombre de mailles, le nombre et le type de matériaux, le nombre de faces réellement rendues, etc. –

Répondre

0

Vous devez vérifier le nombre de maillages dans ces modèles. Les performances dépendent en grande partie du nombre d'appels draw (maillages) dans un modèle, car plus d'appels draw signifient plus de données passant au GPU. Par exemple, j'avais un maillage de 3,5 millions de faces et il y avait plus de 1000 maillages. J'ai 20 fps pour ça. Mais quand j'ai fusionné toutes les mailles à un seul maillage, j'ai 60 fps.

La solution de ce problème consiste à fusionner les géométries des maillages en une seule et à créer un maillage unique en utilisant ces géométries. Pour BufferGeometry, vous pouvez fusionner tout le tableau de vertex, le tableau de couleurs et le tableau normal. Pour fusionner un tableau d'index, vous devez ajouter le sommet de base pour chaque valeur d'index.