簡體   English   中英

(C#)XNA 4.0 StencilBuffer訪問

[英](C#) XNA 4.0 StencilBuffer access

當我在繪圖操作中使用StencilBuffer渲染目標時,在調試過程中有什么方法可以看到模板緩沖區包含的內容嗎? 我現在正在搜索小時,或者我丟失了一些顯而易見的東西,所以找不到找到該表的方法。

XNA 3.1中的GraphicsDevice中有一個屬性DepthStencilBuffer,但現在不存在了。 現在,我們告訴我們在創建渲染目標時是否要使用模板緩沖區,是的,但是此后如何訪問模板緩沖區,這樣我可以查看我期望的模板緩沖區中是否有值?

歡呼盧卡斯

我通常會對此發表評論,但是我沒有足夠的代表...

我建議您閱讀以下頁面: http : //blogs.msdn.com/b/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx

肖恩·哈格里夫斯(Shawn Hargreaves)解釋說,模板緩沖區的使用意義不大,可以使用產生類似性能的其他技術來完成。

該頁面的引號之一:

題:

對於深度緩沖區,情況如下:

1)深度預傳遞+對色彩通道的法線

2)其他東西...(例如AO)

3)使用之前的深度緩沖區和新的渲染目標渲染實體對象。 (還讀取諸如AO之類的內容)

4)再次使用深度緩沖區進行另一遍處理(例如,體積霧)

回答:

新API的最大限制是您不能在多個不同的渲染目標之間共享單個深度緩沖區。 但是,通常可以通過安排事情來實現這種渲染體系結構(無論如何在Windows上),以便在任何時候要重復使用深度緩沖區時,都可以繪制到相同的rendertarget。

例如,使用深度/模板來消隱光體積的經典延遲着色優化是完全可行的:您只需要安排緩沖區操作,以便將這些光累積過程完成到在渲染期間綁定到索引#0的同一渲染目標即可。初始場景渲染。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM