Statik ve hareketli 3D modeller için dosya formatı


22

Şu anda OpenGL ile C ++ 'da bir 3D oyun yazıyorum ve 3D modellerin yükleneceği kısma geliyorum. Bu nedenle popüler dosya formatları ve teknikleri arıyorum.

  • statik kafesleri görüntüleme ve
  • animasyonlu kafesleri işlemek.

Anahtar kare animasyonları, iskelet animasyonu, MD2'ye kadar MD5, 3DS, X, Collada vs. pp gibi çok sayıda olası format ve tekniği buldum.

Basit olması için hem statik hem de hareketli kafeslere izin veren bir format (ve teknik) kullanmak istiyorum. Dolayısıyla benim sorum, bir formatın bu iş için uygun olup olmadığını ve hangisini önereceğinizdir. Ve biraz netleştirmek için: Süper yumuşak animasyonlara ya da yepyeni özelliklere ihtiyacım yok.

Sidenote: Çünkü ben bir blender hayranıyım (ama bir uzman değil ;-)) bununla birlikte kullanılabiliyorsa yardımcı olabilir - elbette şovun durdurucusu olmamalı.

Yanıtlar:


16

Collada'yı kullanmanızı önereyim .

DCC araçları tarafından yaygın olarak desteklenir ve iyi standardize edilmiştir. İskelet animasyonlarını destekliyor ve .. şey, gölgelendiriciler ve fizik dahil hemen hemen her şeyi yapıyor - bunlar sizin için alakalı olmayacak.

MDL veya MD2 formatlarında olduğu gibi vertex tabanlı animasyonlar geçmişte kalmıştır. Günümüzde, çoğu animasyon iskelet animasyonlarıdır (yani, düzgün şekilde yerleştirilmiş karakterler varsa düşünün) ve içerik oluşturma araçları onlar için optimize edilmiştir.

Blender’ın çalışan bir Collada ihracatçısı vardır, ancak her zaman olduğu gibi Blender’dan malzeme ihracı can sıkıcı olabilir. Alternatif ihracatçılar ya da dosya formatları denemeniz ya da bir sorunla karşılaşırsanız komut dosyalarını elle kesmeniz gerekebilir.

Collada'yı yüklemek için, FCollada veya ColladaDOM gibi kütüphaneler kullanın (Kendi başınıza ayırmaya çalışmayın, Collada gerçekten şişman bir XML canavarıdır ...). Collada (ve bahsettiğiniz diğer tüm biçimler dahil) ~ 25 dosya biçimini yükleyen Open Asset Import Library de var . Özellikle oyun geliştiricileri hedeflediğinden ve gerçek zamanlı görüntü oluşturma için uygun bir formatta çıktı sağladığından mükemmel bir seçim olacaktır. Ama dürüst olmak gerekirse: Ben onun ortak yazarlarından biriyim, bu yüzden muhtemelen biraz önyargılıyım.

Son fakat en az değil : Varlıklarınızı almak için kullandığınız dosya formatı, motorunuzun yeteneklerini ve kullandığı teknikleri tanımlamamalıdır - tam tersi olmalıdır. Animasyonlarınızın süper yumuşak olup olmadığı, içe aktarma formatının bir sorusu değil, kafesleri canlandırmak için hangi tekniği kullandığınız ve ilk etapta ne kadar iyi modellendikleriyle ilgili. İçe aktarma biçimi, verilerinizi Blender'dan oyununuza getirmenize yardımcı olacaktır.


Detaylı cevabınız için çok teşekkür ederim. Bugün ilk defa Collada'yı duydum (bir arkadaş tarafından önerildi) ve üretim ortamında kullanılmaya gerçekten hazır olup olmadığından emin değildim. Şimdi bir şans vereceğim, teşekkürler. :-)
stschindler

2
İyi tavsiye, özellikle AssImp'a yapılan referans. Yine de, COLLADA'yı önermedim, çünkü hiç kimse bütün bunları tutarlı ve doğru bir şekilde desteklemiyor gibi görünüyor ve bu gerçek içerik amaçları için oldukça büyük. MD5 gibi bir şey kullanmanızı öneririm, bu size iskeleti getirir ve oldukça geniş bir şekilde doğru şekilde uygulanır (bence). MD2'yi de o kadar kolay işten çıkarmam; bunun için pek çok örnek model var ve önemsizce ucuzca canlandırabilirsiniz (ragdolls veya neye sahipseniz kullanışsız olmasına rağmen).
ChrisE

Sadece farklı dosya formatları ile oynarım. AssImp sayesinde bunu yapmak kolay olacak. MD2 gerçekten ilk fikrimdi, ancak sadece uygun kemikleri dışa aktarmak yerine, oluşturmak oldukça pahalı. Benim durumumda Ragdolls'e gerek yok, sadece animasyonlu modellere ihtiyacım var, fizik dahil değil.
stschindler

Orada gerçekten çok kötü Collada ihracatçıları var, ama en azından formatı iyi belgelendiğinden, kimi suçlayacağınızı her zaman bilirsiniz :-). MD5 de iyi bir aday ama Blender ihracatçılarının ne kadar iyi olduğunu bilmiyorum. MD2, çok sınırlı bir köşe temsiline sahiptir ve boyut ve doğruluk sınırından muzdariptir. Ben gerçekten bunu yapmak için hiçbir neden yoktur, bunu kullanmak ister.
Alexander Gessler

wazim.com/Collada_Tutorial_1.htm , kolajen yüklemek için oldukça iyi bir eğiticidir, ancak yine de bir kütüphane kullanmanızı öneririm.
Exilyth
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.