Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Вопрос по созданию 3d демо-приложения flash

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Здравствуйте. Решил сделать небольшую демку на флеш.

i68.tinypic.com/2dk086h.jpg
i63.tinypic.com/240xg61.jpg
i63.tinypic.com/k9w45c.jpg

1. Идея — что-то вроде rpg — Сделано

2. 3d модели — Выполнено на 60%

3. Текстуры — 0%, их на потом оставил

4. Создание приложения — Пока только немного набросал, инициалиацию 3d и немного загрузчика — Сделано на 30%

5. Материалы — тут вопрос — как на flash away3d или Stage3d добавить карту яркости текстуры, для окошек дома, и фонариков, для вечера или ночи? Вроде какого ни будь Self-Illumination Material или возможно шейдерами agal, или pixel bender? Может есть где-то примеры реализации подобных задач?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Если очень уж хочется поизвращаться, то можно и на голом AGAL набросать. Только, думаю, нет в этом смысла. По любому в движках должно быть. Только ходить надо на специализированные форумы, думаю

С agal не могу разобраться, на нем было бы тоже интересно, когда есть к примеру модель, к ней uv карта с текстурами и с этой же uv картой картинка в градациях серого как бы это шейдером сделать. Или хотя бы общие примеры понять как шейдейр работает, как передать с изображения с градациями серого в шейдер значение яркости, совместить с цветом текстуры и вывести на экран.

в инете все есть. Примеров масса. Когда-то игрался с ним, особых трудностей с поиском инфы не было, при том что 10-й плеер (в нем же вроде 3д добавили?) был самой последней версией, то есть инфы было намного меньше чем сейчас

Вроде бы в 10. Попробую поискать нужные примеры, нашел описание команд и регистров.

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

Сегодня чуть позже попробую по найденным примерам разобраться.

Агал — та ещё кака. По сути малоюзабельный ассемблер, приходится какие-то компиляторы юзать и особенности иметь.
Поразбираться с шейдерами — я бы рекомендовал OpenGL. Юнити тоже можно.

Я не могу разобраться в том, как в шейдер передаются входящие данные. И как туда передать битмап в градациях серого для изменения яркости на выходе. Opengl и Unity3d интересно было бы поучить, dx11, — не тянет комп. Хотя я на скринах видел, всевозможные панельки свойств, нод-редакторы, выглядит очень удобно и привлекательно.

По поводу компиляторов интересно, с ними не работал но тоже почитаю о них, как там с ними дела обстоят.

Достаточно паршиво, по-моему, как и вообще с 3D на флеше. Если вы уже знакомы с хардварным 3D API, представляете аналоги на огл/директе/юнити, то вы можете достаточно эффективно использовать это и на флеше. API на самом деле критично не отличается, у агала только несколько беднее из-за того, что агал и на мобилах работает и софтверный какой-то фоллбек есть и адобы — раздолбаи. Зато обёртка во флеш на самом деле простая и удобная. И писать на ассемблере агала — это полный пц по сравнению с няшным glsl. Потому у 3д движков на флеше какие-то свои компилеры и особенности использования и надо очень интенсивно изучать именно конкретный движок. При том, что ВСЕ 3д движки на флеше мягко говоря не идеальны и больше подходят для опытных, кто знаком с хардварным API.
А вот хардварное API и шейдеры я бы советовал учить по OpenGL. Достаточно медленно, нативный гемор с библиотеками, но learning curve достаточно пологая и знания фундаментальные.

Немного знаком с хардварным 3d. В agal не совсем понятно, почему для входящих данных для фрагментного шейдера испольуется регистр вершинного. Пока не эскпериментировал с agal, но понял что его используют для stage3d, попробую настроить для 11 плеера среду разработки. Посмотрел, попробовал pixel bender, редактор удобный, с превью. Оказалось материалы away3d реализованы шейдерами pixel bender.

Opengl интересно было бы учить, но я не знаю, есть ли какой-то редактор шейдеров с превью для opengl 1.3.

Еще была как-то задумка, для шейдеров сделать небольшой редактор.

Pixel Bender пришёл из до агаловских времён пришёл и скоре всего не из хардварного апи. Для

opengl
думаю есть какие-то редакторы, и написать не проблема на самом деле.

По моему это надо копать в сторону HDRI освещения. www.derschmale.com/...-lighting-in-fp10-away3d
Хотя на мой взгляд разницу дня и ночи можно сделать и одним источником света.

да. пример этот видел. но для общего освещения, а интересует как в вечернее или ночное время сделать материал у поверхностей окошек у домика и фонариков более ярким чем материалы у других объектов.

Можно попробовать флешевый фильтр глоу, хотя память скушает.
var lightMat:ColorMaterial = new ColorMaterial(0xffffff); lightMesh = new RegularPolygon( { material:lightMat, radius:100, sides:32 } ); lightMesh.ownCanvas = true; lightMesh.filters = [ new GlowFilter(0xffffbe, 1, 6, 6, 3, 3, false, false), new GlowFilter(0xffffbe, 1, 6, 6, 3, 3, true, false) ];

Спасибо, попробую такой вариант, поробую объеденить в мультиматериале с обычным материалом png.

У флеша довольно тормозная VM, потому будут ОЧЕНЬ жёсткие ограничения по полигонам, например, крайне сложно влезть, особенно если такие вопросы возникают. Не юзал авей, но emissiveMap — не то?
Подумайте таки о юнити, если это для игры, а не просто для сцены.

Да, есть ограничения, но сцена не слишком большая, вернее очень маленькая.

Unity3d интересно было бы учить, у меня не запускается этот редактор.

emissiveMap
не нашел описания как это реализовать для stage3d или какого-то из движков.

Начиная с появления Stage3D/Molehill вся геометрия рендерится внутри GPU силами графического интерфейса (opengl/directx). Скорость VM и байт кода (если аккуратно написан и быстр) на нем сказывается мало.

Підписатись на коментарі