Показать сообщение отдельно
Старый 13.12.2010, 22:19   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы по Xna

Порядок такой:
  • Cоздать экземпляр класса FullScreenQuad который я дал.
  • Установить эффект (шейдер) текущим.
  • Установить P0 текущим пассом.
  • У экземпляра класса FullScreenQuad вызывать Draw.
  • Закрыть пасс.
  • Закрыть эффект.

Только проблема в том, что шейдер твой инвертирует цвет рисуемого квада (т.е. цвет его вершин). И результат наверно будет черный экран.
Чтобы тебе сделать постобработку, тебе надо в шейдер передать текстуру и инвертировать ее цвет в пиксельном шейдере и уш точно не в вершинном. Т.е. сцену надо рендерить в текстуру. А потом ее использовать.

Досмотри уроки, там есть постобработка в виде подсветки лампочек на модели.


В итоге должно получиться что-то вроде:
  • Ставим текстуру целью визуализации
  • Рендерим сцену в текстуру
  • Ставим целью визуализации экран
  • Cоздать экземпляр класса FullScreenQuad который я дал (можно где-то один раз как SpriteBatch).
  • Установить эффекту текстуру сцены.
  • Установить эффект (шейдер) текущим.
  • Установить P0 текущим пассом.
  • У экземпляра класса FullScreenQuad вызывать Draw.
  • Закрыть пасс.
  • Закрыть эффект.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
den (13.12.2010), moka (02.01.2011)