Stworzyłem model w Blenderze. Teraz chcę przeczytać ten model 3D w moim programie c ++. Uznałem, że model można wyeksportować do różnych formatów plików, np. .Obj, .3ds lub COLLADA, a następnie można go odczytać w programie c ++. Od dłuższego czasu szukam tego w Internecie i znalazłem wiele samouczków. Ale napotkałem problemy z większością z nich. Na przykład W samouczku Nehe używają glaux, którego nie chcę używać w moim programie. Pozostałe tutoriale używają md2, który nie jest obsługiwany przez Blendera.
Czy ktoś może więc wskazać mi, jakiego formatu pliku użyć do eksportowania modelu 3D i jak załadować go do mojego programu OpenGL? Jak mogę animować ten model? Czy można dodać dodatkowe efekty, takie jak mapowanie tonów po załadowaniu go do programu c ++ przy użyciu OpenGL? jeśli tak to jak?
PS Używam Linuksa do tworzenia gier
11
Blender 2.60 poprawił obsługę animacji COLLADA, był mniej lub bardziej zepsuty we wcześniejszych wersjach. Jeśli jednak nie załadowałeś jeszcze żadnych formatów modeli we własnym kodzie, radzę najpierw nauczyć się ładować .obj. Jest w ASCII, więc jest czytelny dla człowieka i łatwy do odczytania bez zewnętrznych bibliotek modułu ładującego.
źródło
3ds nie zawiera żadnych danych animacji, więc nie będzie działać. Collada, o której niewiele wiem, ale kiedy zdecydowałem, jakiego formatu użyć w mojej grze, dużo szukałem i porównywałem, aż w końcu poszedłem z formatem B3D, obsługuje animację szkieletową i można go załadować z Irrlicht (zawiera również wartości oświetlenia ).
Używam eksportera „potok b3d” z 3dsMax i kodowałem swój własny moduł cieniujący hlsl, aby animować i oświetlać siatki, działa naprawdę dobrze.
Możesz sprawdzić, jak robi to Irrlicht (tj. Ładowanie i animowanie), animacja wykonuje się jednak w oprogramowaniu, ale istnieją przykłady, jeśli szukasz trochę, jak to zrobić za pomocą modułu cieniującego (jeśli tego chcesz). Fajną rzeczą jest to, że Irrlicht obsługuje zarówno OpenGL, jak i Linux.
Innym dość prostym formatem jest format .X, musi tam być mnóstwo przykładów eksportowania, ładowania, analizowania i konfigurowania szkieletu oraz animowania go. Jest to jednak format Microsof, więc może nie będziesz chciał go używać :-)
Mapowanie tonów i tym podobne nie ma absolutnie nic wspólnego z animacją, więc jeśli wiesz, jak korzystać z tej techniki, możesz to zrobić za pomocą animowanych siatek.
źródło