(C #) XNA 4.0 StencilBuffer доступ - PullRequest
       26

(C #) XNA 4.0 StencilBuffer доступ

1 голос
/ 16 января 2012

Когда я использую StencilBuffer во время операций рисования для рендеринга целей, могу ли я каким-либо образом увидеть во время отладки, что содержит буфер трафарета? Я сейчас ищу часы, и либо я упускаю что-то совершенно очевидное, я не могу найти способ просмотреть эту таблицу.

В GraphicsDevice в XNA 3.1 было свойство DepthStencilBuffer, но его больше нет. Теперь мы говорим, хотим ли мы использовать буфер трафарета при создании целей рендеринга, да, но как я могу получить доступ к буферу трафарета после этого, чтобы я мог видеть, есть ли у меня значения в буфере трафарета, которые я ожидаю?

веселит Lucas

1 Ответ

0 голосов
/ 17 января 2012

Я бы обычно оставлял комментарий к этому, но у меня пока недостаточно репов ...

Я бы рекомендовал прочитать эту страницу: http://blogs.msdn.com/b/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx

Шон Харгривз объясняет, что использование буфера трафарета незначительно и может быть выполнено с использованием других методов, которые дают аналогичную производительность.

Одна из цитат с этой страницы:

Вопрос:

Для буферов глубины, как насчет ситуации, такой как:

1) Предварительный проход глубины + нормали к цветному каналу

2) другие вещи ... (например, АО)

3) рендеринг твердых объектов с использованием буфера глубины до и новой цели рендеринга. (также читает такие вещи, как АО)

4) снова использовать буфер глубины для другого прохода (например, объемный туман)

Ответ:

Самое большое ограничение нового API - то, что вы не можете совместно использовать один буфер глубины для нескольких различных целей рендеринга. Однако, как правило, можно добиться такого рода архитектуры рендеринга (в любом случае в Windows), просто упорядочив вещи так, чтобы в любой момент, когда вы захотите повторно использовать буфер глубины, вы рисуете к одной и той же цели рендеринга.

Например, классическая оптимизация отложенного затенения с использованием глубины / трафарета для отбраковки световых объемов вполне выполнима: вам просто нужно упорядочить операции буфера так, чтобы эти проходы накопления света выполнялись в той же цели рендеринга, которая была привязана к индексу # 0 во время начального рендеринга сцены.

...