OPENGL ES: позики 3D – РОЗРОБКА ІГОР ДЛЯ ОС ANDROID

&nbsp

Для написання ігри Великий стрибун ми використовували двомірний движок отрисовки OpenGL ES Тепер настав час повністю перейти до трьома вимірами Насправді ми вже працювали в тривимірному просторі, коли визначали область видимості і вершини спрайтів В останньому випадку координата по осі 2 кожної вершини просто встановлювалася рівною нулю за замовчуванням Різниця між тривимірної і двомірної отрисовка не така вже й велика Для тривимірного простору вірні такі моменти

Вершини мають координати не тільки по осях х і уг, а й по осі z

Замість ортографической проекції ми будемо використовувати перспективну проекцію Обєкти, що знаходяться далеко від камери, будуть здаватися менше

Перетворення, такі як поворот зображення, паралельний перенос і масштабування, в тривимірному просторі мають більше ступенів свободи Замість того, щоб переміщати вершини на двомірної площини, тепер можна вільно пересувати їх по всіх трьох осях

Ми можемо визначити камеру з довільною позицією і орієнтацією в тривимірному просторі

Порядок, в якому будуть отрісовиваться трикутники обєктів, тепер дуже важливий Обєкти, що розташовуються далі від камери, будуть перекриватися обєктами, які знаходяться ближче до камери

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

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

Перший приклад називається GL3DBasicsStarter Ми можемо заново використовувати код класу GLBasicsStarter і просто змінити імена пакетів класів-прикладів, які ми збираємося запустити, на com badl ogi с androi dgames gl 3d Слід також додати в маніфест кожен тест у вигляді елементів Всі тести будуть запускатися строго в альбомної орієнтації, що визначено в елементах

Кожен тест – це екземпляр абстрактного класу GLGame, логіка самого тесту реалізується у вигляді екземпляра класу GLScreen, що є членом реалізації GLGame для конкретного тесту, як і в попередніх главах Я буду представляти для розгляду лише найважливіші фрагменти класу GLScreen, щоб заощадити трохи місця Знову приймемо ту ж угоду для імен – XXXTest і XXXScreen для реалізацій класів GLGame і GLScreen для кожного тесту

Джерело: 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>

*

*