2013-07-11 28 views
5

Tôi đã xuất tệp .obj (cùng với .mtl và a .png) từ Máy xay sinh tố để nhập vào dự án libgdx. Tệp chứa cả dữ liệu UV và dữ liệu bình thường.Ánh xạ UV không hoạt động trên tệp obj đã nhập

Tôi kéo tập tin vào ứng dụng như thế này:

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

Đối tượng sẽ trông như thế này: (Vâng, tôi không phải là một nghệ sĩ)

enter image description here

Nhưng nó kết thúc như sau:

enter image description here

Điều gì đã xảy ra với bản đồ UV của tôi?

Trả lời

1

Chỉ cần lật kết cấu theo chiều dọc và tải kết cấu nó sẽ hoạt động tốt.

Bạn có thể làm điều đó bằng cách sử dụng photoshop.

10

Sử dụng loader.loadModel(Gdx.files.internal("data/car.obj"), true); để lật tọa độ kết cấu dọc. Bạn cũng có thể lật các tọa độ kết cấu dọc trong khi chuyển sang định dạng tệp g3dx: fbx-conv -f car.obj (-f dành cho các tọa độ kết cấu dọc), sẽ cung cấp cho bạn tệp có tên là car.g3db và phù hợp hơn để hiển thị. Bạn có thể tìm thêm thông tin về cách tải và chuyển đổi mô hình (và lật tọa độ kết cấu) ở đây: http://blog.xoppa.com/.

+0

Phiên bản libgdx mà tôi đang sử dụng (tải xuống phiên bản .zip mới nhất hôm qua) không có quá tải 'loadModel'. Cảm ơn bạn đã đưa trình chuyển đổi lên, mặc dù ... đó chắc chắn là những gì tôi sẽ sử dụng trong tương lai. Ngoài ra, chào mừng bạn đến với Stack Overflow! Ngoài ra, cảm ơn cho các hướng dẫn, đó là giới thiệu đầu tiên của tôi để libgdx. – andypaxo

+0

Nếu bạn sử dụng ObjLoader thay vì ModelLoader, bạn nên có đối số flipV ('ObjLoader loader = new ObjLoader();'). Bạn cũng có thể sử dụng các tham số tổng quát hơn: 'loader.loadModel (tệp, mới ObjLoaderParameters (true));'. – Xoppa