Jestem pewien, że jest już wiele takich pytań, ale ciągłe aktualizowanie biblioteki OpenGL wyrzuca je wszystkie, a za miesiąc lub dwa odpowiedzi tutaj znów będą bezwartościowe.
Jestem gotowy do programowania w OpenGL przy użyciu C ++. Mam działający kompilator (DevCpp; NIE proście mnie o przejście na VC ++ i nie pytajcie dlaczego). Teraz szukam tylko solidnego samouczka na temat programowania w OpenGL. Mój asystent znalazł samouczek dostarczony przez NeHe Productions, ale jak się dowiedziałem, jest to DROGA POZA DATĄ! (chociaż zrobiłem razem podstawowe okno do obsługi płótna OpenGL)
Potem wszedłem do sieci i znalazłem OpenGL SuperBible, który najwyraźniej używa freeglut? Chciałbym jednak wiedzieć, czy 5. edycja SuperBible jest już aktualna. Sugestia dla Freeglut, którą znalazłem, powiedziała, że najnowsza wersja to 2.6.0, ale teraz to 2.8.0!
- Czy OpenGL SuperBible to wciąż dobre i dość aktualne miejsce na start?
- Czy jest lepsze miejsce do nauki OpenGL?
- Czy wolno mi po prostu przechowywać freeglut w katalogu zawierającym DevCpp (może w GL), czy jest jakaś ważna procedura?
- Czy są jakieś uwagi lub sugestie, o które nie pomyślałem, bo dopiero zaczynam?
@dreta wyjaśnił mi kilka rzeczy, więc teraz mam lepszy pomysł na pytanie:
Myślę, że chciałbym zacząć od OpenGL przy użyciu biblioteki opakowań zamiast bezpośredniego dostępu do OpenGL.
Po prostu myślę, że dla początkującego łatwiej byłoby mi programować i uzyskiwać dobre wyniki, podczas gdy nie muszę jeszcze rozumieć wszystkich brudnych szczegółów (jak wspomniano @stephelton).
Problem polega na tym, że nie mogę znaleźć żadnej biblioteki, która nie ma niezdefiniowanych odwołań do nieobsługiwanych już funkcji. Freeglut wydaje się działać, ale nadal korzysta z GLU.
Czy ktoś wie, co mogę zrobić?
Próbowałem też skompilować pierwsze źródło SuperBible, ale dostałem błędy, ponieważ GLAPI nie jest zdefiniowane jako typ, błąd pochodzący z biblioteki GLU.
Chciałbym użyć SuperBible, ale nie wiem, jak to naprawić.
Odpowiedzi:
Nasza rezydent Nicol Bolas prowadzi książkę online o nowoczesnym programowaniu graficznym . Korzysta z nowoczesnego OpenGL, wszystko jest wprowadzane w łatwym do konsumpcji tempie, jest to dobre miejsce do rozpoczęcia. Używałem go do nauki nowoczesnego OpenGL i robiłem z niego cuda w ciągu ostatnich 2 miesięcy.
Poza tym tu i tam są fragmenty wiedzy. Wiki OpenGL jest dość dobrze utrzymane. Kod nie jest „najlepszymi praktykami” i czasami występuje dwuznaczność, jeśli chodzi o wersję OpenGL, ale poza tymi rzadkimi okazjami, jest to świetny zasób.
Jeśli chcesz dowiedzieć się więcej o GLSL, zapoznaj się z samouczkiem Core GLSL od lighthouse3D. Chociaż jest to jedyna podstawowa wiedza, której mógłbym „zaufać” na stronie, reszta bywa przestarzała.
Gdy zaczniesz rozumieć, jak powstaje nowoczesny OpenGL, z łatwością znajdziesz konkretne informacje, odfiltrujesz nieaktualny kod i, co najważniejsze, przeczytasz specyfikację. Musisz gdzieś zacząć.
Większość, jeśli nie wszystkie dostępne książki OpenGL są przestarzałe. Nowy SuperBible jest jakimś dziwakiem i nie poleciłbym go nikomu. Przewodnik po programowaniu OpenGL dla OpenGL 4.1 wychodzi 16 września, niestety siódma edycja używa przestarzałego kodu, więc na pewno musisz poczekać.
Oczywiście zawsze możesz tutaj zadawać pytania.
źródło
Minęło trochę czasu, odkąd zadano to pytanie, ale mam nadzieję, że pomoże to osobom, które mają takie samo pytanie jak ty.
Zacząłem od OpenGL, czytając minibooka
arcsynthesis.org
. Nie jestem pewien, kto to napisał. Wygląda na to, że rejestracja witryny wygasła lub coś takiego, ale powinieneś ją znaleźć tutaj: http://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/ . Korzysta z OpenGL 3.3, więc będziesz korzystać z nowoczesnego potoku i wszystkich związanych z tym praktyk, ale nie będziesz narażony na teselację ani shadery obliczeniowe.Kolejna strona, na którą warto spojrzeć, to https://open.gl/ . Wydaje się, że jest BARDZO skoncentrowany na początkującym i nie obejmuje rzeczy tak dokładnie jak powyższy materiał, ale może być dobrym punktem wyjścia dla osób, które dopiero zaczynają.
Pamiętaj, aby przeczytać wiki OpenGL i wyszukać nazwy funkcji w Google, jeśli potrzebujesz pomocy. Niektóre strony na wiki są całkowicie bezużyteczne, ale inne są bardzo pomocne, zarówno jako odniesienie, jak i materiał do nauki.
źródło
Te stare samouczki są nadal bardzo przydatne dla początkujących. W rzeczywistości sugerowałbym zacząć od tego, a nie od najnowszych wersji OpenGL. W nowszych wersjach odrzucono niektóre łatwiejsze metody rysowania geometrii (a mianowicie rysowanie w trybie natychmiastowym).
W najnowszych wersjach musisz przygotować i wysłać tablice wierzchołków i powiedzieć karcie graficznej, jak twoje wierzchołki są ułożone w podanej macierzy. Te rzeczy są uciążliwe do debugowania.
Niektóre wersje (a mianowicie OpenGL ES 2.x) wymagają podania własnych równań oświetlenia (w postaci Shaderów fragmentów) i transformacji własnych danych wierzchołków, aby znalazły się na ekranie w żądanym miejscu (Shadery wierzchołków). Jest to jeszcze trudniejsze do debugowania i nie ma dla początkującego (moim zdaniem) miejsca.
Sugerowałbym więc, abyś wrócił do tych samouczków NeHe (itp.) I zaczął od tego. Mogą być „nieaktualne”, ale nadal działają. Kiedy zaczniesz rozumieć, co naprawdę dzieje się w potoku renderowania w OpenGL i zapoznasz się z niektórymi matematycznymi pojęciami, które sprawiają, że te rzeczy działają, będziesz gotowy spojrzeć na niektóre z bardziej aktualnych metod renderowanie w OpenGL.
źródło
Jak powiedzieli inni, większość książek jest albo przestarzała, albo zbyt zaawansowana. Niemniej jednak poleciłbym 5. edycję SuperBible, ale tylko po to, aby uzyskać szybki przegląd tego, co można zrobić w OpenGL i zapoznać się z takimi rzeczami, jak widok / projekcja itp.
Natychmiastowe zanurzenie się we współczesnym OpenGL może początkowo być przytłoczone, więc zastanów się, jak nauczyć się podstawowych rzeczy w przestarzałych wersjach.
Chciałbym również dodać stronę z dobrymi samouczkami, które ostatnio znalazłem http://ogldev.atspace.co.uk/
źródło
arcsynthesis.org (strona wymieniona w zaakceptowanej odpowiedzi) wydaje się niestety nie działać. (EDYCJA: jest dostępna pod tym linkiem !).
Samouczki Antona Gerdelana dotyczące OpenGL 4 są bardzo czytelne i aktualne od połowy 2014 roku. Pierwsze kilka jest bezpłatne, reszta jest dostępna na Amazon, gdzie mają świetne recenzje, za niewielką cenę. Do tej pory byłem zadowolony.
Więcej darmowych samouczków dotyczących OpenGL 3.3+ można znaleźć na stronie http://www.opengl-tutorial.org/ . Pochodzą z 2012 roku, ale mogą być dobrym materiałem uzupełniającym dla innych źródeł.
źródło