В прошлый раз для освещения 3-мерной сцены применялась модель освещения по Блинну. В этот раз применим модель Фонга и добавим цвет блику и окружающему освещению (ambient). Модель Фонга отличается лишь тем, что коэффициент для отраженного света вычисляется по-другому. При его расчете учитываются все 3 вектора: нормаль вершины, положение наблюдателя и положение источника света.
21 июля 2011 г.
Flash3D, Molehill. Добавляем блик от источника света на AGAL
В прошлой записи к 3-мерной сцене было добавлено рассеянное (диффузное) освещение. Но можно сделать освещение объектов чуть более естественным, добавив к нему блик от источника света. Сделать это не сложно. Следует лишь дополнительно учитывать положение наблюдателя в пространстве. Зная положение наблюдателя и положение источника света можно найти биссектрису между этими направлениями. Скалярное же произведение нормали и биссектрисы, возведенное в степень выбранного числа даст нам составляющую зеркального блика.
20 июля 2011 г.
Flash3D, Molehill. Шейдер диффузного освещения на AGAL
В своей записи Flash3D, Molehill. Добавляем трехмерный объект я рассказал как добавлять трехмерный объект во Flash-приложение, использующее новый API для работы с ресурсами графического адаптера Molehill. Но объект был раскрашен текстурой без учета освещения. Здесь я расскажу как добавить освещение, пока простое, рассеянное.
1 апреля 2011 г.
Flash3D, Molehill. Добавляем трехмерный объект
После того как мы вручную создали плоский треугольник и наложили на него текстуру стоит попробовать загрузить настоящий трехмерный объект. Для простоты решения таким объектом будет модель нашей планеты или попросту шар.
Так как мы будем использовать мощности графической карты, посредством API Molehill, то мы можем загрузить гораздо больше полигонов без ущерба для производительности, чем при использовании софтверного рендеринга. Геометрия в графическую карту загружается с использованием вертексного буфера. В один вертексный буфер API Molehill позволяет добавить максимум 65535 вершин с максимальным числом атрибутов на вершину — 8 (256 байт). Для наших целей этого будет вполне достаточно.
21 марта 2011 г.
Простой шейдер для двухмерной текстуры на AGAL
Давайте продолжим наши исследования шейдеров на AGAL для бета-версии Flash Player 11 с API Molehill, которое я начал несколько ранее. Здесь мы разберем вопрос о том, что потребуется сделать, если мы захотим, чтобы наш треугольник был раскрашен пикселями растрового изображения.
20 марта 2011 г.
Пишем первые шейдеры, используя Molehill
Для того, чтобы понять как писать программы с использованием API Molehill давайте разработаем каркас приложения и разберемся как это всё работает. Сделаем это вместе, вооружившись ссылкой на статью Thibault Imbert "Digging more into the Molehill APIs", нашими предыдущими познаниями в этой области:
а так же здоровым любопытством и терпением.
11 марта 2011 г.
Поддерживает ли видеокарта Molehill?
Конечно же следует перефразировать заголовок более грамотно: будет ли работать API Molehill в режиме аппаратного ускорения с Вашим графическим адаптером. Ответ на этот вопрос можно узнать пройдя по ссылке http://zp.amsnet.pl/cdragan/d3dcaps.html и загрузив представленную утилиту.
1 марта 2011 г.
Что такое Molehill?
Данная статья — вольный перевод статьи Thibault Imbert. Оригинал здесь.
Molehill — 3D API для Adobe Flash Player и Adobe AIR. Это название API для работы с трехмерной графикой на языке ActionScript 3 для платформы Flash, использующего возможности графического процессора (GPU). Работа API основана на низкоуровневом и высокоуровневом программировании шейдеров (вершинных и фрагментных). На платформе Windows API будет полагаться на DirectX. На других платформах — на OpenGL доступной реализации. Благодаря этому API разработчик получает возможность управлять таким функционалом как z-буферы, буферы трафарета, кубические текстуры, vertex skinning при скелетной анимации и многим другим на уровне GPU. А пользователь получает высокопроизводительную 3-мерную графику прямо в своём браузере.
28 февраля 2011 г.
Flash Player 11 бета с API Molehill во FlashDevelop
Радости просто нет предела! Долгожданный Flash Player 11 с поддержкой API Molehill вышел! Учтите, что это бета-версия и не все фичи могут попасть в релиз. А также, скорее всего, будут добавлены новые. Также плеер скорее всего содержит множество багов. Так что в продакшн это разработка не годится. Только для опытов :).
Пару слов об API Molehill, чтобы знать с чем мы будем иметь дело. А дело мы будем иметь с возможностью использовать ресурсы GPU (процессора видеокарты) прямо из флеш-плеера! Взаимодействие происходит посредством "кодирования в металле" :) (кто в теме поймет) или проще - низкоуровневых шейдеров. Конечно, впоследствии Adobe выпустит и высокоуровневые средства (а может уже есть?). Но пока и это прорыв.
Шейдеры же, это такой Ассемблер для GPU, если упрощенно.
Почему шейдеры лучше? Если раньше 3-мерность во Flash-плеере обеспечивалось силами CPU (центрального процессора), и количество визуализируемых полигонов было не велико (при относительно приемлемом уровне кадров в секунду - FPS), где-то порядка тысяч, от силы десятков тысяч, то сейчас этот показатель увеличится в тысячи или даже в десятки, сотни тысяч раз (будет зависеть уже от видео-карты)! Не говоря уже о других приемуществах, говорить о которых мы не будем, потому как говорить о них можно долго.
Данная публикация написана для тех, кто очень хочет поэкспериментировать с API Molehill, но познания в английском являются преградой. Пока русскоязычных публикаций мало. Здесь я расскажу как настроить среду разработки, чтобы использовать API Molehill на Windows-машине. К слову, на Mac и Linux тоже можно сделать подобное.