2013-07-11 23 views
5

Wyeksportowałem plik .obj (wraz z .mtl i .png) z Blendera do importu do projektu libgdx. Plik zawiera zarówno dane UV, jak i normalne.Mapowanie UV nie działa na zaimportowanym pliku obj

jestem wyciągając plik w aplikacji tak:

ModelLoader loader = new ObjLoader(); 
model = loader.loadModel(Gdx.files.internal("data/car.obj")); 

obiekt powinien wyglądać następująco: (Tak, nie jestem artystą)

enter image description here

ale kończy się wyglądać jak ten:

enter image description here

Co stało się z moim mapowaniem UV?

Odpowiedz

1

Po prostu przekręć teksturę w pionie i załaduj teksturę, która sprawdzi się dobrze.

Możesz to zrobić za pomocą programu Photoshop.

10

Użyj przycisku loader.loadModel(Gdx.files.internal("data/car.obj"), true);, aby odwrócić pionowe współrzędne tekstury. Można również odwrócić współrzędne pionowych tekstur podczas konwersji do formatu pliku g3dx: fbx-conv -f car.obj (-f jest dla odwrotnych pionowych współrzędnych tekstury), co da plik o nazwie car.g3db i jest bardziej odpowiedni do renderowania. Więcej informacji na temat ładowania i konwersji modeli (i odwracania współrzędnych tekstury) można znaleźć tutaj: http://blog.xoppa.com/.

+0

Wersja libgdx, której używam (wczytałem najnowszy plik .zip) nie ma przeciążenia 'loadModel'. Dziękuję za podniesienie konwertera, ale ... na pewno będę go używać. Witamy również w Stack Overflow! Ponadto, dzięki za tutoriale, było to moje pierwsze wprowadzenie do libgdx. – andypaxo

+0

Jeśli używasz ObjLoader zamiast ModelLoader powinieneś mieć argument flipV ('loader ObjLoader = new ObjLoader();'). Możesz także użyć bardziej ogólnych parametrów: 'loader.loadModel (file, new ObjLoaderParameters (true));'. – Xoppa