ІНШІ примітивний: ТОЧКИ, ЛІНІЇ, СМУЖКИ і конуса – РОЗРОБКА ІГОР ДЛЯ ОС ANDROID

&nbsp

Коли я говорив, що OpenGL ES – це величезна машина для візуалізації трикутників, я трохи недоговорював Насправді OpenGL ES може також візуалізувати точки і лінії Більше того, вони теж описуються за допомогою вершин, і, як наслідок, все вищезгадане можна застосувати і до них (текстури, кольору для вершин і т д) Все, що нам треба зробити, щоб візуалізувати ці примітиви, – використовувати при виклику gl DrawArrays / glDrawElements щось окрім GL10 GL TRIANGLES Ці примітиви також піддаються візуалізації з індексуванням, хоча це і дещо зайве (як мінімум, у випадку з точками) На рис 718 показаний список всіх типів примітивів, які нам пропонує OpenGLES

Рис 718 Всі примітиви, які може візуалізувати OpenGL ES

Коротко розглянемо всі ці примітиви

Точка У випадку з точкою кожна вершина – це окремий примітив

Лінія Складається з двох вершин Як і у випадку з трикутниками, досить мати 2 х п вершин, щоб описати п ліній

Ламана лінія Всі вершини сприймаються як належні однієї довгої лінії

Замкнута ламана лінія Схожа на ламану лінію, єдина різниця полягає в тому, що OpenGL ES автоматично намалює ламану лінію від останньої вершини до першої

Трикутник Він нам вже знайомий Кожен трикутник складається з трьох вершин

Стрічка трикутників Замість опису трьох вершин ми просто описуємо кількість трикутників + одна вершина Потім OpenGL ES створить перший трикутник з вершин (vl v2 v3), наступний трикутник з вершин (v2 v3 v4) і т д

Віяло трикутників Віяло має одну основну вершину (vl), яка є спільною для всіх трикутників Перший трикутник буде (vl v2 v3), наступний (vl v3 v4) і т д

Стрічки й віяла трикутників трохи менш гнучкі в порівнянні із звичайними списками трикутників Однак вони можуть прискорити роботу програми, оскільки нам доведеться множити на матрицю проекції і модельно-видову матрицю меншу кількість вершин У нашому коді будемо працювати зі списком трикутників, оскільки їх простіше використовувати, а застосування індексів допоможе нам досягти досить високої продуктивності

Точки та лінії у OpenGL ES трохи дивні Коли ми використовуємо ідеальну пиксельную ортогональну проекцію (наприклад, коли дозвіл екрана дорівнює 320 х 480 пікселів і наш glOrthof застосовує такі ж значення), ми як і раніше не отримуємо ідеальну пиксельную візуалізацію Місця розташування вершин точки і лінії повинні бути зміщені на 0,375 f-за так званого правила ромбічного виходу (diamond exit) Памятайте про це, якщо ви хочете отримати ідеальну візуалізацію точок і ліній Ми вже бачили щось схоже, коли розглядали трикутники Проте, беручи до уваги, що ми зазвичай малюємо трикутники в 2D, ми навряд чи зустрінемося з цією проблемою

Припустимо, все, що вам потрібно, – візуалізувати примітиви, відмінні від GL10 GLTRIANGLES У цьому випадку використовуйте одну з констант з рис 718 Далі ми розглянемо приклад програми У більшості випадків застосовуватимемо список трикутників, особливо працюючи з графічним програмуванням 2D

Тепер вивчимо в ще одну річ, яку нам пропонує OpenGL ES: модельно-видову матрицю

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

*

*