Czy istnieje dobry samouczek, który pokazuje różnicę między OpenGL 1. * a 2. *?
Byłoby to bardzo pomocne, aby wiedzieć, jakie funkcje I powinna nie być wywołaniem (jak glBegin (), zakładam).
Czy istnieje dobry samouczek, który pokazuje różnicę między OpenGL 1. * a 2. *?
Byłoby to bardzo pomocne, aby wiedzieć, jakie funkcje I powinna nie być wywołaniem (jak glBegin (), zakładam).
Odpowiedzi:
Strona początkowa OpenGL.org zawiera przegląd z mnóstwem linków do różnych samouczków.
Krótko mówiąc, OpenGL 2.0 żyje między światem o stałej funkcji (1.x) a światem w pełni programowalnym (2.x +); nadal możesz używać wszystkiego, co ma OpenGL 1.x, dodając shadery. Idąc dalej (3.x +), wszelkiego rodzaju stare systemy o stałej funkcji zaczynają się jednak wycofywać, więc może być lepszy początek niż mieszanie obu światów.
Dziwi mnie też to, że wcześniej o to nie pytano ... a przynajmniej nie mogłem go znaleźć podczas szybkiego wyszukiwania.
Ogólnie rzecz biorąc, wersje OpenGL nie są podobne do wersji Direct3D. Twój stary kod nadal działa z nowymi wersjami (z jednym wyjątkiem). Dlatego OpenGL v1.4 będzie działał dobrze w OpenGL 2.1. Wersje OpenGL to dodatki, a nie odejmowania.
OpenGL 2.0 i 2.1 dodają shadery w języku OpenGL Shading. Dodają także kilka innych funkcji, takich jak tekstury zmiennoprzecinkowe, tekstury bez potęgi dwóch i tak dalej. Pełna lista jest dostępna w samej specyfikacji OpenGL 2.1 . Wystarczy spojrzeć na sekcje „Wersja”; powiedzą ci, co zmieniło się od poprzedniej wersji.
Jedynym wyjątkiem od reguły dotyczącej zmian interfejsu API jest OpenGL 3.1 (tak, 3.1, a nie 3.0). W OpenGL 3.0 wiele interfejsów API oznaczono jako „przestarzałe”. Oznacza to, że ARB, komitet odpowiedzialny za OpenGL, może usunąć te funkcje z późniejszych wersji. To usunięcie miało miejsce w OpenGL 3.1. Specyfikacja 3.0 zawiera dużą listę przestarzałych elementów, a specyfikacja 3.1 jest odpowiednio zmniejszona.
Pamiętaj, że nie musisz się tym przejmować (przynajmniej w systemie Windows i Linux. MacOSX jest inny). Możesz działać dobrze w trybie „ zgodności ”, w którym wracają wszystkie wcześniej usunięte funkcje. Implementacje OpenGL nie muszą obsługiwać kontekstów kompatybilności (a Mac OS X Lion nie. Obsługuje rdzeń 2.1 lub 3.2, na twoje życzenie), ale wszystkie nadal tak robią. Tylko dla kompatybilności wstecznej ze starszymi aplikacjami.
Uważam, że istnieją samouczki dla Opengl 1.x i 2.x, ale najprawdopodobniej nie będzie samouczków pokazujących, jak różnią się one funkcjami lub łatwością użycia itp.
Najlepiej jest wyszukać samouczki dla konkretnej wersji Opengl, znaleźć podobne samouczki i porównać je sam.