Định dạng mô hình 3d iPhone: tập tin .h, .obj hoặc một số khác?


7

Tôi đang bắt đầu viết một trò chơi trên iPhone bằng OpenGL-ES và tôi đã gặp phải một vấn đề khi quyết định định dạng mô hình 3D của mình. Tôi đã đọc (liên kết thoát khỏi tôi vào lúc này) rằng một số nhà phát triển thích các mô hình được biên dịch trong các tệp Objective-C .h. Tuy nhiên, những người khác thích có .obj vì đây là những thiết bị di động hơn (nghĩa là để triển khai trên các nền tảng không phải iPhone).

Các công cụ trò chơi 3D khác nhau dường như hỗ trợ nhiều định dạng (?), Nhưng tôi sẽ không sử dụng bất kỳ công cụ nào trong số này vì tôi thực sự muốn học OpenGL-ES. Có phải tôi đang đặt mình vào thế bất lợi ở đây khi không sử dụng động cơ đóng gói?

Cảm ơn!

Câu trả lời:


3

Mọi công cụ mà bạn học sẽ thực sự dạy cho bạn OpenGL ES tốt hơn, miễn là bạn thấy những gì đang diễn ra dưới mui xe. Bạn có thể cuộn động cơ của riêng bạn, nhưng sẵn sàng viết lại nó nhiều lần. Tốt hơn là nên học một cái hiện có, và sau đó quyết định thời điểm bạn muốn viết từ đầu.

Điều đó nói rằng, cá nhân tôi nghĩ rằng lưu trữ các mô hình trong .hlà một cách làm rất thô sơ và xấu xí. Nó sẽ chỉ hoạt động nếu bạn chỉ có một vài mô hình. Thậm chí không bắt đầu nghĩ về một trường hợp trò chơi sẽ cần xử lý tài nguyên (ergo có nhiều hơn một số lượng mô hình / kết cấu cơ bản).


1

Không. Tất cả phụ thuộc vào những gì bạn muốn học.

Nếu bạn muốn học lập trình trò chơi một cách tổng thể nhưng hướng tới logic hơn, thì hãy sử dụng một công cụ trò chơi.

Nếu bạn muốn tìm hiểu OpenGL-ES, đó là những gì bạn nói, thì sẽ rất có ý nghĩa khi không sử dụng công cụ trò chơi. Bằng cách đó bạn có thể thấy những gì hoạt động, và những gì không. Với công cụ trò chơi, bạn có thể sẽ làm một cái gì đó như 'AddModel ("địa chỉ"); Render ALL (); ' hay bất cứ cái gì. Điều này không làm được gì nhiều khi dạy OpenGL.

Và đối với định dạng mô hình, tôi nghĩ sẽ hợp lý khi giữ chúng dưới dạng tệp .obj. Bạn có thể chỉnh sửa chúng bằng chương trình lập mô hình và bạn tìm hiểu cách tải mô hình phổ quát, thay vì chỉ trên iPhone.


1

Sử dụng các tệp .h cho mô hình của bạn thực sự chỉ hữu ích cho một cái gì đó thực sự nhanh chóng và bẩn thỉu. Mỗi khi bạn thay đổi bất cứ điều gì về mô hình của bạn, bạn cần xây dựng lại. Tôi có thể thấy nó được thực hiện cho một thứ rất quan trọng (giả sử nếu bạn có hình ảnh tải 3d phải ở đó ngay cả khi tải không thành công) nhưng ngoài ra nó còn quá cũ đối với sở thích của tôi (và tôi là một con khủng long trong hầu hết các bộ phận ).
Trong khi tôi sẽ mã hóa khối lập phương trong khi nắm bắt được môi trường, tôi sẽ chuyển sang tải các mô hình ngay khi tôi có trình kết xuất chính của mình và chạy vì nó chỉ khó đọc các mô hình và lập chỉ mục dữ liệu hơn một chút quá tham khảo mô hình mã hóa cứng.
Tải chúng cũng giúp bạn sử dụng công cụ tốt hơn rất nhiều vì nếu bạn mã hóa các mô hình của mình, phần còn lại của mã có thể sẽ tuân theo triết lý được mã hóa cứng và sẽ không thể sử dụng được.


0

Các mô hình OBJ không phải là một định dạng lý tưởng cho OpenGL, vì chúng sử dụng các chỉ mục riêng cho các vị trí, quy tắc và các kết cấu. Sử dụng OBJ với OpenGL có nghĩa là bạn phải xử lý trước dữ liệu khi tải nó để tạo các đỉnh và chỉ mục mới hoặc sử dụng các mảng không được lập chỉ mục để kết xuất.

Một định dạng tương tự đơn giản để phân tích nhưng hiệu quả hơn là IQM và định dạng đồng hành dựa trên văn bản của nó IQE. IQM cũng hỗ trợ hoạt hình cơ bản và màu sắc đỉnh.

http://lee.fov120.com/iqm/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.