Stage3D / AGAL from scratch. Part II – Anatomy of a Stage3D Program / Изучаем Stage3D / AGAL с нуля. Часть II – Анатомия Stage3D программы: Анатомия Stage3D программы

Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Перед тем, как начать написание нашей первой программы, рисующей треугольник, мы должны по-быстрому изучить структуру Stage3D программы.

redefy 21.08.12 в 17:08

0

Это также верно и для WebGL программ и для всего, что имеет отношение к низкоуровневому 3D программированию.

redefy 21.08.12 в 17:08

0

При работе с низкоуровневым 3D API, вы должны немножко разбираться в том, как работает железо.

redefy 21.08.12 в 17:08

0

Напоминаю вам, что V-RAM – это память вашей видеокарты, а буферы – это некоторое выделенное пространство в вашей V-RAM.

redefy 21.08.12 в 17:09

0

Чтобы визуализировать некоторое количество треугольников, вашему GPU требуются, по крайней мере, некоторое количество вершин (вершина – это точка в пространстве), а также программа, которая скажет, как визуализировать эти точки на экране.

redefy 21.08.12 в 17:09

0

Есть еще одна важная вещь, о которой мы не говорили ранее. Речь идет о индексах.

redefy 21.08.12 в 17:09

0

Индексы определяют, в каком порядке должны визуализироваться ваши вершины, чтобы в конечном итоге образовать треугольник.

redefy 21.08.12 в 17:09

0

Вы можете представить индексы, номерами над точками из игр типа «соедини все точки линиями» в которые мы играли, когда мы были детьми.

redefy 21.08.12 в 17:09

0

Отлично! Теперь мы можем добавить определение индексов в наш словарь.

redefy 21.08.12 в 17:09

0

Индексы: список целых чисел, определяющих в каком порядке видеокарта должна визуализировать вершины треугольника.

redefy 21.08.12 в 17:10

0

Не волнуйтесь в настоящее время о вопросах работы с индексами, мы вернемся к ним позже и уделим побольше внимания.

redefy 21.08.12 в 17:10

0

Сейчас, я хотел бы вам продемонстрировать вот такую схему:

redefy 21.08.12 в 17:10

0

Вы можете выделить 3 главные фазы в этой схеме:

Фаза распределения: создание буферов для каждого типа данных GPU, которые будут использоваться (вершина, текстуры, программы) в вашей V-RAM.
Фаза загрузки: отправка данных, или текстур, или программ в буфера, чтобы GPU cмог получить к ним доступ.

redefy 21.08.12 в 17:10

0

Фаза декларации: сказать GPU, какой буфер будет использоваться в качестве данных для вершин, какие будут использоваться текстуры и программы.

redefy 21.08.12 в 17:10

0

Первые две фазы, фазы распределения и загрузки, являются основой Stage3D.

redefy 21.08.12 в 17:11

0

Выделение пространства в видеопамяти и загрузка туда данных занимает много времени, но как только ваши меши будут записаны в вашу видеопамять, больше ничего от процессора не требуется. Как следствие, это является причиной, почему ваш GPU может визуализировать меши так быстро, оставляя ваш процессор свободным для других процессов, таких как расчет физики и что-то типа этого.

redefy 21.08.12 в 17:11

0

Все эти три фазы можно выполнить один раз, и не выполнять снова до тех пор, пока текущие данные или программы не изменятся.

redefy 21.08.12 в 17:11

0

Мы будем называть этот процесс – настройкой.

redefy 21.08.12 в 17:11

0

Настройка может быть произведена в любом порядке: вы можете начать с определения программы, затем создать вершины, далее индексы, но если хотите, вы можете проделать это все и в противоположном порядке.

redefy 21.08.12 в 17:12

0

Конечно, нужно при этом следить за порядком выполнения действий, указанных в каждом столбце: например, нужно сначала создать буфер, чтобы иметь возможность загрузить некоторые данные в него! Но, в конечном итоге, по окончании процесса настройки, когда вы будете вызывать метод drawTriangle(), единственное что имеет значение, это чтобы все данные были на своих местах и готовы к запуску, не важно в каком порядке они были загружены в видеопамять.

redefy 21.08.12 в 17:12

0

Теперь, вы знаете, как строится любая низкоуровневая 3D-программа, какие действия и в каком порядке их следует выполнять: распределение, передача данных в буфер и т.д …

redefy 21.08.12 в 17:12

0

-

redefy 21.08.12 в 17:13

0
Минутку...