我試圖繪製場景的深度圖。 現在,我製作了一個如下所示的HLSL文件:http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series3/Shadow_map.php 而且一切都很順利。然而!我想找出每個像素的確切值,所以我沒有繪製正常的渲染目標,而是創建了一個新的渲染目標,它是一個Texture2D,如:http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series3/Render_to_texture.php 然後我使用spritebatch繪製它。XNA深度圖重疊區域顏色
然後!當我顯示圖像中,第一,也就是,一個直接繪製到屏幕給出了這樣的輸出:
並繪製到紋理然後於使用子畫面屏幕上的一個給這樣的:
請注意,在第二次捕獲時,身體右臂明顯位於身體後方,如同身體不存在於重疊區域那樣繪製。
我認爲,它是一個排序問題,因爲前面的頂點首先被繪製到紋理,然後更遠的覆蓋更接近的結果,從而導致觀察圖像。
我將不勝感激任何輸入。
+1:完全同意。在這種情況下,我通常在調用'SpriteBatch.Begin()'調用之前放置一個斷點,然後檢查'DepthStencilState','BlendState'和'RasterizerState',然後在'SpriteBatch.End()'調用之後全部重置它們。 – 2012-02-29 10:42:34
工程就像一個魅力! – 2012-02-29 18:39:47