Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.01.2013, 10:56

obj loader mit Texturen

Ich suche einen möglichst simplen obj. loade. Ich habe schon denn einen oder anderen gefunden aber der z.b. ist nich so der knüller:
http://objinopengl.blogspot.de/( Punkte brauch ich nicht )

hoffe ihr habt vieleicht einen code mit vielen kommentaren und guten erklärungen.

Mit Google hab ich schon gesucht :search: aber viel kam nicht raus.

Danke im voraus.

2

26.01.2013, 11:03

Hier habe ich mal etwas auf die Schnelle gefunden: http://www.youtube.com/watch?v=849hXuOv0…AB023E769342AFE
Only God can judge me.

3

26.01.2013, 11:17

Danke Ich werde sie mir mal anschauen. 8o

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

26.01.2013, 11:24

Ich kann dir nur sehr zu Herzen legen, dass du deinen .obj Loader selber schreibst und nicht irgendwo her kopierst, da man dabei imo sehr viel lernen kann...

5

26.01.2013, 12:00

Wieso viele Erklärungen? Das Problem ist doch im Grunde genommen simpel. Textdateien parsen ist kein Hexenwerk, man muss nur ein wenig aufpassen, dass man nicht irgendwie in einer Endlosschleife kommt oder durch ungünstige Containerwahl einen Nachbearbeitungsschritt mit quadratischer Laufzeit einbaut (War ich früher wirklich so doof? :D Und wieso hab ich das Jahrelang nicht gemerkt, waren meine Modelle so undetailliert?).
Ich habe neulich meinen alten Loader von damals für ein Uniprojekt nochmal rausgekramt und kräftig überarbeitet (alles schön linear jetzt^^), zu finden hier:
https://sourceforge.net/projects/waterbreakout/
bzw. direkt die Datei: http://sourceforge.net/p/waterbreakout/c…StaticModel.cpp

Ansonsten kannst du natürlich Assimp benutzen. Da blickst du vielleicht nicht mehr durch den Code durch, aber du hast zum einen eine hübsche Auswahl nützlicher Nachbearbeitungsschritte und zum anderen werden sehr sehr viele Formate unterstützt. Oh, und es wird eine breite Featurepalette von Obj utnerstützt. Mein Loader ignoriert beispielsweise Vertexcolors, und das Material auslesen dürfte auch nicht so toll sein. Assimp müsste so ziemlich alle Informationen aus Obj-Dateien auslesen können.
Lieber dumm fragen, als dumm bleiben!

6

27.01.2013, 14:28

Ok ich werde probieren einen Loader selber zu basteln.
Ich habe jetzt einen Würfel:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Blender v2.62 (sub 0) OBJ File: ''
# www.blender.org
o Cube
v 1.875458 -1.875458 -1.875458
v 1.875458 -1.875458 1.875458
v -1.875459 -1.875458 1.875458
v -1.875458 -1.875458 -1.875459
v 1.875459 1.875458 -1.875458
v 1.875457 1.875458 1.875460
v -1.875459 1.875458 1.875458
v -1.875458 1.875458 -1.875458
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 1.000000 0.000000 0.000000
vn -0.000000 -0.000000 1.000000
vn -1.000000 -0.000000 -0.000000
vn 0.000000 0.000000 -1.000000
s off
f 1//1 2//1 3//1
f 1//1 3//1 4//1
f 5//2 8//2 7//2
f 5//2 7//2 6//2
f 1//3 5//3 6//3
f 1//3 6//3 2//3
f 2//4 6//4 7//4
f 2//4 7//4 3//4
f 3//5 7//5 8//5
f 3//5 8//5 4//5
f 5//6 1//6 4//6
f 5//6 4//6 8//6


Aber was bedeuten die vorzeichen v, vn und f die ich
ja ignorieeren muss( brauch ja nur coordinaten ) :dash:
Auserdem wüsste ich gerne was s off heist

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

27.01.2013, 14:31

Hier findest du alles, was du wissen musst: http://en.wikipedia.org/wiki/Wavefront_.obj_file ;)

8

27.01.2013, 14:58

Ok noch ne frage und zwar mit welcher funktion kann ich die einzelnen Zahlen am besten auslesen??

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

27.01.2013, 15:17

Mit dem operator >>

10

27.01.2013, 15:36

Guck dir mal meinen Code an. Ich benutze für viele Dinge boost-Sachen mit denen das meiner Meinung nach recht elegant gelöst bekommt. Infos zu sämtlichen Funktionen gibts auf der boost-Homepage. boost::split und boost::lexical_cast ist besonders interessant. Unter anderem kann man damit sehr schön prüfen, ob eine Zeile gültig ist, indem man nach sieht, wie viele Zahlen in einer Zeile standen (hätte ich an noch mehr Stellen machen sollen, aber man ist ja faul).
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige