2012-07-15 18 views
17

Chcę napisać analizator składni dla pliku .obj Blendera. Format pliku wydaje się być oczywisty, ale wydaje się również, że brakuje niektórych danych. Na przykład prosta kostka (domyślna kostka Blendera) ma 8 linii wierzchołków, ale spodziewałem się zobaczyć 36 linii (12 trójkątów tworzących sześcian).Jakie są specyfikacje pliku Waveob .obj?

Myślę, że zamieszanie, w leasingu dla mnie, wynika ze sposobu, w jaki kostki są tworzone w direct3d. Direct3d wymaga 36 wierzchołków, aby utworzyć sześcian. Myślę więc, że muszę wywnioskować pozostałe 28 wierzchołków. Tego rodzaju zgadywanie może powodować problemy w późniejszym czasie podczas próby przeanalizowania wierzchołków w celu uzyskania bardziej złożonych kształtów. Pomyślałem więc, że jeśli znajdę oficjalne specyfikacje w formacie pliku, może to dać mi pewien wgląd w interpretację danych.

Wygląda na to, że ktoś wcześniej zadał to samo pytanie: How to get proper number of vertices in OBJ file from DCC tools such as Blender for use in OpenGL ES? , ale nie miał dla mnie żadnych przydatnych informacji.

+0

[Oto podstawowe wyjaśnienie] (http://jamwaffles.co.uk/tutorials/opengl/wavefrontloader/fileexplanation). Jest 8 wierzchołków, ale w dalszej części mamy dane _face_ (linie 'f'), które określają, które wierzchołki tworzą twarz. – Bojangles

+1

Wystarczy napisać, że pliki OBJ blendera nie różnią się w żaden istotny sposób od innych plików OBJ (nie ma specjalnych danych tylko dla blendera), jeśli piszesz czytnik - możesz po prostu wyszukać dokumenty, aby obsługiwały specyfikację OBJ wavefront. – ideasman42

+0

Witam! @James Czy skończyłeś parser? Czy to jest open source? Szukałem również dobrej specyfikacji _.obj_. Pracuję teraz także nad parserem. – im7mortal

Odpowiedz

19

OBJ Spec

MTL Spec (prawdopodobnie będziesz chciał to też w pewnym momencie)

FYI OBJ nie jest w żaden sposób związane z Blendera, to po prostu wspólny format plików dla prostych modeli.

Powiązane problemy