Яка різниця між OpenGL 1.x та 2.x?


13

Чи є хороший підручник, який показує різницю між OpenGL 1. * і 2. *?

Було б дуже корисно знати, які функції я не повинен викликати (наприклад, glBegin (), я вважаю).


1
Дозвольте перефразувати ваше запитання. У чому різниця між візуалізацією фіксованої функції та шейдерами?
EnabrenTane

3
Це зовсім інше питання.
Jari Komppa

Відповіді:


11

На сторінці для початку OpenGL.org є огляд, з великою кількістю посилань на різні підручники.

Коротше кажучи, OpenGL 2.0 живе між фіксованою функцією (1.x) та повністю програмованим (2.x +) світом; ви все ще можете використовувати все, що має OpenGL 1.x, додаючи шейдери. Просуваючись вперед (3.x +), всі види старих систем з фіксованими функціями починають застарівати, тому, можливо, краще мати чистий старт, а не змішувати обидва світи.

Я також здивований, про це раніше не питали .. або, принаймні, я не міг його знайти при швидкому пошуку.


Я не можу знайти підручник, що відповідає конкретній версії. (крім 3,0)
t123

На цій сторінці є багато посилань під "Підручники та інструкції", але в основному у вас є вибір між OpenGL 1.x та "будь-чим іншим".
Jari Komppa

@ tm1rbrt: Ви не знайдете конкретних навчальних посібників для 2.1, оскільки всі дійсні підручники 1.x все ще є дійсними 2.1 підручниками. Єдина причина, що існує перерва в 3.x, полягає в тому, що там видалено API. Якщо ви шукаєте підручники на основі шейдерів 2.1 епохи, підручники маяка3d справні. Однак вам слід зазначити, що апаратне забезпечення 3.x існує з 2006 року і навіть зараз вбудоване в материнські плати та навіть процесори. Тож майбутнє не у світі 2.x; майбутні підручники, як правило, зосереджуються на 3.x і вище.
Нікол Болас

3

Версії 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 4. *?
Кромстер

@Krom: Не можна нічого сказати. Так само, як іти від 1.x до 2.x, нічого не було видалено.
Нікол Болас

0

Я вважаю, що існують підручники для opengl 1.x та 2.x, але, швидше за все, не буде навчальних посібників, що показують, наскільки вони відрізняються функціями чи простотою використання тощо.

Можливо, найкраще шукати підручники для конкретної версії opengl, знаходити подібні підручники та порівнювати їх самостійно.


Хто серйозно хто тримає випадково зволікаючи мої коментарі?
LizardGamer

Чому сюжети тут? Не чудова відповідь, але знищення? Не впевнений. Питання Trully хоче чогось не дуже звичного ... Підручник для показу відмінностей, тобто здебільшого не те, що підручники роблять ...
Notabene

@LizardGamer Я бачу, що ви приєдналися до gamedev.SE кілька днів тому, тому я хотів би сказати: "Ласкаво просимо!". Однак ви справді повинні прочитати тут поширені запитання: gamedev.stackexchange.com/faq Ця відповідь є прекрасним прикладом того виду відповіді, якого НЕ хочете дати. Постарайтеся бути більш конкретними та, безумовно, більш конструктивними як із запитаннями, так і з вашими відповідями. Поширені запитання повинні допомогти вам зрозуміти мету цього веб-сайту та тип контенту, який ми шукаємо. Удачі!
Amplify91

@notabene ця відповідь насправді не відповідає на питання. Єдина пропозиція, яку вона дає, - це в основному "пошук відповіді". Очевидно, що ОП вже робить це, задаючи тут питання.
Amplify91

@ Amplify91 Дякую за єдине привітання, яке я отримав, і я вже читав FAQ, я не знаю, як це приклад того, що не потрібно просити? Плюс це відповідає на питання, оскільки я не бачив підручників щодо порівняння версій opengl
LizardGamer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.