Próbuję nauczyć się OpenGL. Mam doświadczenie w C i C++, ustawiam środowisko kompilacji i cały ten jazz, ale staram się znaleźć dobry punkt wyjścia.OpenGL Core i zgodność
Jestem świadomy potokowej funkcji, która była widoczna w OpenGL < = 2.1 i wydaje się stosunkowo łatwo zacząć. Jednak główny profil, który OpenGL wypycha w OpenGL> = 3.1, sprawia, że chcę trzymać się z dala od FFP z powodu wycofania. Ale jestem zdezorientowany, jak to wszystko działa w wersji 3.1 i wyżej. W wersji 2.1 i poniżej masz glBegin (GL_WHATEVER) i glEnd() kiedy rysujesz kształty. Pierwszą rzeczą, którą zauważyłem podczas przeglądania interfejsu API podstawowego profilu, jest to, że te dwa wywołania funkcji zniknęły. Zdaję sobie sprawę, że najprawdopodobniej jest to prosty zamiennik, ale jest to dość szokujące, gdy widzę coś tak (na pozór użytecznego) wyjęte z tak podstawowego zadania. Wydaje się prawie, że zdejmowanie printf() ze standardowej biblioteki c. A kiedy pracuję nad najnowszą Czerwoną Księgą, nadal używają starego, przestarzałego kodu, który jeszcze bardziej mąci moje myślenie.
Podczas czytania różnych odpowiedzi na podobne pytania widzę typowy "oparta na shaderze" lub "wszystko jest zrobione z shaderem" itp. Jeśli chcę narysować prosty biały kwadrat na czarnym tle (pierwszy przykład w najnowsza Czerwona Księga), nie rozumiem, w jaki sposób shader ma znaczenie przy rysowaniu pudełka. Czy nie powinni ... cóż ... zacieniować? Szukałem już Orange Book i Blue Book, ale nie chcę już wydawać pieniędzy na coś, co ukryje wszystko za biblioteką (Blue Book) lub czymś, co będzie mówić o programowaniu shadera wykonać pewne zadanie oświetleniowe w środowisku 3D (Pomarańczowa książka).
Więc od czego zacząć? Jak narysować pudełko (lub sześcian lub piramidę lub coś podobnego), używając tylko podstawowego profilu. Nie proszę o fragment kodu tutaj, szukam ekspansywnego samouczka lub książki lub czegoś, na co ktoś mógłby mnie wskazać. Jeśli odpowiedź na to pytanie została poprzedzona i nie znalazłem, proszę przekierować mnie.
Chciałbym poradzić ci, abyś wybrał dobrą "książkę" na temat nowoczesnego OpenGL. Moim pierwszym zaleceniem byłby http://www.arcsynthesis.org/gltut/, który jest dostępny online i za darmo. To powinno ci na początek wystarczyć. – Bart
Możesz użyć programowanego potoku w wersji 2.0. Naprawiono funkcję jest brzydka i nieskuteczna, niezależnie od wersji. –
@CatPlusPlus To jest PIERWSZY czas, o którym słyszałem, że ktokolwiek odsyła do rurociągu o ustalonej funkcji jako nieefektywnego. :) Możesz chcieć ponownie rozważyć to słowo.Crappy - Zgadzam się. – Ani