2010-01-07 11 views
12

Biorę kurs OpenGL i mamy opcję tworzenia modeli do wykorzystania w naszych zadaniach za pomocą aplikacji do modelowania 3D, takiej jak Maya lub Blender.Importowanie modeli do projektu OpenGL

Jestem nie czekam na wpisywanie w współrzędnych ręcznie, więc byłem ciekawy, jakie zasoby powinienem być patrząc do pisania kodu OpenGL i importowania modeli. (Teksty przychodzą później). Jestem również zaniepokojony skalą, do której się importuję, ale może na tym punkcie jest głupio się martwić.

Dzięki za wszelkie sugestie zasobów. OpenGL ma tak wiele rzeczy, że czasami przygniata mnie Googling za to, czego potrzebuję.

EDYTOWANIE: Właśnie tego użyłem. http://www.spacesimulator.net/tut4_3dsloader.html Pobrałem wersję "Windows" z kilkoma zmianami ścieżek do załączników, uruchomiłem i uruchomiłem. Nie obsługuje plików OBJ, ale raczej 3DS. Gepard 3D eksportuje również do tego typu.

+0

Nie sądzę, że to powinno tu być na SO, SU byłoby lepiej. –

+8

@Maxim Dlaczego SU lepiej byłoby pytać o biblioteki do ładowania modeli do czegoś, co można narysować za pomocą OpenGL? Wydaje się, że związane z mną ładne programy. –

Odpowiedz

8

Blender może zapisywać pliki w formacie .obj, a proste wyszukiwanie google powoduje wyświetlenie kilku bibliotek do załadowania tego do OpenGL. Here jest jednym z nich.

2

Powiedziałbym, że format Obj jest dobrym balansem dla czytelności i funkcjonalności, jeśli chcesz sam je przeanalizować.

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

Najprostszym sposobem byłoby się znaleźć bibliotekę, aby to zrobić dla Ciebie, ale możliwości byłaby ograniczona do wybranego języka.

Nie powinieneś się martwić skalą. Matryce OpenGL mogą łatwo przeskalować wierzchołki.

4

Proponuję, aby nie martwić się teraz o skalę obiektów.

Teraz trzeba będzie ustalić format pliku 3D. Istnieje wiele opcji podczas eksportowania z programu 3D, takiego jak Maya lub Blender.

Może zalecam spróbowanie prostego importera COLLADA. Informacje o specyfikacji można znaleźć tutaj: http://www.khronos.org/files/collada_spec_1_4.pdf

Kolejna specyfikacja, z której korzystałem ostatnio, prawdopodobnie również byłaby odpowiednia, ponieważ jest to OBJ.

Specyfikacja OBJ znajduje się tutaj: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/

Ponadto, istnieje kilka wolne przykładowe pliki 3D OBJ zlokalizowane here. Dzięki temu zobaczysz format plików i zobaczysz, jak łatwo można je analizować.

Należy pamiętać, że OBJ nie obsługuje animacji i jest raczej nieefektywny w renderowaniu dużych scen.

+0

Animacja nie jest problemem. Mam Cheetad3D i właśnie sprawdziłem i zobaczyłem, że potrafi on robić niesamowite pliki. – bobber205

5

Jednym z najprostszych formatów, które można wykorzystać do eksportowania oczek, jest Wavefront OBJ (należy go wyszukać w Wikipedii, ponieważ obecnie mogę publikować tylko jeden link: jeden). Jest to w zasadzie plik tekstowy, który nie powinien być zbyt trudny do przeanalizowania.

Albo faktycznie, jeśli wolno użyć GLUT, można spróbować użyć jego program ładujący (jak odpowiedział OpenGL FAQ 24.040)

Nie martw się o skali obiektu w tej chwili, zawsze można skalować obiekt później. Upewnij się tylko, że eksportujesz je z lokalnymi współrzędnymi, a nie globalnymi (np. [0,0,0] powinno być centrum obiektu, a nie światem, który modelujesz).

+0

GLUT jest wymagany (lub przynajmniej bardzo polecany) do tego niesamowitego linku kursu! – bobber205

+0

Używam FreeGLUT. Czy mam szczęście bez zmiany GLUT, którego używam? :( – bobber205

+0

@ bobber205 O ile wiem, czy freeglut jest obecny na maszynie, glut po prostu importuje cały freeglut do siebie i jest niczym więcej niż symboliczną kopią.Zamiast tego to mój freeglut.h i glut.h powiedz mi. Korzystam z Linuksa Box, a to może być dla ciebie inne.Zalecam, aby wyszukać źródło glut.h i freeglut.h w ścieżce dołączania, aby potwierdzić. Pozdrawiam! ---- Zgaduję, że odpowiedziałem Naprawdę przestarzały post, ale mam nadzieję, że nie zmniejszy to adekwatności mojego komentarza. – ffledgling