Как отмечено в комментариях выше, это, вероятно, отвечает только на половину проблемы;
Создание изображения карты смещения не слишком сложно с помощью правильных инструментов. Предположим, вы используете Photoshop, GIMP, Fireworks или аналогичные.
Возможно, лучше всего работать с изображением 128x128 или меньше с помощью этого метода. Некоторые редакторы имеют более специализированные инструменты, которые позволяют работать практически с любым размером изображения, но это общий процесс, который не требует специальных инструментов. Вы всегда можете увеличить конечный результат, но качество начнет снижаться.
Начать заполнение градиентом. Он должен идти от чистого черного слева до темно-красного справа (в частности, 128,0,0). Добавьте вертикальную заливку от черного вверху к темно-зеленому внизу (конкретно 0,128,0) и объедините их с фильтром LIGHTEN или ADD. Теперь у вас должно быть изображение с черными, красными, зелеными и желтыми углами. Сгладьте.
Скопируйте это изображение на другой уровень/независимо от того, какой термин подходит для вашего редактора. Примените любой фильтр перемещения, который вы хотите к нему (возможно, рыбий глаз, возможно, ручная смазка, возможно, преобразование перспективы, что угодно)
Добавить третий слой между ними. Наводнение заполняет его темно-желтым (128,128,0) и устанавливает его в режим смешивания ADD/ADDITION. Установите верхний слой в режим смешивания SUBTRACT/SUBTRACTION.
Всё. Вы должны получить в основном желтое изображение, которое будет функционировать как карта смещения.
Update:
Чтобы использовать это в примере программы (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filters/DisplacementMapFilter.html#includeExamplesSummary), заменить функцию createBitmapData
с этим:
private function createBitmapData():BitmapData {
return myBitmapObject.bitmapData;
}
где myBitmapObject
это имя экземпляра (я думаю) растрового смещения. Есть более аккуратные способы настройки, но это самый простой способ.
Вы посмотрели документацию? http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filters/DisplacementMapFilter.html и примеры? http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filters/DisplacementMapFilter.html#includeExamplesSummary – Dave
@Dave У меня есть, но я не вижу, как вы можете создать эффект рыбий глаз, основанный на пример. – David
Я не уверен, где вы застряли, поэтому я предполагаю, что это при создании изображения. Проще говоря, если вы используете красный для x и зеленый для y, тогда темно-желтый (128 128, что-то) будет означать, что вы не будете двигаться, а темно-красный (128,0, что-либо) будет означать использование полного смещения y и т. Д. вам нужно подумать о том, как вы хотите, чтобы каждый пиксель двигался. В средствах редактирования изображений есть простой способ сделать это, но в комментарии слишком долго объяснять. Если я прав, что это ваша проблема, дайте мне знать, и я отправлю его в качестве ответа. – Dave