2009-02-21 21 views
32

Im viết một công cụ trò chơi và tôi tự hỏi định dạng mô hình 3D nào tôi nên sử dụng/tải/xuất? Obj có vẻ phổ biến và dễ dàng nhưng nó cũng có vẻ không đáng tin cậy vì hầu hết các mô hình đều có lỗi và nó không lưu trữ ở bất cứ nơi nào gần như nhiều định dạng khác.Tôi nên sử dụng định dạng Mô hình 3D nào?

Có vẻ như là định dạng dành riêng cho trò chơi như MD2/3/5 nhưng tôi không chắc chắn, tôi sử dụng wings3d nếu tôi làm mẫu và tôi không biết chi tiết nào khác ngoài việc tải hoàn toàn những gì tôi cần và hỗ trợ từ định dạng Id phải thực hiện, chẳng hạn như tôi sẽ cần phải thực hiện IK? và tôi có thể sử dụng kịch bản cho mỗi phần hoạt hình thay vì nghịch đảo động học và gian lận xương không?

Trả lời

22

Collada là một mở định dạng dựa trên XML cho các mô hình 3d thuộc sở hữu của nhóm Khronos (OpenGL tiêu chuẩn cơ thể)

Từ FAQ Collada.org:

Các COLLADA 1.4.x tính năng thiết lập bao gồm:

  • Lưới hình học
  • Chuyển đổi hệ thống phân cấp (xoay, dịch thuật, cắt, quy mô, ma trận)
  • Hiệu ứng
  • Shaders (Cg, GLSL, GLES)
  • liệu
  • Textures
  • Đèn
  • Máy ảnh
  • Skinning
  • Animation
  • Vật lý (cơ quan cứng nhắc, khó khăn, những con búp bê bằng giẻ rách, va chạm, khối lượng)
  • õ
  • Kỹ thuật
  • Multirepresentations
  • Tài sản
  • Dữ liệu người dùng
+15

Tôi sẽ không sử dụng định dạng này cho đồ họa thời gian thực. Collada được thiết kế như một định dạng trung gian cho các đường ống sản xuất đồ họa. Sử dụng nó để chuyển đổi sang một định dạng nhị phân nhỏ gọn hơn, hoặc bạn sẽ phải đợi cả ngày để tải. –

+0

Cũng xem xét rằng không phải tất cả các công cụ đều hỗ trợ toàn bộ tính năng COLLADA. –

+0

Cuối cùng tôi đã đi với thư viện ASSIMP để tải hình học để bất cứ ai cũng có thể sử dụng những gì họ thích miễn là họ hỗ trợ các thuộc tính cần thiết –

2

Tôi sử dụng định dạng nhị phân của riêng mình. Tôi đã cố gắng sử dụng các định dạng hiện có nhưng luôn chạy vào các hạn chế. Một số có thể được làm việc xung quanh, những người khác nơi showstoppers.

Collada có thể đáng xem. Tôi không nghĩ rằng nó tốt như một định dạng được đọc bởi một công cụ 3D. Nó là tốt như một định dạng trao đổi dữ liệu chung mặc dù.

http://www.collada.org/mediawiki/index.php/Main_Page

5

Trước khi lo lắng về những gì định dạng 3D bạn muốn hỗ trợ, tôi nghĩ rằng bạn thực sự cần tập trung vào những tính năng mà bạn đang có kế hoạch thực hiện trong công cụ của bạn. Viết xuống dưới dạng yêu cầu và chọn định dạng hỗ trợ hầu hết các tính năng từ danh sách ... vì bạn sẽ muốn giới thiệu công cụ của mình (Tôi giả sử bạn đang lên kế hoạch cho công cụ của mình được công bố công khai). Bạn thậm chí có thể muốn cuộn định dạng của riêng bạn, nếu động cơ của bạn có các tính năng cụ thể (mà luôn luôn là một điều tốt để có cho một công cụ trò chơi).

Sau đó, hỗ trợ nhiều định dạng phổ biến nhất có thể (.X, .3DS, .OBJ, .B3D) ... càng có nhiều công cụ truy cập của bạn, càng có nhiều người muốn làm việc với nó!

Collada là một định dạng đẹp và chung chung, nhưng như Nils đề cập, đó không phải là định dạng lý tưởng để triển khai cuối cùng.

1

hỗ trợ Collada tốt, sau đó cung cấp bộ chuyển đổi tốt đến/từ th các định dạng khác (điều này có thể là phần khó). Điều này sẽ cho bạn sự linh hoạt tối đa. Hãy xem C4 engine

-1

Collada rất tuyệt, nhưng nó sống nhiều hơn ở phía ứng dụng 3D của mọi thứ. tức là nó được sử dụng tốt nhất để truyền dữ liệu 3D giữa các ứng dụng, không tải dữ liệu 3D từ bên trong một công cụ trò chơi. Bạn đã nhìn vào Lua chưa? Nó được sử dụng rộng rãi trong các trò chơi bởi vì một ngôn ngữ kịch bản của nó nhanh chóng hoàn toàn (hoàn hảo cho trò chơi) và rất linh hoạt (có thể được sử dụng để đại diện cho bất kỳ dữ liệu nào bạn cần cho động cơ của bạn).

+5

Lua là ngôn ngữ lập trình, không phải là định dạng mô hình. – Dirbaio

+0

Tất nhiên :) nhưng Lua có thể đại diện cho ma trận, do đó, xây dựng một định dạng mô hình 3D/phân tích cú pháp là cái gì đó có thể được thực hiện – Mathew

+2

Bình chọn xuống - một số người trả lời với "Lua" cho bất kỳ câu hỏi mà họ tìm thấy. – BitTickler

2

+1 cho Collada. Bạn cũng có thể muốn một định dạng nhị phân gốc tùy chỉnh để tải nhanh (thường chỉ là một kết xuất nhị phân của dữ liệu đệm/chỉ mục đỉnh, cộng với dữ liệu tài liệu và bộ xương, và dữ liệu va chạm nếu thích hợp).

Một xu hướng trong ngành công nghiệp trò chơi là hỗ trợ tải định dạng như collada trong bản xây dựng nhà phát triển của động cơ, nhưng cũng có chuỗi công cụ xuất phiên bản được tối ưu hóa để phát hành. Phiên bản dành cho nhà phát triển có thể cập nhật lưới động, vì vậy khi các nghệ sĩ lưu thay đổi, tệp sẽ tự động được tải lại cho phép chúng (xem gần) ngay lập tức WYSIWYG của mô hình của chúng, nhưng vẫn cung cấp định dạng phát hành được tối ưu hóa hoàn toàn.

+2

Về định dạng nhị phân gốc, đáng lưu ý là đã có định dạng XML nhị phân chuẩn: http://en.wikipedia.org/wiki/Binary_XML – Hibou57

+0

@ Hibou57 Vâng, không thực sự. Không có tiêu chuẩn công nghiệp nào – RecursiveExceptionException