У такі часи я завжди беру участь у опитуванні обладнання Steam: http://store.steampowered.com/hwsurvey/ - ви побачите, що проникнення на ринок систем класів DX10 / 11 становить майже 80%; це в цілому еквівалентно GL3.3 або вище. Ці 80% обмежені для користувачів Vista / 7 - додайте в графічний процесор DX10 / 11 з XP, і ви підніметесь до трохи більше 90%.
Маючи на увазі, що ми говоримо про дещо більш жорстких геймерів, то потрібно почати думати про свою цільову аудиторію. Це люди, яких ви хочете націлити? Ви націлені на тих, у кого замість цього обладнання більше? Що з графікою Intel? Що з користувачами Mac та Linux? Це все питання, на які потрібно відповісти самостійно, тому загальні загальні рекомендації - це найкраще, що ви збираєтеся отримати.
Додавши до цього, вам потрібно врахувати той факт, що якщо ви починаєте сьогодні вчитися з наміром щось перевезти, перед тим, як доїхати, ви переглядаєте мінімум один рік, перш ніж потрапити туди про справді тривіальні / прості випадки). З продовженням зростання можливостей gfx триває, ми до цього часу реально близькі до 100% поглинання обладнання GL3.3 +.
Тоді враховуйте, що з GL2.1 або нижчою версією ви збираєтеся вчитися і використовуєте дуже багато грубої старої дурниці, навіть якщо ви обмежитеся шейдерами та підмножиною VBOs GL2.1 (версії GLSL з нижчим рівнем використовувати неприємно) , а трансляція VBO є майже непридатною без GL_ARB_map_buffer_range) - GL3.3 + запровадив набагато приємніші (і ефективніші) способи роботи з багатьма речами, ви будете краще використовувати апаратне забезпечення гравця (і вони будуть вам вдячні вам для цього), і ви будете витрачати більше часу на написання продуктивного коду, а не на боротьбу з API, який дійсно не хоче співпрацювати з вами.
І тоді, звичайно, є жахлива ситуація з водієм. Важкий, але правдивий факт полягає в тому, що драйвери GL в Windows знаходяться в жалобному стані - NV підтримують речі, які вони не повинні, AMD не підтримує те, що слід, а з Intel вам дійсно потрібно обмежитися функціоналом GL, для якого існує еквівалент D3D. Чим новіший GL_VERSION, тим більше шансів на те, що ви зіткнетеся з помилками драйверів, але для GL3.3 речі зараз досить стабільні.
Отже, підсумок полягає в тому, що, за відсутності будь-якої іншої інформації (цільова аудиторія тощо), я націлював би GL3.3 як базову лінію (можливо, використовуючи функціональність від вищих GL_VERSION, де вона доступна і де вона не порушує базу коду занадто багато), якщо не було дуже конкретної та остаточно визначеної причини піти на нижчу (і я хотів би бути абсолютно на 100% впевнений у цьому, а не використовувати якесь розпливче поняття « але що робити з тими, хто має старіше обладнання »). В останньому випадку я б не опускався нижче GL2.1, і я би хотів би навіть зараз використовувати якомога більше функцій 3.x.