
Stage3D / AGAL с нуля. Часть 1 – Азы
Добрый день, дорогие друзья.
В сети до сих пор довольно мало туториалов Stage3D / AGAL, а тем более на русском, поэтому я решил сделать несколько переводов статей об этом замечательном инструменте. Сегодня мы взглянем на гранит, который предстоит грызть, но к процессу пока не приступим. Под катом некоторое количество вводной информации по Stage3D / AGAL.
Мы все видели эти поразительные вещи, на которые способен Stage3D, возможно вы даже копались в коде примеров Away3D и компилировали их.
Во время работы с Away3D для моих первых экспериментов, я чувствовал разочарование из-за отсутствия возможности работать с чем-то большим, чем просто кубы, сферы и стандартные примитивы. Конечно же это было связано с недостатком навыков в сфере 3d моделирования.
Потом вышли Starling и ND2D, и тогда мы начали понимать, что Stage3D — это отличный инструмент для покорения сотен спрайтов, частиц и анимаций без потери производительности.
Но нужно смотреть правде в глаза: если вы хотите понимать как работают эти вещи, для того-ли, что бы усовершенствовать их, или просто использовать с наибольшей эффективностью, вам придутся копнуть глубже и разобраться с низкоуровневым API, которое Adobe предоставила нам в Stage3D.
Как и большинство людей, я начал с простого примера «Hello Triangle». И все. На этом и заканчивалась вся информация, пришлось копать.
В следующих 3-4 постах я расскажу об основах и принципах работы со Stage3D, и конечно же постараюсь показать чуть больше, чем просто трехцветный треугольник.
Для начала, нам нужно настроить среду разработки так, что бы компилировать под Flash Player 11. Я использую FDT, вы можете последовать за мной, или использовать любую другую среду разработки как Flash Develop или Flash Builder.
На эту тему уже написано не мало статей, потому я просто приведу ссылки для разных IDE.
(на английском)
Удостоверьтесь, что можете компилировать с доступом к Context3D, прежде чем двигаться дальше.
Я замечаю, что множество флеш-разработчиков были разочарованы первым знакомством со Stage3D. Adobe обещали настоящее 3D во флеше, а все, что мы имеем, это AGAL. Какие-то цифры, нет камеры, нет Scene3D, нету даже атрибута z для трехмерных объектов.
Stage3D занимается всего одной вещью, но качественно. Stage3D всего лишь дает вам возможность загрузить какое-то количество информации, текстур и программу для выполнения в видеокарту. И все.
Чем Stage3D не является, так это 3D движком. 3D движок позволяет вам работать с полигональными сетками, материалами, светом, камерами и другими подобными объектами. На основе Stage3D уже работает достаточно много движков, как Away3D 4.x, Alternativa 3D, Minko, Unreal Engine и Unity 3D Engine.
«Все, все понятно, теперь мы хотим наконец узнать что-то новое», правильно? Тогда продолжайте читать.
Как и в каждой сфере, здесь необходимо знать некоторую терминологию, что бы двигаться дальше. Я приведу только самые простые и объясню подробнее более сложные вещи.
GPU: Graphical Processing Unit (графический процессор). Очевидно, видеокарта.
Видеопамять (V-Ram): Память видеокарты.
Буфер (Buffer): Занятое видеопамяти место.
Вершина (Vertex): Точка в 3D пространстве.
Fragment : Пока ограничимся определением «цвет пикселя»
Шейдер (Shader): Это часть программы. Они разделяются на 3 типа: Вершинные шейдеры (Vertex Shader), Пиксельные шейдеры (Pixel Shader / Fragment Shader), Геометрические шейдеры (Geometry Shader) (3й пока не доступен)
Программа (Program): Совокупность вершинного и пискельного шейдеров.
Это все на сегодня.
Далее мы рассмотрим и постараемся понять анатомию программы в Stage3D и напишем наш первый треугольник с использованием графического ускорения.
Оригинал: Stage3D/AGAL from scratch. The Basics.
Автор оригинала: Norbz.
Перевод: MidnightOne.
Примечание переводчика: Norbz уже написал 7 достаточно подробных и качественных статей в своём блоге. Это была первая. Если вам интересно, я смогу перевести все остальные.
PS: Надо ввести блог «Stade3D», а пока публикую в «разработку».
В сети до сих пор довольно мало туториалов Stage3D / AGAL, а тем более на русском, поэтому я решил сделать несколько переводов статей об этом замечательном инструменте. Сегодня мы взглянем на гранит, который предстоит грызть, но к процессу пока не приступим. Под катом некоторое количество вводной информации по Stage3D / AGAL.
Итак, AGAL
Мы все видели эти поразительные вещи, на которые способен Stage3D, возможно вы даже копались в коде примеров Away3D и компилировали их.
Во время работы с Away3D для моих первых экспериментов, я чувствовал разочарование из-за отсутствия возможности работать с чем-то большим, чем просто кубы, сферы и стандартные примитивы. Конечно же это было связано с недостатком навыков в сфере 3d моделирования.
Потом вышли Starling и ND2D, и тогда мы начали понимать, что Stage3D — это отличный инструмент для покорения сотен спрайтов, частиц и анимаций без потери производительности.
Но нужно смотреть правде в глаза: если вы хотите понимать как работают эти вещи, для того-ли, что бы усовершенствовать их, или просто использовать с наибольшей эффективностью, вам придутся копнуть глубже и разобраться с низкоуровневым API, которое Adobe предоставила нам в Stage3D.
Как и большинство людей, я начал с простого примера «Hello Triangle». И все. На этом и заканчивалась вся информация, пришлось копать.
В следующих 3-4 постах я расскажу об основах и принципах работы со Stage3D, и конечно же постараюсь показать чуть больше, чем просто трехцветный треугольник.
Программируем под Flash Player 11
Для начала, нам нужно настроить среду разработки так, что бы компилировать под Flash Player 11. Я использую FDT, вы можете последовать за мной, или использовать любую другую среду разработки как Flash Develop или Flash Builder.
На эту тему уже написано не мало статей, потому я просто приведу ссылки для разных IDE.
(на английском)
- Flash CS5
- Flash Builder
- FlashDevelop
- FDT
Удостоверьтесь, что можете компилировать с доступом к Context3D, прежде чем двигаться дальше.
Stage3D: Что он из себя представляет и чем не является
Я замечаю, что множество флеш-разработчиков были разочарованы первым знакомством со Stage3D. Adobe обещали настоящее 3D во флеше, а все, что мы имеем, это AGAL. Какие-то цифры, нет камеры, нет Scene3D, нету даже атрибута z для трехмерных объектов.
Stage3D занимается всего одной вещью, но качественно. Stage3D всего лишь дает вам возможность загрузить какое-то количество информации, текстур и программу для выполнения в видеокарту. И все.
Чем Stage3D не является, так это 3D движком. 3D движок позволяет вам работать с полигональными сетками, материалами, светом, камерами и другими подобными объектами. На основе Stage3D уже работает достаточно много движков, как Away3D 4.x, Alternativa 3D, Minko, Unreal Engine и Unity 3D Engine.
«Все, все понятно, теперь мы хотим наконец узнать что-то новое», правильно? Тогда продолжайте читать.
Основные термины
Как и в каждой сфере, здесь необходимо знать некоторую терминологию, что бы двигаться дальше. Я приведу только самые простые и объясню подробнее более сложные вещи.
GPU: Graphical Processing Unit (графический процессор). Очевидно, видеокарта.
Видеопамять (V-Ram): Память видеокарты.
Буфер (Buffer): Занятое видеопамяти место.
Вершина (Vertex): Точка в 3D пространстве.
Fragment : Пока ограничимся определением «цвет пикселя»
Шейдер (Shader): Это часть программы. Они разделяются на 3 типа: Вершинные шейдеры (Vertex Shader), Пиксельные шейдеры (Pixel Shader / Fragment Shader), Геометрические шейдеры (Geometry Shader) (3й пока не доступен)
Программа (Program): Совокупность вершинного и пискельного шейдеров.
Это все на сегодня.
Далее мы рассмотрим и постараемся понять анатомию программы в Stage3D и напишем наш первый треугольник с использованием графического ускорения.
Оригинал: Stage3D/AGAL from scratch. The Basics.
Автор оригинала: Norbz.
Перевод: MidnightOne.
Примечание переводчика: Norbz уже написал 7 достаточно подробных и качественных статей в своём блоге. Это была первая. Если вам интересно, я смогу перевести все остальные.
PS: Надо ввести блог «Stade3D», а пока публикую в «разработку».
- +20
- MidnightOne
Комментарии (17)
Спасибо за этот.
Такие статьи в больше мере полезны экспериментаторам, джедаям, людям с тягой к саморазвитию и прочим любопытным разработчикам, чей интерес в какой-то момент привлечет тема GPU рендера во Flash.