Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Намеренное искажение растровой картинки (http://www.flasher.ru/forum/showthread.php?t=100674)

iNils 04.10.2007 16:16

http://www.5etdemi.com/uploads/displacementmaptest.zip

aQuestion 04.10.2007 17:51

Цитата:

Сообщение от chingachgoog
Но процесс мне кажется малоуправляемым. Именно из-за "построения правильного градиента".

Нуу знаете ли, лично мне истребитель Миг29 тоже кажется малоуправляемым, а профессиональные пилоты жах что вытворяют...

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

chingachgoog 05.10.2007 14:33

Это похоже как раз мой случай :) :
The way this filter works is explained in documentation very clear, but people still say they do not understand it.

Буду разбираться с примером iNils - упростил его уже дальше нельзя: 4 строчки кода, один градиент... а все равно still do not understand it :)

Код:

import flash.filters.*;
import flash.display.*;

bmp = BitmapData.loadBitmap("displacementMap");
mc.filters = [new DisplacementMapFilter(bmp, new Point(), 4,4, 128, 128, 'color')];


aQuestion 05.10.2007 16:07

потому что всё, что вам следовало бы понять, лежит за пределами этих 4х строчек :(

chingachgoog 05.10.2007 19:17

А что тут понимать? В мануале этого нет. Далеко не сразу понятно, что же такое "смещение по цветам". Думаю кому-нибудь будет интересно:
Берется один из каналов RGBA и смотрится его насыщенность, которая может быть от 0 до 255. (удобно в шопе по каналам смотреть).
Если насыщенность от 0 до 127, то пиксел смещается на уменьшение, если от 128 до 255, то на увеличение.

Но вот пример от от iNils.
Там заранее нарисованный градиент: влево вниз - к черному (к 0), вправо вниз - к белому (к 255).

Вот пример со ссылки от aQuestion, там где Земля вращается.
Там опять-таки заранее нарисованный градиент (круговой).

И если градиент для шарообразной Земли еще можно нарисовать программно, то градиент от iNils программно нарисовать малореально (все же можно, но не за один ход).
Т.е. тут опять многоходовка, просто в примере от iNils (кстати огромное спасибо, очень помог разобраться) многоходовка не интерактивная (заранее в шопе был создан градиент под данную задачу).

aQuestion 05.10.2007 20:14

Цитата:

Сообщение от chingachgoog
А что тут понимать? В мануале этого нет.

Вы, батенька, просто не утруждали себя его чтением.

Черным по белому:
Цитата:

The filter uses the following formula:

dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) * scaleY) / 256]

Here is how the DisplacementMapFilter class works. For each pixel (x,y) in the destination bitmap, the DisplacementMapFilter class does the following:
  • Gets the color from (x,y) in the map bitmap
  • Calculates an offset based on that color
  • Looks up that offset location (x+dx,y+dy) in the source bitmap
  • Writes that pixel to the destination(x,y), if boundary conditions permit

Цитата:

Сообщение от chingachgoog
Вот пример со ссылки от aQuestion, там где Земля вращается.
Там опять-таки заранее нарисованный градиент (круговой).

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

Короче говоря, учитесь использовать мозг по назначению.

chingachgoog 05.10.2007 20:58

Цитата:

Сообщение от aQuestion
Вы, батенька, просто не утруждали себя его чтением.

Черным по белому:
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) * scaleY) / 256]
Gets the color from (x,y) in the map bitmap
Calculates an offset based on that color

Я рад за вас, если вы сразу поняли без посторонней помощи, что "color" - это НАСЫЩЕННОСТЬ одного из канала RGBA и что componentX(x, y) - это и есть эта насыщенность в данной точке.

Цитата:

Сообщение от aQuestion
Верно, но если вместо декомпилера воспользоваться мозгами и прочитать текст на соответствующей странице, то можно обнаружить там код, который этот градиент рисует.

Нарисуйте кодом с мозгом или с декомпиллером, градиент iNils-а (а о трапеции вообще речь изначально была)

Цитата:

Сообщение от aQuestion
Короче говоря, учитесь использовать мозг по назначению.

Не считаю это зазорным, а вы?

etc 05.10.2007 23:15

А я вот щас обоим по плюсу влеплю, если будете продолжать в таком тоне.

aQuestion 05.10.2007 23:21

Цитата:

Сообщение от chingachgoog
Нарисуйте кодом с мозгом или с декомпиллером, градиент iNils-а

Хорошо, сколько платите? Или он его в фотошопе нарисовал, по вашему.

єтц, мне уже ваши плюсы цеплять некуда, вся грудь в орденах.

etc 05.10.2007 23:25

Цитата:

Сообщение от aQuestion
єтц, мне уже ваши плюсы цеплять некуда, вся грудь в орденах.

Ну, лимит две штуки, дальше баня.
Так что лучше не устраивать эксцессов.


Часовой пояс GMT +4, время: 16:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.