Archive for июля, 2009



31
июля
Comments Off

Дело было не в бобине… или как заставить плагин FIVe3D_make_typography_v2.0 работать

В своем посте Текст в кривые программно или «Крошим шрифт на кусочки» я жаловался, что у меня не работает плагин FIVe3D_make_typography_v2.0 с помощью которого шрифт преобразуется в AS3 класс.

Оказывается, чтобы плагин FIVe3D_make_typography_v2.0  заработал, его надо класть в папку, где находятся настройки программ - в Windows это:

C:\Documents and Settings\…YourUserNameHere…\Local Settings\Application Data\Adobe\Flash CS4\en\Configuration\WindowSWF

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

Кто бы мог подумать! Я совал плагин в папку WindowSWF находящуюся в Program files и уже всю голову сломал пытаясь понять, какого черта он не работает! И ведь в инструкции по установке об этой мелочи ни слова не сказано - поди догадайся. Я узнал о том, как это победить, когда посмотрел урок Building Custom Flash Panels Ли Бримелоу на gotoAndLearn о том, как пишуться плагины к flash IDE.

Что касается получения информации о символах - то все оказалось просто. Плагин FIVe3D_make_typography_v2.0 каждый символ по очереди помещает на сцену - конвертирует в кривые, потом парсит информацию о шейпе, а в итоге в output выдает листинг AS3 класса с описанием шрифта. Все это дело работает благодаря доступу к внутренним функциям Flash IDE, подробнее об этом можно почитать в справочном руководстве к флешу - в разделе Extending Flash. Жаль что этими средствами можно пользоваться только внутри flash IDE. Это я все к тому, что пока мои поиски на тему “можно ли программно device font превратить в кривые” пока не привели к успеху.

И, на закуску, руссифицированный вариант эксперимента со шрифтами.

прячу это малоудачное гавно под кат, ибо теперь есть вариант поудачнее (см. пост выше)

Click to continue…

28
июля

Еще несколько важных фактов о производительности Pixel Blender’а

В блоге Дэвида Ленартса появился интересный тест производительности Пиксел Блендера. В частности интересно, что при работе с фильтами Pixel Blendera:

BitmapData быстрее чем  ByteArray а он в свою очередь быстрее, чем Vector.<Number> !

  • ShaderJob on BitmapData: 92-99ms
  • ShaderJob on ByteArray: 147-172ms
  • ShaderJob on Vector.<Number>: 167-192ms
  • BitmapData is ~40% быстрее чем ByteArray
  • BitmapData is ~47% быстрее чем Vector.<Number>!!

Операторы сравнения дают значительное падение производительности.

В своем тесте Дэвид делает тест, где вычисления не производятся для пикселей с alpha==0. При этом даже если таких пикселей около половины - время вычислений вырастает:

  • BitmapData: 134-192ms - ~47% потеря скорости!!!
  • ByteArray: 147-172ms - ~22% потеря скорости
  • Vector: 192-213ms - ~27%потеря скорости

Не используйте input в качестве output

Лучше иметь два разных BitmapData. Дело в том что Flash player делает временную копию источника, что увеличивает время вычислений фильтра.

  • BitmapData: 207-218ms - ~30% потеря скорости
  • ByteArray: 256-271ms - ~65% потеря скорости
  • Vector: 276-293ms - ~40% потеря скорости

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

24
июля

Font Blender. Превращаем текст в математические кривые.

И, наконец, я сделал то, что хотел - дробление и превращения текста в трехмерные, математические, абстрактные фигуры! Для этого пришлось твинить конечные и контрольные точки отрезков. Фактически для каждого обломка надо одновременно анимировать 6 или 9 параметров,  в зависимости от типа отрезка.  При этом, конечные точки, куда должен прилететь отрезок, вычисляются по формулам фигур лиссажу, которые продемонстрированы здесь и здесь (есть исходники).

Смотреть демо

Celadon theme by the Themes Boutique