3D Modeller Kullanarak OpenGL'de Animasyon


11

Blender'da bir model oluşturdum. Şimdi bu 3D modeli c ++ programımda okumak istiyorum. Bir modelin .obj, .3ds veya COLLADA gibi çeşitli dosya formatlarına aktarılabileceğini ve sonra bir c ++ programında okunabileceğini düşündüm. Uzun süredir bunu yapmak için web'de arama yapıyorum ve birçok öğretici buldum. Ama çoğu ile sorun yaşadım. Örneğin, Nehe öğreticisinde programımda kullanmak istemediğim glaux kullanıyorlar. Ve geri kalan öğreticiler Blender tarafından desteklenmeyen md2 kullanır.

Peki herkes bana 3D modeli dışa aktarmak için hangi dosya biçimini kullanacağımı ve bunu OpenGL programıma nasıl yükleyeceğimi söyleyebilir mi? Ayrıca bu modeli nasıl canlandırabilirim? OpenGL kullanılarak c ++ programına yüklendikten sonra ton eşleme gibi ekstra efektler eklemek mümkün müdür? evet ise nasıl?

PS: Oyun geliştirme için Linux kullanıyorum

Yanıtlar:


2

OBJ formatını seçerdim. Muhtemelen fark ettiğiniz gibi, C ++ için yüzlerce OBJ yükleyici var . En olgun olanlardan birinin Assimp olduğuna inanıyorum , birçok farklı formatı destekliyor ve oldukça iyi belgelenmiş. Burada kullandıkları bir örnek var.


the lighthouse.com bağlantısı çalışmıyor
snape

Tüm tarayıcılarımda benim için çalışıyor ... Bu bağlantıyı deneyin x90.es/1CC
Dan

2
Obj animasyonlu kafesleri desteklemiyor olsa da değil mi? sadece google "Blender opengl derili örgü" ve ben ne istediğinizi uygun bir biçim bulacaksınız bekliyoruz: benim yazı silinemedi, obj biçimini tavsiye önceki bir yazıya bir yanıt olması gerekiyordu
Stowelly

1
.obj animasyonu desteklemiyor ve bu cevap yanlış. stackoverflow.com/questions/757145/…
Sean Middleditch

2

Blender 2.60, COLLADA animasyon desteğini düzeltti, önceki sürümlerde aşağı yukarı kırıldı. Ancak, henüz kendi kodunuza herhangi bir model biçimi yüklemediyseniz, önce .obj yüklemeyi öğrenmenizi öneririm. ASCII'de olduğundan, harici yükleyici kütüphaneleri olmadan okunabilir ve okunması kolaydır.


1

3ds herhangi bir animasyon verisi içermiyor, bu yüzden çalışmaz. Collada Hakkında çok şey bilmiyorum ama oyunumda hangi formatın kullanılacağına karar verdiğimde çok araştırdım ve karşılaştırdım ve sonunda B3D formatıyla gittim, iskelet animasyonunu destekliyor ve Irrlicht'ten yüklenebiliyor (ayrıca aydınlatma değerleri içeriyor) ).

3dsMax 'b3d boru hattı' ihracatçısı kullanın ve kafesleri canlandırmak ve hafifletmek için kendi hlsl gölgelendiricimi kodladım, gerçekten iyi çalışıyor.

Irrlicht'ın nasıl yapıldığını (yani yükleme ve canlandırma) kontrol edebilir, ancak animasyonu yazılımda yapar, ancak bir gölgelendirici ile nasıl yapacağınıza dair biraz arama yaparsanız (isterseniz) örnekler vardır. Güzel bir şey, Irrlicht'in hem OpenGL'yi hem de Linux'u desteklemesi.

Oldukça düz olan bir diğer format .X formatıdır, iskeletin nasıl dışa aktarılacağı, yükleneceği, ayrıştırılacağı ve ayarlanacağı ve onunla canlandırılması konusunda tonlarca örnek olmalıdır. Bir Microsof formatı olsa da belki de kullanmak istemeyeceksiniz :-)

Ton eşleme ve bunun animasyonla kesinlikle bir ilgisi yoktur, bu yüzden bu tekniği nasıl kullanacağınızı biliyorsanız, animasyonlu kafeslerle bunu yapabilirsiniz.

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.