
Stage3D / AGAL с нуля. Часть 2 – Анатомия программы Stage3D
Добрый день, это вторая статья на тему Stage3D / AGAL, она будет тоже теоретической, как и первая. Ждите практику в следующей статье.
Перед тем, как начать работу над нашим первым треугольником, давайте сперва взглянем на структуру программы в Stage3D. Приведенная далее информация так же будет касаться WebGL программ и низкоуровневого 3D программирования в целом.
При работе с низкоуровневыми API, стоит понимать принципы их работы. Напомню, V-Ram — это видеопамять, а Буфер — это некоторое занятое месть в ней. Чтобы отображать треугольники, видеокарте нужно располагать как минимум тремя вершинами (точками в пространстве) и программой, определяющей как именно вы хотите нарисовать все это на экране.
Кое о чем мы все еще не поговорили, об индексах. Индексы представляют собой порядок, в котором надо обходить вершины, что бы получить треугольники. Вы можете ассоциировать индексы с точками в детской игре "Соедини точки".
Итак, теперь мы можем добавить в свой словарь еще один термин:
Пока не стоит сильно беспокоиться об индексах, мы еще к ним вернемся. Кстати, я слышал, вам нравятся диаграммы :)

Отсюда можно выделить 3 основные этапа:
Первые два этапа и определяют силу Stage3D. Резервирование памяти и загрузка данных занимает много времени, но когда все на месте, нам уже не нужен процессор (CPU). Видеокарта способна отрисовывать уже загруженные в ее память данные достаточно быстро, оставляя процессор для дел другого профиля, например, для просчета физики.
Все эти три этапа могут быть произведены всего раз, к слову, они и не должны происходить вновь до тех пор, когда данные изменятся. Назовем это «Исходной» позицией.
Составляющие «исходной» могут быть выполнены в любом порядке. Вы можете начать с программы, потом загрузить вершины, а за ними уже текстуры, но можно и наоборот. Конечно же, для каждой колонки на диаграмме последовательно сть должна оставаться неизменной. Когда вызываете метод drawTriangle(), важно только одно — чтобы все было на своем месте, в каком порядке оно туда попало — не так важно.
Теперь нам известны основание принципы работы с Stage3D, в следующей статье (которая будет достаточно большой), мы наконец поработаем с кодом и нарисуем треугольник.
Оригинал: Stage3D/AGAL from scratch. Anatomy of a Stage3D Program.
Автор оригинала: Norbz.
Перевод: MidnightOne.
Анатомия программы Stage3D
Перед тем, как начать работу над нашим первым треугольником, давайте сперва взглянем на структуру программы в Stage3D. Приведенная далее информация так же будет касаться WebGL программ и низкоуровневого 3D программирования в целом.
При работе с низкоуровневыми API, стоит понимать принципы их работы. Напомню, V-Ram — это видеопамять, а Буфер — это некоторое занятое месть в ней. Чтобы отображать треугольники, видеокарте нужно располагать как минимум тремя вершинами (точками в пространстве) и программой, определяющей как именно вы хотите нарисовать все это на экране.
Кое о чем мы все еще не поговорили, об индексах. Индексы представляют собой порядок, в котором надо обходить вершины, что бы получить треугольники. Вы можете ассоциировать индексы с точками в детской игре "Соедини точки".
Итак, теперь мы можем добавить в свой словарь еще один термин:
Индексы — список целых чисел (Integers), определяющий порядок прорисовки вершин видеокартой для образования треугольников.
Пока не стоит сильно беспокоиться об индексах, мы еще к ним вернемся. Кстати, я слышал, вам нравятся диаграммы :)

Отсюда можно выделить 3 основные этапа:
- Резервирование памяти: Создание буферов для каждого типа данных, которым будут использоваться (вершины, текстуры, программы)
- Загрузка данных: Загрузка вышеперечисленных данных в память.
- Определение: Дать видеокарте знать какие буферы содержать какие типы данных.
Первые два этапа и определяют силу Stage3D. Резервирование памяти и загрузка данных занимает много времени, но когда все на месте, нам уже не нужен процессор (CPU). Видеокарта способна отрисовывать уже загруженные в ее память данные достаточно быстро, оставляя процессор для дел другого профиля, например, для просчета физики.
Все эти три этапа могут быть произведены всего раз, к слову, они и не должны происходить вновь до тех пор, когда данные изменятся. Назовем это «Исходной» позицией.
Составляющие «исходной» могут быть выполнены в любом порядке. Вы можете начать с программы, потом загрузить вершины, а за ними уже текстуры, но можно и наоборот. Конечно же, для каждой колонки на диаграмме последовательно сть должна оставаться неизменной. Когда вызываете метод drawTriangle(), важно только одно — чтобы все было на своем месте, в каком порядке оно туда попало — не так важно.
Теперь нам известны основание принципы работы с Stage3D, в следующей статье (которая будет достаточно большой), мы наконец поработаем с кодом и нарисуем треугольник.
Оригинал: Stage3D/AGAL from scratch. Anatomy of a Stage3D Program.
Автор оригинала: Norbz.
Перевод: MidnightOne.
- +13
- MidnightOne
Комментарии (5)