Định dạng tệp cho mô hình 3D tĩnh và hoạt hình


22

Tôi hiện đang viết một trò chơi 3D bằng C ++ với OpenGL và tôi sẽ đến phần để tải mô hình 3D. Vì vậy, tôi đang tìm kiếm các định dạng và kỹ thuật tệp phổ biến để

  • hiển thị lưới tĩnh và
  • làm cho lưới hoạt hình.

Tôi đã tìm thấy khá nhiều định dạng và kỹ thuật có thể, như hoạt hình khung hình, hoạt hình khung xương, MD2 cho đến MD5, 3DS, X, Collada, v.v. Trang.

Để đơn giản, tôi muốn sử dụng một định dạng (và kỹ thuật) cho phép cả hai, cụ thể là lưới tĩnh và lưới hoạt hình. Vì vậy, câu hỏi của tôi là nếu một định dạng phù hợp cho nhiệm vụ đó và định dạng nào bạn đề xuất. Và để làm rõ một chút: Tôi không cần hoạt hình siêu mượt hoặc các tính năng brandnew.

Sidenote: Bởi vì tôi là một người hâm mộ máy xay sinh tố (nhưng không phải là chuyên gia ;-)) sẽ hữu ích nếu nó có thể được sử dụng với điều đó - nhưng tất nhiên đó không phải là công cụ chặn chương trình ở đây.

Câu trả lời:


16

Hãy để tôi đề nghị bạn sử dụng Collada .

Nó được hỗ trợ rộng rãi bởi các công cụ DCC và được chuẩn hóa tốt. Nó hỗ trợ hoạt hình xương và .. tốt, nó làm hầu hết mọi thứ, bao gồm cả shader và vật lý - những thứ đó sẽ không phù hợp với bạn.

Các hình ảnh động dựa trên Vertex, chẳng hạn như trong các định dạng MDL hoặc MD2 ít nhiều là một bản sao của quá khứ. Ngày nay, hầu hết các hình ảnh động là hình ảnh động của bộ xương (tức là nghĩ rằng nếu các nhân vật được xử lý trơn tru) và các công cụ tạo nội dung được tối ưu hóa cho chúng.

Blender có một nhà xuất khẩu Collada hoạt động, nhưng như mọi khi, xuất các thứ từ Blender có thể gây phiền nhiễu. Bạn có thể cần phải thử các nhà xuất khẩu hoặc định dạng tệp thay thế hoặc hack các tập lệnh theo cách thủ công nếu bạn gặp sự cố.

Để tải Collada, hãy sử dụng các thư viện như FCollada hoặc ColladaDOM (Đừng cố tự phân tích nó, Collada là một con quái vật XML thực sự béo ...). Ngoài ra còn có Thư viện nhập tài sản mở , tải ~ 25 định dạng tệp, bao gồm Collada (và tất cả các định dạng khác mà bạn đề cập). Nó sẽ là một lựa chọn tuyệt vời vì nó nhắm đặc biệt vào các nhà phát triển trò chơi và cung cấp đầu ra của nó ở định dạng phù hợp với kết xuất thời gian thực. Nhưng thành thật mà nói: Tôi là một trong những đồng tác giả của nó, vì vậy tôi có lẽ hơi thiên vị.

Cuối cùng nhưng không kém phần quan trọng : Định dạng tệp bạn sử dụng để nhập tài sản của mình không nên xác định khả năng của công cụ của bạn và các kỹ thuật mà nó sử dụng - thay vào đó là cách khác. Cho dù hình động của bạn siêu mượt không phải là câu hỏi về định dạng nhập, đó là về kỹ thuật bạn sử dụng để tạo hiệu ứng lưới và mức độ tốt của chúng được mô hình hóa ở vị trí đầu tiên. Định dạng nhập chỉ giúp bạn đưa dữ liệu của mình từ Blender vào trò chơi.


Cảm ơn bạn rất nhiều vì câu trả lời chi tiết của bạn. Tôi đã nghe nói về Collada lần đầu tiên ngày hôm nay (được một người bạn giới thiệu) và không chắc nó có thực sự sẵn sàng để được sử dụng trong môi trường sản xuất hay không. Tôi sẽ cho nó một shot ngay bây giờ, cảm ơn. :-)
stschindler

2
Lời khuyên tốt, đặc biệt là tài liệu tham khảo về AssImp. Mặc dù vậy, tôi không đề xuất COLLADA vì dường như không ai hỗ trợ một cách nhất quán và chính xác tất cả, và nó khá lớn cho mục đích nội dung thực tế. Tôi khuyên bạn nên sử dụng một cái gì đó như MD5, giúp bạn có được bộ xương và được triển khai khá rộng rãi (tôi nghĩ vậy). Tôi cũng không loại bỏ MD2 dễ dàng như vậy; có rất nhiều mô hình mẫu cho nó, và bạn có thể làm động nó một cách tầm thường với giá rẻ (mặc dù nó vô dụng đối với ragdolls hoặc những gì có bạn).
ChrisE

Tôi sẽ chỉ chơi xung quanh với các định dạng tập tin khác nhau. Nhờ AssImp, điều đó sẽ dễ dàng thực hiện. MD2 thực sự là ý tưởng đầu tiên của tôi, tuy nhiên, nó khá tốn kém để tạo ra, tôi nghĩ, thay vì chỉ xuất khẩu xương thích hợp. Ragdolls không cần thiết trong trường hợp của tôi, tôi chỉ cần mô hình hoạt hình, không liên quan đến vật lý.
stschindler

Thực sự có những nhà xuất khẩu Collada rất tệ ngoài kia, nhưng ít nhất là định dạng được ghi chép đầy đủ để bạn luôn biết trách ai :-). MD5 cũng là một ứng cử viên tốt, nhưng tôi không biết các nhà xuất khẩu Blender tốt như thế nào. MD2 có đại diện đỉnh rất hạn chế và chịu giới hạn kích thước và độ chính xác. Tôi thực sự sẽ không sử dụng nó, không có lý do để làm như vậy.
Alexander Gessler

wazim.com/Collada_Tutorial_1.htm là một hướng dẫn chuyên sâu khá tốt để tải collada, nhưng tôi vẫn khuyên bạn nên sử dụng thư viện thay thế.
Exilyth
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.