Question

Je suis nouveau à OpenGL. Je joue avec elle en utilisant JOGL. J'utilise ce modèle .

Je suis rendu avec succès à la fenêtre. Cependant, je voudrais appliquer des textures / matériaux. Je ne suis pas tout à fait sûr de savoir comment faire.

A partir du fichier obj:

f 6307/4525/3 6303/4524/3 6327/4523/3 6315/4526/3
usemtl kahki_light_pave_W.png
f 6445/3470/305 6437/4623/305 6593/4624/305 6597/4625/305
f 6594/4626/306 6438/4627/306 6446/4628/306 6598/4629/306
f 6595/4630/307 6439/4631/307 6447/4632/307 6599/4633/307
f 6448/3482/308 6440/4634/308 6596/4635/308 6600/4636/308

Wikipedia me dit que tout après la déclaration de usemtl et avant la déclaration suivante usemtl est censé utiliser khaki_light_pave_W.png. Cependant, je ne sais pas comment faire cela dans OpenGL.

Il y a un tas de sommets définis au début du fichier:

v 19.886690 3.093822 -21.149584
v 23.886690 3.093822 -21.149584
vt 0.918121 0.920883
vt 0.918121 0.959193
vt -0.537323 1.541370
vt -0.537323 1.503060
vt 0.462677 0.503060

Dois-je besoin d'utiliser les sommets vt pour la texture? Les déclarations de f comprennent des indices. Sont-ils indicies dans les sommets de v, vt, ou les deux?

Était-ce utile?

La solution

tl; dr. Les entrées de vt spécifient les coordonnées de texture et l'indice des entrées de f (! Base 1) en trois tableaux distincts (v, vt et vn)

Des spécifications , section « données sommet Référencer « :

  

Pour tous les éléments, les numéros de référence   sont utilisés pour identifier géométrique   sommets, des sommets de texture, sommet   Normales et des sommets de l'espace des paramètres.

     

Chacun de ces types de sommets est   numérotés séparément, en commençant par   1. Cela signifie que le premier sommet géométrique dans le fichier est 1, le deuxième est   2, et ainsi de suite. Le premier sommet de texture   dans le fichier est 1, le second est égal à 2, et   bientôt. La numérotation continue   séquentiellement dans l'ensemble   fichier. Souvent, les fichiers ont plusieurs   listes de données de sommet. cette numérotation   séquence se poursuit même lorsque le sommet   les données sont séparées par d'autres données.

     

En plus de comptage vertices   du haut de la première liste dans la   fichier, vous pouvez aussi compter les sommets arrière   la liste de la position d'un élément   dans le fichier. Lorsque vous comptez la   liste à partir d'un élément, la référence   chiffres sont négatifs. Une référence   nombre de -1 indique le sommet   immédiatement au-dessus de l'élément. UNE   numéro de référence indique deux -2   références ci-dessus et ainsi de suite

Autres conseils

J'ai écrit un chargeur de fichiers OBJ avec une visionneuse de modèle échantillon pour afficher le modèle en utilisant LWJGL, qui est similaire à JOGL mais pas exactement la même chose. (Je l'ai utilisé à la fois JOGL et LWJGL -. En fait, je récemment passé de JOGL à LWJGL)

Je tâchais de rendre le code aussi propre et simple que possible. Malheureusement, il est « à l'ancienne » en ce qu'il utilise le pipeline de fonction fixe plutôt que shaders, mais je l'espère, il peut être assez utile et instructif pour les bases. Vous pouvez le trouver à;

http://darksleep.com/oObjLoader/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top