Конвеєр візуалізації OpenGL – РОЗРОБКА ІГОР ДЛЯ ОС ANDROID

OpenGL ES відстежує ці три матриці Кожен раз, коли ми встановлюємо одну з них, вона зберігається в памяті до тих пір, поки ми знову її не змінимо Говорячи мовою OpenGL ES, це називається станом OpenGL не просто відстежує стан матриці, а також стежить за тим, чи хочемо ми призвести альфа-змішування, враховувати освітлення, за тим, яка текстура повинна бути застосована до нашої геометрії і т д Фактично OpenGL ES являє собою одну велику машину станів Ми встановлюємо поточний стан, додаємо геометрію обєктів і наказуємо OpenGL ES візуалізувати зображення Розглянемо, як трикутник проходить через механізм візуалізації На рис 74 показаний досить спрощений вид конвеєра OpenGL ES:

Рис 74 Шлях трикутника

Шлях трикутника через конвеєр виглядає наступним чином

1 Спочатку наш трикутник трансформується матрицею моделі подання Це означає, всі його точки множаться на цю матрицю Дане множення фактично пересуне точки трикутника в необхідне місце

2 Підсумок даної операції множиться на матрицю проекції, яка трансформує 3D-точки в двомірну площину проекції

3 Між попередніми двома кроками або одночасно з ними поточні встановлені параметри освітлення і матеріалів також застосовуються до трикутника, надаючи йому колір

4 Коли все вищеперелічене виконано, проектований трикутник відсікається нашої сітківкою і перетвориться в координати фреймбуфер

5 І нарешті OpenGL заповнює трикутник пікселями на основі квітів з освітлюваної сцени, текстур, які потрібно застосувати до трикутника та стану змішування, в якому кожен піксель трикутника може або не може бути зєднаний з пикселом з фреймбуфер

Нам необхідно вивчити, як використовувати геометрію і текстури OpenGL ES і встановлювати стану, використані на кожному з попередніх етапів Перед тим як ми навчимося цьому, нам необхідно дізнатися, як Android надає доступ до OpenGL ES

ПРИМІТКА

Незважаючи на те що наведене узагальнений опис конвеєра OpenGL ES в цілому вірно, воно вкрай спрощено і не враховує деякі деталі, які будуть важливі Необхідно запамятати, що коли OpenGL ES створює проекцію, в двомірну координатну систему нічого не проектується Замість цього виконується проекція в так звану однорідну систему координат, яка фактично має чотири виміри Щоб це зрозуміти, необхідно добре розбиратися в математиці Тому заради спрощення ми просто припустимо, що OpenGL ES проектує обєкти на двомірні координати

ПЕРЕД СТАРТОМ

Ми будемо використовувати той же самий стартовий клас, який покаже нам список тестових Activity, які ми можемо запустити Єдине, що зміниться, – назви Activity, які ми інстанціруем в зворотному вигляді, і пакет, де вони будуть розташовуватися

Там містяться класи нашого фреймворка, і ми, звичайно, захочемо знову ними скористатися Нарешті, ми напишемо кілька нових класів фреймворка і допоміжних класів, які розміщуватимуться в com badl ogi с androi dgames framework

Нам також знову знадобиться файл маніфесту Оскільки всі приклади будуть представляти собою Activity, ми повинні будемо переконатися в тому, що вони оголошені в маніфесті У всіх прикладах використовується фіксована орієнтація (книжкова або альбомна, залежно від прикладу) Android отримує інформацію про те, що ці приклади можуть обробляти події типу keyboard, keyboardHidden HorientationChange

Отже, давайте почнемо

Джерело: Mario Zechner / Маріо Цехнер, «Програмування ігор під Android», пров Єгор Сидорович, Євген зазноби, Видавництво «Пітер»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*