2010-10-07 20 views
0

Je travaille sur un projet où j'ai besoin de rendre un corps humain en 3D sur un appareil iOS. L'objet 3D a été construit dans Adobe LightWave et est de 7,4 Mo. Je l'ai ouvert dans Blender et l'ai exporté en tant que paire OBJ/MTL qui sont respectivement de 5,5 Mo et 4 Ko. En utilisant Wavefront Loader de Jeff LaMarche (ci-dessous) comme point de départ pour comprendre OpenGL ES et obtenir des performances de vérification et autres joyeusetés, j'ai collé l'objet (à la place d'une paire OBJ/MTL qu'il utilisait) et l'ai exécuté dans le simulateur. Bien sûr, planter au démarrage, j'ai donc décidé de le faire dans SélectorInBackground. Une demi-heure plus tard, ça continue à charger. Je devine juste que le fichier est trop détaillé pour dessiner avec n'importe quel type d'attente de performance sur un appareil avec un processeur de 600 MHz. Yat-il un moyen de réduire la qualité de ces fichiers un peu facilement? Ou, si des problèmes de performance ont surgi avec ce chargeur particulier, quelqu'un pourrait-il m'éclairer?WaveFront OBJ converti à partir de LightWave prenant pour toujours pour rendre sur l'iPhone

Merci, Will

http://iphonedevelopment.blogspot.com/2009/03/wavefront-obj-loader-open-sourced-to.html

+0

Combien de sommets cherchez-vous ici? –

+0

69150 sommets, 67764 faces. Oui, je pense que cela doit être réduit. PS: Bonjour Brad. – wjl

+0

En fait, ce n'est pas si fou. J'ai chargé et affiché des modèles avec plus de 90 000 vertices (120 000 triangles) sur les iPhones de première génération. Ils ont pris quelques secondes pour charger et rendre, mais rien de ce que vous voyez. Je suspecte que si vous avez exécuté des instruments sur ceci, vous verriez que le goulot d'étranglement est quelque part dans le code d'analyseur d'OBJ. –

Répondre

0

Will,

Je ne sais pas si je peux résoudre votre problème, mais je peux être en mesure de vous orienter dans la bonne direction. J'ai fait un projet pour un client chargeant un modèle 3D exporté de Blender en utilisant le moteur 3D SIO2.

Quoi qu'il en soit, à ce moment-là, j'avais des problèmes avec le moteur 3D qui prenait beaucoup de temps à charger le modèle. J'ai trouvé que la réduction du nombre de polygones était très importante - si c'est un modèle de haute qualité, vous aurez certainement besoin de le faire. Blender a une fonction pour cela - réduire polygone ou quelque chose comme ça. Blender devrait également vous indiquer combien de polygones et de surfaces sont utilisés, donc si c'est plus que, disons, 20 000, vous risquez de rencontrer des problèmes de performance.

+0

Merci phooze. Cela m'a définitivement mis sur la bonne voie. Je vais devoir y réfléchir un peu plus, mais il semble que ce soit le cas. – wjl