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.
Odpowiedzi:
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:
źródło
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ę.
źródło
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.
źródło
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.
źródło
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.
źródło