2009-07-23 43 views
16

Tôi đang bắt đầu với XNABlender và đang cố gắng tìm thông tin chất lượng tốt, cập nhật về các định dạng tệp 3D khác nhau được sử dụng trong phát triển trò chơi.Định dạng tệp 3D cho trò chơi

Rõ ràng nhiều trò chơi được phát triển với nhiều định dạng tệp 3D tùy chỉnh nhưng tôi quan tâm đến việc chọn giải pháp tốt bằng định dạng được hỗ trợ phổ biến hơn.

Các định dạng phổ biến nhất và những gì phân biệt chúng?

LƯU Ý Lý tưởng nhất, chúng phải hỗ trợ hoạt ảnh, nhưng tôi cũng sẽ quan tâm đến các định dạng khác có thể được sử dụng để tạo bản đồ hoặc đối tượng tĩnh.

+0

Câu hỏi hay. Rất hữu ích. Chỉ cần sayin '... :-) –

Trả lời

10

Trong XNA, hình phạt cố gắng làm bất cứ điều gì (riêng định dạng dữ liệu tải) cao hơn nhiều so với sống không hoàn hảo của những người được hỗ trợ ngay trên kệ, ít nhất đó là những gì tài liệu trông giống như, và những gì tôi nghe từ một người uốn cong đường ống nội dung một cách đáng yêu để hỗ trợ những gì anh ta cần (tạo hình học thời gian chạy) và người mà tôi tin tưởng để biết anh ta đang làm gì. Vì vậy, tôi đoán .X và .BX là khá nhiều sẽ được nó. Cả hai đều hỗ trợ hoạt hình xương, và tôi nghĩ rằng cũng là đỉnh morping. Tôi không chắc chắn chính xác những gì các tính năng chính xác Blender có thể xuất khẩu vào chúng, nhưng tôi có thể nhìn vào nó nếu bạn thích.

Máy xay sinh tố 2.5 cuối cùng sẽ có hỗ trợ Collada tốt (hiện tại không có lớp bọc và bị hỏng theo nhiều cách), và Autodesk cung cấp công cụ tốt để chuyển đổi Collada < -> FBX.

Nếu bạn nhìn xung quanh cộng đồng phát triển sở thích, bạn sẽ thấy rằng định dạng dữ liệu phần mềm Id khá phổ biến. Một mặt MD2 và MD3 vertex morphing định dạng hoạt hình nhân vật, MD5 định dạng hoạt hình xương, có nhu cầu rõ ràng là được bảo hiểm bởi ở trên, và mặt khác định dạng tập tin BSP, trong đó mô tả các cấp trò chơi.

Một điều nói cho BSP là một trình soạn thảo tốt có sẵn (GTKRadiant và các dẫn xuất). Đây là một định dạng hiệu quả có thể loại bỏ hình học ẩn. Tuy nhiên, chi phí thời gian chạy của xây dựng hình học tùy chỉnh trong XNA là đáng kể, và với giới hạn của các định dạng này khá khiêm tốn ở 64k đỉnh và đa giác 64k trong toàn bộ cấp trò chơi, đó là thứ bạn có thể đổ vào cạc đồ họa ngày nay và không hiệu suất giảm sẽ đáng chú ý. Vì vậy, bạn không nhận được bất kỳ lợi ích nào từ việc hỗ trợ trực tiếp.

Tôi nghi ngờ có bất kỳ công cụ và định dạng mạnh mẽ, hiện đại, có sẵn nào cho thiết kế mức tối ưu được chọn lọc, có lợi ích hiệu suất sẽ chuyển thành XNA.

Một vài liên kết bạn có thể muốn kiểm tra, nếu bạn chưa sẵn sàng:

3D World Studio content pipeline

Quake port

Tất cả bỏ dở và quá hạn, không có ý tưởng như thế nào tối ưu hay không.

+0

Cảm ơn thông tin tuyệt vời! –

5

Bạn có thể muốn nhìn vào COLLADA mà là một chuẩn được sử dụng rộng rãi trong việc phát triển trò chơi 3D:

http://en.wikipedia.org/wiki/COLLADA

+0

COLLADA là một mớ hỗn độn khó chịu để phân tích chính mình mặc dù. Nếu bạn nên đi tuyến đường này, hãy nhận một số loại thư viện phân tích cú pháp. – Ricket

+0

Đúng như FCollada http://www.feelingsoftware.com/content/view/62/76. – zebrabox

6

Nếu bạn đang sử dụng XNA, sau đó lựa chọn tốt nhất có lẽ là FBX. Lý do chính tôi nói rằng đây là duy nhất, không XNA cụ thể, format supported natively by XNA trong đường dẫn tạo nội dung.

+0

Cảm ơn lời khuyên, mặc dù tôi vẫn quan tâm đến các định dạng khác, đặc biệt nếu ai đó đã tạo một trình nhập/xử lý nguồn mở –

+0

@The Lame Duck: Tại sao bạn lại muốn một cái gì đó khác nếu bạn có được kết quả tốt nhất bằng cách sử dụng fbx định dạng? Giống như Reed đã đề cập, XNA sẽ hỗ trợ nó một cách tự nhiên, và nếu Blender xuất ra định dạng đó, đó có lẽ là lựa chọn tốt nhất của bạn. – tomzx

+0

@tomzx - Rất đúng, fbx có thể là lựa chọn tốt nhất. Tôi vẫn tò mò làm thế nào nó so sánh với .md3 hoặc .md5 hoặc thậm chí COLLADA. Nó có hỗ trợ các tính năng tương tự không? –

0

Không phải là chuyên gia (cách xa nó, chỉ đùa giỡn).

Tôi đoán định dạng tối đa của studio 3d (.3ds) khá được sử dụng, cũng như tệp RIB renderman. Tôi cũng thích định dạng tệp AC3D (văn bản thuần túy).

6

COLLADA và FBX đã đề cập là các định dạng chuẩn duy nhất đã đạt được bất kỳ sự chấp nhận đáng kể nào trong ngành trò chơi. Tuy nhiên, ít trò chơi sẽ tải chúng trực tiếp - chúng thường được sử dụng làm định dạng trung gian để xuất từ ​​các ứng dụng DCC và sau đó được xử lý thêm vào các định dạng thời gian chạy được tối ưu hóa hơn, thường tùy chỉnh và cụ thể cho động cơ.

Nhà phát triển sở thích thường sử dụng định dạng tệp từ các trò chơi phổ biến làm điểm bắt đầu. Mô hình Quake 3 và các định dạng bản đồ khá phổ biến trong một thời gian. Định dạng .X của Microsoft cũng khá phổ biến cho các dự án hobbyist do sự sẵn có của một số nhà xuất khẩu và hỗ trợ tải trong khuôn khổ D3DX.

0

Trong nhiều năm nay, DirectX file format (phần mở rộng .x) rất phổ biến và Máy xay sinh tố chứa nhà xuất bản tích hợp sẵn cho việc này.

+1

Điều này thường không được coi là một định dạng tốt nhưng để tìm hiểu về các API 3D nó sẽ được nhiều hơn đủ cho công việc. – Skizz

3

Tôi đã chọn định dạng MS3D vì đặc điểm kỹ thuật của nó rất đơn giản, có ý nghĩa, không có hoạt ảnh và cũng có thể gian lận (khớp) và được ghi lại.

Cũng xem câu hỏi trước đây của tôi, rất giống với trang này, và câu trả lời tôi đã viết thư cho nó (trong đó, kỳ quặc đủ, có vẻ là ở dưới cùng của trang):

[SOLVED] Recommended 3D model type for in-game character model, loaded manually?

0

tệp PMD. Chúng được sử dụng cho hoạt ảnh MMD và hơn thế nữa! Chỉ cần tìm kiếm xung quanh Deviantart.com cho những thứ như "mô hình MMD"

PMD và PMX VÀ OBJ

2

Nó có thể có giá trị cho glTF một cái nhìn.

Ngoài ra còn có phiên bản glTF 2.0 trong các tác phẩm bổ sung hỗ trợ dựng hình dựa trên vật lý. Bản nháp trên trang Khronos.

Assimp có hỗ trợ 'một phần' cho nó. Không chắc những gì còn thiếu.

Ngoài ra còn có một loạt trình tải cho các ngôn ngữ khác nhau (C++, WebGL/JS, Rust, Go) trên github.

Ngoài ra còn có một bộ chuyển đổi COLLADA sang gltf.

Nó sử dụng tệp JSON dưới dạng tệp kê khai, sau đó tải dữ liệu vào các tệp khác như .bin cho nhị phân, hình ảnh khác nhau và glsl cho trình đổ bóng. Tuy nhiên, có binary extension.

Tất nhiên vì đó là hỗ trợ mới (và vẫn đang được phát triển) sẽ không tuyệt vời như vậy. Thời gian qua tôi nhìn COLLADA là một hit khá và bỏ lỡ quá.

Ngoài ra còn có Declarative 3D.

Xem this paper that covers both.

Cả hai định dạng này đều có một chút tiêu điểm web, nhưng cũng tốt cho các trò chơi.

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