Posts Tagged ‘pixelBlender’
Еще несколько важных фактов о производительности 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% потеря скорости
На своем опыте могу сказать, что все эти нюансики складываются иногда в очень неприятные тормоза.
Производительность PixelBlender’а
Для меня оказалось сюрпризом, что эффект джина во флэш-плеере воспроизводится значительно медленнее, чем в самом PixelBlender. При этом, чем больше размер объекта к которому применяется шейдер, тем сильнее тормоза.
Я стал разбираться с этим вопросом и нарыл одну весьма интересную запись в блоге Kaourantin.net.
Цитирую:
You heard right, software run time. Pixel Bender kernels do not run using any GPU functionality whatsoever in Flash Player 10.
Да. Во флэш-плеере пикселблендер не использует GPU! Вот и весь сказ. Так что вся эта прекрасная скорость и гладкость наблюдаемая в самом PixelBlender пока что только там и остается. Очень это разочаровало меня если честно, за что боролись? Впрочем, ряд трюков все равно можно исполнить только средствами пиксел блендера - это оправдывает его существование.
Кстати, в статье еще много всякого вкусного о PixelBlender - рекомендую.
Genie. Эффект Джина с использованием PixelBlender.
Недавно в блоге “Флэш-потрошителя” я нашел интересную ссылку в блоге ViValution, о том как создать эффект genie на сильверлайте с помощью пиксельных шейдеров.
Я посмотрел и загорелся идеей сделать этот эффект на As3 c помощью PixelBlender.
Click to continue…
