2012-07-15 50 views
17

Tôi muốn viết một trình phân tích cú pháp cho tệp .obj của Blender. Định dạng tệp có vẻ tự giải thích, nhưng cũng có vẻ như thiếu một số dữ liệu. Ví dụ, một khối lập phương đơn giản (khối lập phương Máy xay sinh tố mặc định) có 8 dòng đỉnh, nhưng tôi đã mong đợi thấy 36 dòng (12 hình tam giác để tạo thành một khối lập phương).Thông số kỹ thuật cho tệp .obj Wavefront là gì?

Tôi nghĩ rằng sự nhầm lẫn, lúc cho tôi mượn, bắt nguồn từ hình khối được tạo trong direct3d. Direct3d yêu cầu 36 đỉnh để tạo thành một khối lập phương. Vì vậy, tôi nghĩ rằng tôi cần suy ra 28 đỉnh khác. Kiểu đoán này có thể gây ra các vấn đề sau này khi cố gắng phân tích các đỉnh cho các hình dạng phức tạp hơn. Vì vậy, tôi nghĩ rằng nếu tôi có thể tìm thấy các thông số kỹ thuật chính thức về định dạng tệp, nó có thể cung cấp cho tôi một số thông tin chi tiết về cách diễn giải dữ liệu.

Có vẻ như ai đó đã hỏi cùng một câu hỏi trước: How to get proper number of vertices in OBJ file from DCC tools such as Blender for use in OpenGL ES? nhưng không có bất kỳ thông tin hữu ích nào cho tôi.

+0

[Đây là giải thích cơ bản] (http://jamwaffles.co.uk/tutorials/opengl/wavefrontloader/fileexplanation). Có 8 đỉnh, tuy nhiên bạn có dữ liệu _face_ ('f' dòng) xuống tệp chỉ định đỉnh nào tạo khuôn mặt. – Bojangles

+1

Chỉ cần lưu ý rằng các tập tin OBJ của máy trộn không khác nhau ở bất kỳ cách quan trọng nào từ các tệp OBJ khác (không có dữ liệu máy xay đặc biệt), nếu bạn đang viết trình đọc - bạn chỉ có thể tra cứu tài liệu để hỗ trợ thông số OBJ dạng sóng. – ideasman42

+0

Xin chào! @ James Bạn đã hoàn thành trình phân tích cú pháp của mình chưa? Có phải mã nguồn mở không? Tôi đã tìm kiếm tốt _.obj specification_ quá. Tôi cũng làm việc trên trình phân tích cú pháp ngay bây giờ. – im7mortal

Trả lời

19

OBJ Spec

MTL Spec (có thể bạn sẽ muốn điều này quá tại một số điểm)

FYI OBJ là không có cách nào liên quan đến Máy xay sinh tố, nó chỉ là một định dạng tập tin phổ biến cho các mô hình đơn giản.

Các vấn đề liên quan