DirectX Реализация Мод Перехода - PullRequest
0 голосов
/ 09 ноября 2011

Мне нужна помощь в реализации MOD перехода в DirectX. Доступны две текстуры, на которых происходит переход. Сначала я думал об использовании пиксельных шейдеров, но не смог продолжить.

Подробности перехода MOD можно найти по ссылке ниже: http://www.stone.com/iMaginator/Manual/Mod.html

Любые предложения о подходе будут оценены.

1 Ответ

0 голосов
/ 10 ноября 2011

Поскольку мои знания о шейдерах Directx ограничены (я не касался Direct X в течение 2 лет), я могу привести только пример того, как я бы реализовал это в opengl.

Я бы настроил 3текстуры.Первое - это фоновое изображение, второе - это изображение на переднем плане (то, в которое будут вставлены отверстия), а третье - это изображение маски, которое имеет только два цвета (черный и белый).Затем я бы нарисовал фоновое изображение с первым проходом в качестве полноэкранного четырехугольника.Затем я бы нарисовал еще один полноэкранный квад с двумя оставшимися текстурами (изображение на переднем плане + маска).

В пиксельных шейдерах opengl есть команда discard, которая позволяет вам отбрасывать пиксель.Все, что вам нужно сделать, это сэмплировать две текстуры во втором шейдере, и если пиксель маски белый, отбросить пиксель (таким образом раскрывая фон), а если он черный, отобразить пиксель текстуры (из изображения переднего плана).

После того, как цикл рендеринга завершен, нужно всего лишь изменить текстуру маски на стороне процессора, используя некоторый алгоритм, который постепенно делает все больше и больше текстуры маски белым.

Если шейдеры DirectX имеют что-то похожее на команду сброса, возможно, вы сможете заставить это работать.Надеюсь, это поможет.

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