- Як слід встановити різні матриці для ортографічної проекції?
Ваша мета - 2D, правда? Тож вам не потрібно ніякої проекції. Проекція - акт конденсації 3D-світу до двовимірної площини. Встановіть шейдер так, щоб він позначав координату Z кожної вершини, 0.0
і вам слід встановити.
Ви можете використовувати матрицю масштабу для координат X та Y. Масштабування його так, -10.0
щоб 10.0
стати -1.0
до 1.0
. Для довідок матриця для цього:
0.1 0.0 0.0
0.0 0.1 0.0
0.0 0.0 1.0
- Чи широко використовуються шейдери у двовимірних програмах, як у 3D-програмах? Якщо так, то яке їх призначення в налаштуваннях 2D?
Вони можуть бути. Вони все ще можуть використовуватися для освітлення Per-Pixel, надаючи об’єктам деяку фальшиву глибину. Вони також можуть бути використані для текстурних ефектів, водних ефектів, створення зображень ... Ви навіть можете використовувати їх для обчислень фізики з невеликою хитрістю.
Ще один спосіб зробити це: все, для чого вони використовуються в 3D. Він просто застосовується по-різному, і не так добре задокументований. Хоча люди, які грають у 2D ігри, ймовірно, не збираються займатись вашою справою, якщо у вас немає життєвих ефектів, тому вони теж не потрібні.
Хоча вам потрібно буде знати основи шейдерів, щоб зробити спрайт все одно.
- Як мені впоратися з величезною кількістю текстур, очевидно необхідних для 2D гри?
Так само, як у 3D. Пучки текстурних об'єктів, PBO і Text Atlas або декілька. Напевно, кілька структур / занять, а також головний біль. Я думаю, це могло б називатися "Управління активами", або щось подібне.
- Як я можу почати роботу з 2D gamedev?
Напевно, є кілька навчальних посібників там. Хоча, оскільки 3D-версія є більш поширеною, я б сказав, щоб вивчити OpenGL для 3D, а потім застосувати те, що ви дізнаєтесь, до цього двовимірного аналога. 3D і 2D дуже схожі, 2D просто не відслідковує координату Z.