Autor Wątek: Wybór silnika graficznego oraz fizycznego z wiązanego z symulacją samochodową  (Przeczytany 1560 razy)

Offline plum

  • Użytkownik

# Listopad 24, 2009, 17:25:37
Witam.
Nie chciałbym być posądzony o lenistwo, ale chciałbym się Was zapytać jaką drogę wybrać, aby efektem końcowym była "gra", w której na początek miałby się znaleźć prosty tor wyścigowy, do tego samochód i w miarę prosty model jazdy.

Myślałem nad pisaniem tego od podstaw po swojemu, ale zajęło by mi to zbyt dużo czasu, a przy okazji chciałbym poznać jakiś silnik graficzny.

Na swoim koncie mam projekt związany z poruszaniem się wózka inwalidzkiego. Wtedy całość oparłem na OpenGL.

Teraz chciałbym obliczenia przerzucić na kartę graficzną, bo już wtedy mimo małej ilości i złożoności obiektów 3d był zauważalny spadek animacji. Nie wiem za bardzo jak się za brać za to od strony programowej aby obliczenia przeszły na GPU, więc chciałbym skożystać z czegoś gotowego

Dlatego tu moja prośba o pomoc w doborze potrzebnego tutaj silnika fizycznego/graficznego. Silnik najlepiej prosty w miarę możliwości, z dobrą dokumentacją, tutorialami. Język na jakim chce się oprzeć to C++ , ewentualnie C#, ale znając życie większość będzie na podstawie C++.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

# Listopad 24, 2009, 17:39:26
Na swoim koncie mam projekt związany z poruszaniem się wózka inwalidzkiego. Wtedy całość oparłem na OpenGL.

Teraz chciałbym obliczenia przerzucić na kartę graficzną, bo już wtedy mimo małej ilości i złożoności obiektów 3d był zauważalny spadek animacji. Nie wiem za bardzo jak się za brać za to od strony programowej aby obliczenia przeszły na GPU, więc chciałbym skożystać z czegoś gotowego.
Jak masz sterowniki do karty graficznej to aplikacja OpenGL wykorzystuje GPU.
Jak nie masz sterów do karty graficznej to aplikacja OpenGL wykorzystuje CPU , np Mesa może to robić , ale jest bardzo niski FPS

Pewnie odniosłeś wrażenie że OpenGL wykorzystuje CPU , bo miałeś niski FPS (30-80).
Ale bardzo niski FPS (0.1 - 10) przy małej liczbie vertexów świadczy o braku wspomagania GPU.
Dodane
Jeśli chcesz osiągnąć w OpenGLu wysoką wydajność , i wykorzystanie najnowszej technologii kart graficznych , to pisz w shaderach
Jeśli stawiasz na średnie kompy to używaj np. VBO , i innych (nie będę ci wszystkiego pisał)
Dla kompów z OpenGL 1.1 , jest ich jeszcze sporo , proponuję tablice wierzchołków i listy wyświetlania.
« Ostatnia zmiana: Listopad 24, 2009, 17:44:54 wysłana przez Wladekprogramista »

Offline lucypher

  • Użytkownik
    • Por Design

# Listopad 24, 2009, 17:44:37
Ale bardzo niski FPS (0.1 - 10) przy małej liczbie vertexów świadczy o braku wspomagania GPU.

Jak osiągnąć 0.1 fps?

# Listopad 24, 2009, 17:46:44
Ale bardzo niski FPS (0.1 - 10) przy małej liczbie vertexów świadczy o braku wspomagania GPU.

Jak osiągnąć 0.1 fps?
Ja ci mogę osiągnąć 0.01 fps

Zainstaluj linuxa , który nie ma sterów na twoją kartę grafiki , i wy-renderuj 100 trójkątów.
Dodane
A , i zainstaluj mese ("mesa")

Offline plum

  • Użytkownik

# Listopad 24, 2009, 18:05:45
Właśnie takie odniosłem wrażenie, że nie używana jest karta graficzna. Sterowniki oczywiście były (Windows XP, nVidia)
Mimo wszystko używałem glCallList dzięki czemu jako tako to chodziło, ale nie widzę tego przy większej ilości obiektów i złożoności obiektu. Całość wcześniej modelowałem w Rhinoceros 3d, teraz wymodelował bym to w 3d Maxie biorąc pod uwagę jakość w stosunku do ilości wierzchołków. Jednokrotny turbosmooth na siatce lowpolly myślę, że mógłby być wystarczający, ewentualnie dwukrotny.
Coś więcej o używaniu Shaderów ?

Jednak chyba ciągle bardziej bym się skłaniał do użycia jakiegoś silnika graficznego. Ewentualnie można połączyć samego opengl, w którym sam napisał, bym sobie podstawowe oświetlenia i jako taki render dla grafiki (właśnie używając może shaderów jak coś więcej o tym się dowiem), o ile to spowoduje znaczny wzrost wydajności.

Wcześniej wymodelowany plik w rhino przesyłałem do kodu c++ z użyciem glCalllList i od razu materiałami powierzchni przy użyciu programu Deep Explorer.

Offline Avaj

  • Użytkownik

# Listopad 25, 2009, 10:21:57
glCallList się już raczej nie używa, bo różnie jest z tym działaniem. NVidia jakotako to chyba jeszcze przyśpiesza ale ATI ma kompletnie gdzieś bo w OpenGL 3.x ich już nie ma. Zainteresuj się VBO http://www.songho.ca/opengl/gl_vbo.html

Offline plum

  • Użytkownik

# Listopad 25, 2009, 17:55:45
A takie jeszcze pytanie, bo nie chciałbym się z tym zbytnio babrać, w sensie przekopywać stosy dokumentacji lub szukać pomocy gdzie praktycznie nigdzie nie można jej znaleźć, to na czym się oprzeć, żeby najprzyjmniej tego typu projekt gładko przeszedł.

Ogre + PhysX ? Uciążliwe do połączenia i zabrania się od kopa w pisanie kodu ?

Offline Avaj

  • Użytkownik

# Listopad 25, 2009, 18:39:53
Wybieraj jaki chcesz i integruj ;) ja używam Bulleta, Dab używa PhysXa, równie dobrze możesz też użyć PAL (Physics Abstraction Layer) i jednocześnie pisać pod wszystkie naraz :)