OpenGL vs OGRE: Który z nich jest najlepszy dla początkujących? [Zamknięte]


10

Interesuję się tworzeniem gier i mam dobre umiejętności programowania w C / C ++. Próbowałem OGRE wcześniej i jestem ciekawy, czy powinienem nauczyć się OGRE lub OpenGL jako punktu wyjścia.

Z mojego zrozumienia OGRE to opakowanie dla OpenGL i DirectX. Więc, zakładając, że uczę się OGRE, czy nadal muszę się nauczyć OpenGL, aby stworzyć grę?

Czy ktoś może wskazać mi dobry samouczek dotyczący OpenGL? Przekonałem się, że OGRE jest dobrze udokumentowany (nawet pochodzi z dystrybucją!), Ale w przypadku OpenGL większość samouczków, które znalazłem, są przestarzałe.


Jeśli jesteś zupełnie nowy w programowaniu grafiki 3D, spróbuję poczuć, jak najpierw działają interfejsy API niskiego poziomu (OpenGL lub D3D, to naprawdę nie ma znaczenia), a następnie przejść do gotowego silnika graficznego, takiego jak jako OGRE, abyś mógł skoncentrować się na swojej aplikacji / grze zamiast na renderowaniu projektu / rozwoju silnika.
drxzcl 22.04.11

1
Najpierw wybrałbym 2D, a nie 3D.
Kaczka komunistyczna

1
Większość 2D nie jest po prostu „3D bez Y” i ma swoje własne idiomy i techniki przechodzenia, nie jestem pewien, czy przyjęcie bocznej ścieżki do 2D byłoby dobre dla kogoś z „dobrym c / c ++”.
Patrick Hughes,

Dlaczego to pytanie nie jest konstruktywne?
Songbreaker

Odpowiedzi:


13

Ogre to rzeczywiście opakowanie dla OpenGL, jednak pomysł takiego opakowania jest taki, że nie musisz się martwić o zawiłości OpenGL. Oczywiście pomoże ci to trochę dowiedzieć się o OpenGL, ale Ogre ukryje dla ciebie wiele brzydkich szczegółów.

Powiedziałbym, że Ogre jest łatwiejszy do nauczenia niż OpenGL, a przynajmniej przyniesie ci ciekawe wyniki szybciej. Oczywiście zależy to całkowicie od tego, co chcesz zrobić, aby ocenić, czy warto nauczyć się OpenGL.

Jeśli chodzi o samouczki OpenGL, tak, większość z nich jest dość przestarzała, jednak specyfikacja nie postępuje naprawdę szybko, więc wiele starych samouczków nadal dotyczy większości OpenGL.

Kilka moich ulubionych:


28
PROSZĘ PROSZĘ PROSZĘ przestać wysyłać ludzi do NeHe. Samouczki są dobre, ale niezwykle przestarzałe. Czasy OpenGL 1.x już dawno minęły, spróbujmy nie kaleczyć następnej generacji programistów graficznych od razu!
drxzcl 22.04.11

5
Zobacz „Wprowadzenie do współczesnego OpenGL”: duriansoftware.com/joe/…
drxzcl

1
@Ranieri Absolutnie, bardzo mocno się zgadzam. Witryna pozostaje niezmienna przez wiele lat, a teraz, gdy OpenGL zmieniło się dość drastycznie w ciągu ostatnich kilku lat, naprawdę należy go zniechęcić. @Songbreaker proszę zanotować to i rozważyć uniknięcie samouczków NeHe lub przynajmniej zabranie ich z odrobiną soli. Stały rurociąg już dawno minął.
Ricket

1
@ Ranieri, @ Ricket Absolutnie, bardzo mocno się nie zgadzam. Zastanów się nad krzywą uczenia się dla OpenGL 4.x dla początkującego, który zupełnie nie zna programowania graficznego i podnosi pakiet SDK na bok w wolnym czasie, bez instrukcji. Jaka jest dokumentacja dla OpenGL 4.x? Zobacz mój post, aby uzyskać więcej informacji.
Andrew Rasmussen

4
@Songbreaker: Staram się. Od ciebie zależy, czy będą dobre, czy nie.
Nicol Bolas,

17

OpenGL! Tak, jak dotąd otwarcie się nie zgadzam ze wszystkimi na tej planszy.

OGRE to bałagan. Krzywa uczenia się jest stroma. Tak, mają kilka fajnych samouczków, ale wykraczanie poza te samouczki i robienie własnych rzeczy jest BARDZO trudne. Spodziewam się, że spędzę trzy tygodnie, zanim będzie można skonfigurować OGRE i rozpocząć pracę, przejrzeć samouczki i dowiedzieć się, co dalej. W OGRE nie ma nic, co byłoby O wiele lepsze lub prostsze niż OpenGL. Jeśli jesteś dobrym programistą C, jak twierdziłeś, i rozumiesz swoje wskaźniki / tablice / funkcje, OpenGL będzie równie łatwe, jeśli nie łatwiejsze.

Dlatego zdecydowanie polecam zacząć od OpenGL. OpenGL zmusi cię do opanowania wszystkich podstaw grafiki. Jest o wiele bardziej interesujący, ponieważ w rzeczywistości zdasz sobie sprawę, co się dzieje w tle. I TAK zaczynają się od samouczków NeHe. Tak, są one 1.x, co jest bardzo nieaktualne (to dla ciebie, Ranieri), ale przejście do OpenGL 4.x jest zbyt stromą krzywą uczenia się.

Zacznij od trybu natychmiastowego w 1.x (glBegin, glEnd), a następnie dowiedz się o tablicach wierzchołków. Jeśli chcesz, graj z listami wyświetlania, aby się uczyć. Następnie przejdź do obiektów bufora wierzchołków. Następnie dowiedz się o shaderach. Każda z tych przejść jest bardzo łatwa, a online jest mnóstwo świetnych samouczków. VBO są w jądrze 4.1, więc zanim się tam dostaniesz, nie uczysz się już przestarzałych materiałów i łatwiej jest się tam dostać, zaczynając od wersji 1.x.

Ponadto, jeśli kiedykolwiek chcesz karierę w tworzeniu gier, nikt cię nie zatrudni, ponieważ możesz sprawić, że sześcian zakręci się w bibliotece z półki. Zatrudnią cię, ponieważ rozumiesz, co dzieje się na najniższym możliwym poziomie i możesz podejmować decyzje projektowe na podstawie tej cennej wiedzy.

Referencje: Byłem tam, gdzie byłeś. Spędziłem miesiąc na OGRE, tydzień wypróbowując Irrlichta, tydzień wypróbowując Horde3d, dwa dni grając z DirectX i miesiąc grając z OpenGL. Po miesiącu spędzonym z OGRE ledwie mogłem wyjść poza zakres samouczków. Po miesiącu z OpenGL miałem postać biegającą po świecie minecraftów, renderując 260 000 teksturowanych kostek na klatkę z ponad 700 klatkami na sekundę.


Nie zgadzam się z twoimi stwierdzeniami, a także nie sądzę, aby doświadczenie, które eksponujesz, miało jakiekolwiek znaczenie. Zarówno Ogre, jak i OGL wymagają podstawowej wiedzy o tym, jak rozmawiać z kartą graficzną, co nie oznacza, że ​​musisz znać OGL lub DX, ale w zasadzie musisz wiedzieć, co potrafią. W tym momencie Ogre dodaje warstwy, których ustawienie przez początkującego zajmie miesiące, a których nie widać na przykładzie skonfigurowanym za miesiąc. Zawsze dobrze jest znać OGL, ale zwolnienie Ogra z powodu twojego doświadczenia nic nie znaczy.
Klaim

1
Nie, OGRE tak naprawdę nie wymaga od ciebie umiejętności rozmowy z kartą graficzną - o to właśnie chodzi. Ponadto OGRE to nie tylko opakowanie wokół graficznego interfejsu API, to także menedżer scen, moduł ładujący model itp.
Jarrett,

5

Krótka odpowiedź? OGR.

Długa odpowiedź? OGRE to opakowanie na OpenGL, dlatego musisz wykonać znacznie mniej pracy. Nie musisz się tak bardzo przejmować wysyłaniem danych do GPU, wiązaniem shaderów lub sortowaniem wierzchołków na niskim poziomie. Używanie OGRE jest znacznie szybsze niż OpenGL do produkcji, i istnieje prawdopodobieństwo, że twój kod będzie (bardzo nieznacznie) szybszy.

Jeśli jesteś zainteresowany rozwojem silnika, użyj GL. W przeciwnym razie użyj OGRE. I tak i tak prawdopodobnie zacznę od OGRE.


3

Znajomość sprzętu komputerowego nie jest wymagana do tworzenia gier. Jest potrzebny, aby zostać programistą grafiki lub częścią zespołu renderującego w firmie produkującej gry (uwaga osobista: najlepsza zabawa podczas tworzenia całej gry :)).

Jeśli nie chcesz zostać inżynierem renderowania, prawdopodobnie nie musisz uczyć się całego openGL lub DX, aby tworzyć gry.


2

Twierdziłbym, że żaden nie jest najlepszy dla początkującego, ale wtedy „najlepszy” to termin względny, który zależy od tego, co dokładnie chcesz zyskać. Na przykład, jeśli chcesz nauczyć się programowania grafiki 3D w celu zdobycia umiejętności, które możesz wykorzystać, aby znaleźć pracę jako programista grafiki 3D w firmie produkującej gry, wtedy te wybory mają sens. W tym celu możesz także spojrzeć na DirectX.

Jeśli jednak masz na myśli jakikolwiek inny cel, polecam przyjrzeć się innym opcjom. Na początek, choć z twojego pytania można założyć, że chcesz być zaangażowany w tworzenie gier jako programista, tak naprawdę nie podałeś tego. Zarówno pisanie silnika graficznego w OpenGL, jak i budowanie na Ogre są zdecydowanie dla hardkorowych programistów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.