![]() |
envelope transform средствами AS
Здравствуйте. возникла задача программно реализовать трансформацию которая в Adobe Flash CS5 называется envelope.
нужно динамически, в зависимости от положения мышки делать следующее. начальное положение: http://imglink.ru/pictures/05-04-12/...6a876d7e6d.jpg положение после взаимодействия: http://imglink.ru/pictures/05-04-12/...5c25d5dc0b.jpg Буду очень благодарен за помощь! |
Возможно DisplacementMapFilter Вам поможет, но точно такой же инструмент думаю сложно будет сделать.
|
Можно через PixelBender сделать. Точно такой же. Единственное но - количество контрольных точек будет всегда постоянным (то есть чтобы добавить контрольную точку нужно будет дописать соответствующий код в шейдере)
|
нашел вот такой пример, но пока не понял как там это реализуется:
http://www.neuroproductions.be/exper...-actionscript/ |
http://fatlinesofcode.philipandrews....ezier-surface/ вот мега вещь. Я вам по секрету скажу: можно всякими средствами, которые запрещено тут обсуждать, туда посмотреть. Там понятно.
|
не совсем понимаю о чем вы.
|
Цитата:
|
помогите пожалуйста решить проблему...с примерам что я указал выше я пока еще не разобрался.
|
Это сделано руками, берётся сетка из точек и преобразованием поверхности безье добиваются такого эффекта. Потом чтерез drawTriangles интерполируют изменения.
Добавлено через 49 секунд Нет такого простого инструмента чтоб раз и трансформации. У меня ушло порядка двух недель на то чтоб сделать это на хорошем промышленном уровне. |
а ну да. Что-то я не туда ткнул с PixelBender. Голосую за drawTriangles
|
Aquahawk, жаль. попробую изменить тот пример под свои нужды...
если кому то еще это интересно, прошу покапаться))) по сути мне надо добавить еще 2 точки. сверху посередине и снизу посередине, и только ими управлять. 2 недели это конечно жестко... |
Так тебе надо только по вертикали гнуть? только как на картинке?
|
если у кого-то есть желание, то можно попробовать разобраться вот с этим примером
http://www.neuroproductions.be/exper...-actionscript/ я пока не разобрался. по сути нужно добавить 2 точки. одну посередине сверху, другую посередине снизу. |
Я за написанием шейдера для этой штуки 2 дня просидел. Пришёл к выводу что просто так не получится, в общем виде задача в обратную сторону не решается. Т.е. для пикселя исходной картинки достаточно несложно сказать куда он попадёт после преобразования, а вот наоборот. По преобразованному пикселю понять откуда он пришёл намного сложнее.
|
этот способ еще и ресурсоемкий очень. даже разбираться буду, не подойдет.....
Добавлено через 9 минут каким образом сделать такой эффект по другому?....допустим если я программно рамки буду рисовать этой области, как внутри нее сделать искажение графики? |
Это всегда ресурсоёмко. Это процессинг изображения. Ни куда не деться. Можно правда через stage3D на кривую поверхность текстуру натянуть, тогда можно добиться похожих эффектов.
|
Aquahawk, а можно поподробнее про stage3D?
|
С самим stage3D api я не работал. Вам надо будет аналитически задать такую поверхность безье и затексурировать её. так чтобы внешне это выглядело таким образом. Это просто идея без какого либо намёка на способ реализации. Я так хотел делать и это было одним из вариантов, но в результате сделал как в той демке где лиса гнут.
|
проблема так и не решена....очень нужна помощь сообщества!!!
|
Я такую штуку делал кучей матриц.
Резал изображение на сетку и матрицами искажал. Только там стопицот математики. Наработки к сожалению не сохранились. |
Цитата:
|
нужно какоето простое решение, которое не сильно повлияет на производительность.....может с помощью текстур вместо заливки можно такого добиться?.....какие еще могут быть решения?
|
| Часовой пояс GMT +4, время: 10:05. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.