Чи є хороший підручник, який показує різницю між OpenGL 1. * і 2. *?
Було б дуже корисно знати, які функції я не повинен викликати (наприклад, glBegin (), я вважаю).
Чи є хороший підручник, який показує різницю між OpenGL 1. * і 2. *?
Було б дуже корисно знати, які функції я не повинен викликати (наприклад, glBegin (), я вважаю).
Відповіді:
На сторінці для початку OpenGL.org є огляд, з великою кількістю посилань на різні підручники.
Коротше кажучи, OpenGL 2.0 живе між фіксованою функцією (1.x) та повністю програмованим (2.x +) світом; ви все ще можете використовувати все, що має OpenGL 1.x, додаючи шейдери. Просуваючись вперед (3.x +), всі види старих систем з фіксованими функціями починають застарівати, тому, можливо, краще мати чистий старт, а не змішувати обидва світи.
Я також здивований, про це раніше не питали .. або, принаймні, я не міг його знайти при швидкому пошуку.
Версії OpenGL, за великим рахунком, не схожі на версії Direct3D. Ваш старий код все ще працює з новими версіями (за одним винятком). Тому OpenGL v1.4 буде функціонувати непогано під OpenGL 2.1. Версії OpenGL - це доповнення, а не віднімання.
OpenGL 2.0 та 2.1 додають шейдери в мові затінення OpenGL. Вони також додають кілька інших функцій, таких як текстури з плаваючою комою, текстури без потужності та інше. Повний список доступний у самій специфікації OpenGL 2.1 . Просто подивіться на розділи "Версія"; вони підкажуть, що змінилося з попередньої версії.
Єдиним винятком із правила про зміни API є OpenGL 3.1 (так, 3.1, а не 3.0). У OpenGL 3.0 ряд API було позначено як "застаріле". Це означає, що ARB, комітет, відповідальний за OpenGL, міг усунути ці функції з пізніших версій. Це видалення відбулося в OpenGL 3.1. Специфікація 3.0 містить великий список застарілих речей, і 3.1 специфікація відповідно підстрижена.
Зауважте, що вам не потрібно дбати (принаймні, про Windows та Linux. MacOSX відрізняється). Ви можете запустити відмінно в режимі " сумісності ", де повертаються всі раніше вилучені функції. Впровадження OpenGL не повинно підтримувати контексти сумісності (а Mac OS X Lion не робить. Він підтримує або 2.1, або 3.2 ядра, на ваш запит), але всі вони все ще роблять. Просто для зворотної сумісності зі старими програмами.
Я вважаю, що існують підручники для opengl 1.x та 2.x, але, швидше за все, не буде навчальних посібників, що показують, наскільки вони відрізняються функціями чи простотою використання тощо.
Можливо, найкраще шукати підручники для конкретної версії opengl, знаходити подібні підручники та порівнювати їх самостійно.