Animasi di OpenGL menggunakan Model 3D

11

Saya telah membuat model di Blender. Sekarang saya ingin membaca model 3D di program c ++ saya. Saya pikir model dapat diekspor ke berbagai format file misalnya .obj, .3ds atau COLLADA dan kemudian dapat dibaca dalam program c ++. Saya telah mencari web untuk melakukan itu cukup lama dan menemukan banyak tutorial. Tetapi saya mengalami masalah dengan sebagian besar dari mereka. Sebagai contoh, DI tutorial Nehe mereka menggunakan glaux yang tidak ingin saya gunakan dalam program saya. Dan tutorial lainnya menggunakan md2 yang tidak didukung oleh Blender.

Jadi, adakah yang bisa memandu saya format file mana yang akan digunakan untuk mengekspor model 3D dan bagaimana memuatnya dalam program OpenGL saya? Juga bagaimana saya bisa menghidupkan model itu? Apakah mungkin untuk menambahkan efek tambahan seperti pemetaan nada setelah dimuat dalam program c ++ menggunakan OpenGL? jika ya lalu bagaimana?

PS Saya menggunakan Linux untuk pengembangan game

Snape
sumber

Jawaban:

2

Saya akan menggunakan format OBJ. Seperti yang mungkin sudah Anda sadari, ada ratusan loader OBJ untuk C ++ di luar sana . Saya percaya salah satu yang paling dewasa adalah Assimp , mendukung banyak format berbeda dan didokumentasikan dengan cukup baik. Di sini Anda memiliki contoh di mana mereka menggunakannya.

Dan
sumber
tautan lighthouse.com tidak berfungsi
snape
Ini berfungsi untuk saya di semua peramban ... Coba tautan ini x90.es/1CC
Dan
2
Obj tidak memiliki dukungan untuk jaring animasi meskipun begitu? hanya google "Blender opengl skinned mesh" dan saya berharap Anda akan menemukan format yang sesuai dengan yang ingin Anda edit: tidak dapat menghapus posting saya, dimaksudkan sebagai balasan untuk posting sebelumnya yang merekomendasikan format obj
Stowelly
1
.obj tidak mendukung animasi, dan jawaban ini salah. stackoverflow.com/questions/757145/…
Sean Middleditch
2

Blender 2.60 telah memperbaiki dukungan animasi COLLADA, itu kurang lebih rusak di versi sebelumnya. Namun, jika Anda belum memuat format model apa pun dalam kode Anda sendiri, saya sarankan belajar memuat .obj terlebih dahulu. Ada dalam ASCII sehingga dapat dibaca oleh manusia dan mudah dibaca tanpa pustaka loader eksternal.

Mesin Survival
sumber
1

3ds tidak mengandung data animasi apa pun sehingga tidak akan berfungsi. Collada Saya tidak tahu banyak tentang tetapi ketika saya memutuskan format mana yang akan digunakan dalam permainan saya, saya mencari dan membandingkan banyak dan akhirnya saya pergi dengan format B3D, itu mendukung animasi kerangka dan dapat dimuat dari Irrlicht (juga berisi nilai pencahayaan ).

Saya menggunakan eksportir 'b3d pipeline' dari 3dsMax dan saya telah mengkodekan hlsl shader saya sendiri untuk menghidupkan dan menyalakan jerat, ia bekerja dengan sangat baik.

Anda dapat memeriksa bagaimana Irrlicht melakukannya (mis. Memuat dan menghidupkan), ia melakukan animasi dalam perangkat lunak, tetapi ada beberapa contoh jika Anda mencari sedikit tentang cara melakukannya dengan shader (jika Anda menginginkannya). Yang menyenangkan adalah Irrlicht mendukung OpenGL dan Linux.

Format lain yang cukup lurus ke depan adalah format .X, harus ada banyak contoh di luar sana tentang cara mengekspor, memuat, mem-parsing dan mengatur kerangka dan menjiwai dengannya. Ini adalah format Microsof jadi mungkin Anda tidak akan mau menggunakannya :-)

Pemetaan nada dan semacamnya sama sekali tidak ada hubungannya dengan menjiwai jadi ya jika Anda tahu cara menggunakan teknik itu, Anda bisa melakukannya dengan jerat animasi.

Valmond
sumber