Skocz do zawartości

[OpenGL]rendery w programach


masterloko

Rekomendowane odpowiedzi

hej. slyszalem ze czesto modele do gier 3d sa robione wlasnie w 3ds maxie lub innym sofcie 3D. Na czym polega taka operacja? Importuje się zrenderowane modele do programu? czy moze pliki z formatem .max*? moglby ktos mi dokladnie wytlumaczyc na czym polega importowanie np. wlasnych modeli do swojego prgramu w openGL? bylbym bardzo wdzieczny. pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 10
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

jej, chyba musisz kupić sobie książek kilka :)

zależy jak napiszesz swój program, jeżeli napiszesz do niego np dynamiczny loader obiektów z plików max to nie musisz nic exportować, jak napiszesz program wykorzystujący inne struktury to musisz napisać sobie exporter, który z danych z programu wygeneruje ci dane wg twojej struktury itd. Są gotowe silniki graficzne jak np ogre (ogre3d.org) które np potrafią załadować sceny i obiekty w kilku swoich formatach, ale też np znany format collada itd. Poczytać radzę najpierw.

Odnośnik do komentarza
Udostępnij na innych stronach

google. tony są tego, szczególnie na forach gdzie siedzą developperzy gier, czyli jakieś gamedevy etc, ale też zależy co chcesz osiągnąć, jak zerkniesz na ogre3d.org albo inne Open sourcowe silniki to też sporo znajdziesz, na opengl.org też coś będzie

Odnośnik do komentarza
Udostępnij na innych stronach

tzn ogre to jest framework generalnie open sourcowy, czy tam abstrakcja do renderowania grafiki 3d, czy jak kto woli silnik graficzny, w warstwie renderującej na dx 7 8 9 10 i opengl do wyboru, cóż, żeby wyświetlić sam model z maxa np (jest na ich stronie exporter z maxa do ich formatu) wystarczy kilka linijek kodu w c++ (ew innym języku). Jakby kolega dokładniej powiedział co konkretnie chce osiągnać, jaki jest jego poziom wiedzy to może coś więcej mógłbym napisać, choć za dużo programów 3d nie napisałem :).

Bo tak naprawdę nie do końca wiadomo co kolega chce osiągnąć.

 

Bo jeżeli napisałeś swój program, to ty wiesz najlepiej jakie struktury on czyta i jak te struktury trzyma w pamięci, i jak je renderuje przy pomocy opengl, Jeżeli chcesz zaś zacząć pisać programy renderujace coś w czasie rzeczywistym, to aby ominąć niskopoziomowe programowanie, można skorzystać właśnie z takiego ogre czy irrlichta czy innego crystalspace i zając się samą aplikacją a do importu/exportu modeli i samego renderowania użyć już tego gotowego kodu

 

co do gier, to każda gra 3d ma tak naprawdę zaawansowany silnik, który ładuje wszystkie zasoby, w tym modele, najczęściej z plików o danej strukturze, i np taki sławny source, na którym bazują ostatnie half-life'y trzyma te swoje modele ze szkieletami etc w konkretny sposób, a do takiego maxa dostępny jest exporter, który poprostu bierze dane prosto z maxa, z pamięci, i zapisuje je w formie takiej, żeby source potrafił to przeczytać, ale jest to specyficzny format dla tego silnika, kto inny napisze swoją aplikację, czy swój renderer do takiego maxa, to te same dane, może jakieś dodatkowe jeszcze, weźmie również z tego nieszczęsnego maxa i zapisze w jeszcze innym formacie, formacie, który będzie czytelny dla tego jego programu.

 

...

i tak długo można

Jeżeli kolega chce tworzyć swoje aplikacje, to najpierw polecam książki o podstawach programowania, potem o zaawansowanym programowaniu, potem o dodatkowych technologiach jak np wspomniany opengl, a potem o planowaniu projektu, a dopiero potem zabierać się za pisanie, bo zdaje mi się, że nawet podstaw tu ni ma :)

Odnośnik do komentarza
Udostępnij na innych stronach

kolega programuje w c++ i uczy sie openGla majac w zamiarze robic gierki 3d.

chcialbym np sam sobie zrobic modki w 3ds maxie lub wziasc od kolegi i napisac 'pare linijek kodu' ktory pozwolilby je wyswietlac w trybie graficznym openGl . jak tego dokonac?

a moze skad wziasc te 'pare kodu linijek'? ;p

Odnośnik do komentarza
Udostępnij na innych stronach

cóż, takiego ogre używa sie po to, żeby nie myśleć jak coś zrobić w opengl czy directx, tylko, żeby napisać dodaj_obiekt(mobiekt); renderuj_klatke(); a w zależności od inicjalizacji taki ogre wyrenderuje to używając opengl albo directx. co do kodu: http://www.ogre3d.org/wiki/index.php/Main_Page

Choć szczerze powiedziawszy wygląda mi na to, że kolega nie uczy się opengl a zamierza zacząć się opengl uczyć. Jeżeli się mylę, trudno, przepraszać nie będę bo i nie ma za co ;)

 

PS. exportery z maxa do ogre też tam gdzieś na tych stronach są

Odnośnik do komentarza
Udostępnij na innych stronach

Masater stara się to właśnie Ci wytłumaczyć: framework taki jak Orge powstaje po to (takich narzędzi jest bez liku), żebyś nie musiał programować samego OpenGL. Tworzy uniwersalne struktury, obiekty, które same zawierają obsługę niskopoziomowych API i dbają o to, żebyś nie musiał babrać się w szczegółach, tylko możliwie szybko stworzył swój świat.

 

Mimo tego, że framworki, gotowe enginy i inne narzędzia ułatwiają pracę nad grafiką, nie jest to zabawa dla początkujących. Po prostu programowanie grafiki 3d (nawet w oparciu o Orge) to jest wyższa szkoła jazdy w programowaniu i grafice w ogóle.

 

Jeśli nie masz nawet jasności co do tego, czy obiekt w grze jest modelem czy renderem z Maxa, może powinieneś sięgnąć - jak Masater uparcie i bez skrupułów sugeruje - po jakieś podstawy. Nie chodzi o c++ ani nawet OpenGL, ale o grafikę przestrzenną w ogóle.

 

Do rzeczonego Orge jest na przykład kilka książek. Są również pozycje dla początkujących w programowaniu gier.

 

Jeśli piszesz w Pythonie a chciałbyś szybko łyknąć początki używania jakiegoś enginu, zobacz VPython, albo całą masę innych narzędzi na:

http://wiki.python.org/moin/PythonGames

 

Dzięki temu może szybciej ugryziesz zależności między enginem, OpenGL'em, contentem i swoimi chęciami.

 

powodzienia,

skk.

Odnośnik do komentarza
Udostępnij na innych stronach




×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności