Карта смещения в .Net - PullRequest
       3

Карта смещения в .Net

0 голосов
/ 18 февраля 2010

Я создал приложение Flex, которое создает ресурсы изображений, цветовые слои, размытия и т. Д. Для создания изображений (99% изображений напитков в www.absolutdrinks.com создаются этим приложением). Одним из эффектов, используемых приложением, является способность Flash применять фильтр карты смещения, в котором смещение по x и y для изображения определяется 2D-изображением (смещение sy x в красном канале и смещение y в синем канале). Это используется, чтобы получить выпуклость гарниров, помещенную в жидкость напитка.

Я сейчас ищу способ сделать это на стороне сервера генерации изображений (и, возможно, в приложении Silverlight). Я вижу способы воспроизведения всех функций приложения для генерации изображений, кроме фильтра карты смещения. Есть ли способ сделать это через элементы управления в пространстве имен Windows.Media? Если нет: есть ли другие способы?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

К сожалению, фильтры DisplacementMap отсутствуют ни в Silverlight, ни в WPF. Есть два способа, которыми вы могли бы следовать.

  1. Создайте пользовательский эффект пиксельного шейдера и внедрите в него алгоритм смещения. Пиксельные шейдеры поддерживаются как Silverligth 3.0+, так и WPF.

  2. Используйте WriteableBitmap, чтобы получить доступ к пикселям, и снова реализуйте алгоритм.

2 голосов
/ 18 февраля 2010

Для этого можно использовать пиксельный шейдер с картами нормалей.

Bump mapping в Silverlight 3 [Обновление: я заменил эту ссылку, чтобы указать на версию archive.org. К сожалению, archive.org не сохранил zip исходного кода.]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...