OpenGL проти OGRE: Що найкраще для початківців? [зачинено]


10

Мені цікаво вступити в розробку ігор та володіти хорошими навичками програмування на C / C ++. Я раніше пробував OGRE, і мені цікаво, чи варто мені вчитися або OGRE, або OpenGL, як вихідну точку.

З мого розуміння, OGRE - це обгортка для OpenGL та DirectX. Отже, якщо я вважаю, що я вивчаю OGRE, чи потрібно мені ще навчитися OpenGL, щоб розробити гру?

Також може хтось вказує мені гарний підручник для OpenGL? Я виявив, що OGRE добре задокументований (він навіть постачається з дистрибутивом!), Але для OpenGL більшість навчальних посібників, які я прийшов, застаріли.


Якщо ви зовсім новачка в програмі 3D-графіки, я б спробував відчути те, як спочатку працюють API-інтерфейси низького рівня (OpenGL або D3D, це не має значення), а потім перейти на готовий графічний двигун, такий як OGRE, так що ви можете сконцентруватися на своєму додатку / грі, а не на дизайні / розробці двигуна.
drxzcl

1
Я б пішов на 2D спочатку, а не на 3D.
Качка комуніста

1
Більшість 2D - це не просто "3D без Y" і має власні ідіоми та методики переходу, я не дуже впевнений, що використання бічного треку в 2D було б добре для когось із "хорошим c / c ++".
Патрік Хьюз

Чому це питання не конструктивне?
Songbreaker

Відповіді:


13

Ogre - це справді обгортка для OpenGL, проте ідея такої обгортки полягає в тому, що вам не доведеться піклуватися про тонкощі OpenGL. Звичайно, це допоможе трохи дізнатися про OpenGL, але Ogre приховає багато негарних деталей для вас.

Я б сказав, що Ogre, можливо, простіше вчитися на відміну від OpenGL, або, принаймні, це швидше отримає цікаві результати. Звичайно, це повністю залежить від того, що ви хочете зробити для ослів, якщо варто вивчити OpenGL.

Щодо навчальних посібників OpenGL, так, більшість з них досить застарілі, проте специфікація не рухається вперед дуже швидко, тому багато хто з старих підручників досі застосовуються до більшості OpenGL.

Кілька моїх улюблених:


28
БУДЬ ЛАСКА, БУДЬ ласка, перестаньте надсилати людей до NeHe. Підручники хороші, але неймовірно застарілі. Дні OpenGL 1.x давно минули, давайте спробуємо не покалічити наступне покоління графічних програмістів прямо за воротами!
drxzcl

5
Дивіться "Вступ до сучасного OpenGL": duriansoftware.com/joe/…
drxzcl

1
@Ranieri Я абсолютно, дуже сильно згоден. Сайт залишався тим самим роками і роками, і тепер, коли OpenGL змінився досить кардинально протягом останніх кількох років, його справді потрібно відмовити. @Songbreaker, будь ласка, зверніть увагу на це і подумайте про те, щоб уникнути підручників NeHe або хоча б приймати їх із зерном солі. Фіксованого трубопроводу давно немає.
Ricket

1
@ Ranieri, @ Ricket Я абсолютно не дуже згоден. Розглянемо криву навчання OpenGL 4.x для початківця, який зовсім не знайомий з графічним програмуванням і підбирає SDK на свій бік у вільний час, без інструкцій. Як працює документація на OpenGL 4.x? Дивіться мій пост для отримання більш детальної інформації.
Ендрю Расмуссен

4
@Songbreaker: Я намагаюся. Я залишу це вам вирішити, хороші вони чи ні.
Нікол Болас

17

OpenGL! Так, я відкрито не погоджуюся з усіма членами цієї ради.

ОГРЕ - безлад. Крива навчання крута. Так, у них є кілька приємних навчальних посібників, але вийти за межі навчальних посібників і зробити свою справу - ДУЖЕ складно. Я б очікував витратити три тижні, перш ніж ви зможете налаштувати OGRE та працювати, пропрацювати підручники та зрозуміти, що робити далі. Про OGRE немає нічого, що набагато краще чи простіше, ніж OpenGL. Якщо ви хороший програміст на C, як ви заявляли, і ви розумієте свої покажчики / масиви / функції, OpenGL буде так само легко, якщо не простіше.

Ось чому я настійно рекомендую починати з OpenGL. OpenGL змусить вас вивчити всі основи графіки. Це набагато цікавіше, оскільки ви насправді зрозумієте, що вони, напевно, відбуваються на задньому плані. І ТАК розпочати з навчальних посібників NeHe. Так, вони 1.x, що дуже застаріло (це для вас, Раньєрі), але стрибки в OpenGL 4.x - занадто крута крива навчання.

Почніть з безпосереднього режиму в 1.x (glBegin, glEnd), потім дізнайтеся про вершинні масиви. Якщо ви хочете, пограйте зі списками відображення, щоб просто навчитися. Потім рухайтеся до вершинних буферних об'єктів. Потім дізнайтеся про шейдери. Кожен з цих переходів дуже простий, і в Інтернеті є багато чудових навчальних посібників. VBO є в основі 4.1, тому до того моменту, коли ви це зробите, ви вже не вивчаєте застарілий матеріал, і дістатися до нього набагато простіше, починаючи з матеріалів 1.x.

Крім того, якщо ви коли-небудь хочете кар'єри в розробці ігор, ніхто не збирається наймати вас, тому що ви можете зробити кубик в куточку в полиці. Вони збираються найняти вас, тому що ви розумієте, що відбувається на найнижчому можливому рівні, і ви можете приймати дизайнерські рішення на основі цих цінних знань.

Список літератури: Я був там, де ви були. Я провів місяць на OGRE, тиждень пробував Irrlicht, тиждень пробував Horde3d, два дні грав у DirectX і місяць грав у OpenGL. Через місяць з OGRE я ледве вийшов за рамки навчальних посібників. Через місяць з OpenGL у мене з'явився персонаж, який бігав навколо світу мікрафтійців, видаючи 260 000 текстурованих кубів на кадр з 700+ кадрів.


Я не згоден з вашими твердженнями, а також не думаю, що досвід, який ви піддаєте, не має жодного значення. І Ogre, і OGL вимагають, щоб ви мали базові знання, як спілкуватися з графічною карткою, що не означає, що ви повинні знати OGL або DX, але в основному ви повинні знати, що вони можуть зробити. На цьому етапі Ogre додає шари, на які початківцю потрібні місяці, щоб правильно встановити налаштування, і ви не можете побачити приклад, який ви налаштували протягом місяця. Завжди добре знати OGL, але звільняти Ogre через свій досвід нічого не означає.
Клаїм

1
Ні, OGRE насправді не вимагає, щоб ви знали, як спілкуватися з графічною картою - у цьому справа. Крім того, OGRE - це не просто обгортка навколо графічного API, це також менеджер сцени, завантажувач моделей тощо
Jarrett

5

Коротка відповідь? ОГРЕ.

Тривала відповідь? OGRE - це обгортка над OpenGL, тому вам доведеться зробити набагато менше роботи. Вам не потрібно так сильно хвилюватися щодо надсилання даних у графічний процесор чи прив'язки шейдерів чи сортування вершин на низькому рівні. Набагато швидше використовувати OGRE, ніж використовувати OpenGL для виробництва, і, швидше за все, ваш код також буде (дуже незначно) швидшим.

Якщо вас цікавить розробка двигунів, використовуйте GL. Інше, використовуй OGRE. І я, мабуть, почав би з OGRE все одно.


3

Знання апаратних засобів комп'ютерної графіки не потрібно для розробки ігор. Це потрібно, щоб стати графічним програмістом або частиною команди render dev в ігровій компанії (Особиста примітка: що найкраще задоволення в цілій розробці гри :)).

Якщо ви не хочете стати інженером візуалізації, вам, можливо, не потрібно вивчати цілі openGL або DX, щоб розвивати ігри.


2

Я б заперечував, що жоден варіант не є найкращим для початківця, але тоді "кращий" - це відносний термін, який залежить від того, що саме ви прагнете отримати. Наприклад, якщо ви хочете вивчити тривимірне графічне програмування, щоб здобути навички, які ви могли б використати для роботи в якості 3D-графічного програміста для ігрової компанії, то цей вибір має сенс. З цією метою ви також можете поглянути на DirectX.

Якщо ви маєте на увазі будь-яку іншу мету, я рекомендую переглянути інші варіанти. Для початку, хоча з вашого питання можна було б припустити, що ви хочете брати участь у розробці ігор як програміст, ви насправді цього не вказали. Як написання графічного двигуна в OpenGL, так і побудова на вершині Ogre, безумовно, потрібні програмістам.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.