渲染目標是用於渲染像素的顯存緩衝區。渲染目標的一個常見用途是離屏渲染。(你暫時看成與後臺緩存區類似的一塊顯存)
圖形管道有一個稱爲後臺緩衝區的默認渲染目標,它是包含要繪製的下一個幀的視頻內存的一部分。如果您的程序不創建渲染目標,並且渲染到屏幕,則默認情況下使用後臺緩衝區。(這就是不同之處)使用RenderTarget2D類創建額外的渲染目標。一種常見的情況是呈現一個或多個離屏渲染目標,並將它們組裝到後臺緩衝區中以產生最終幀。
要使用渲染目標,請使用您喜歡的寬度,高度和其他選項創建RenderTarget2D對象。調用GraphicsDevice.SetRenderTarget使渲染目標成爲當前渲染目標。你所做的任何後續的Draw調用都將繪製到渲染目標中,而不是後臺緩衝區。完成渲染後,調用GraphicsDevice.SetRenderTarget並將其傳遞給null以將設備再次渲染到後臺緩衝區。
創建渲染目標時,還需要考慮其他因素以選擇寬度和高度。例如,您應該選擇後臺緩衝區的寬度和高度以匹配遊戲窗口的大小(儘管Windows Phone和Xbox360會根據用戶的屏幕縮放最終結果)。這可以防止在將後臺緩衝區複製到屏幕時進行任何調整。但是,屏幕外渲染目標不需要與後臺緩衝區具有相同的寬度和高度。最終的圖像可以在幾個小的渲染目標中渲染,然後在更大的渲染目標中重新組合。
渲染目標具有表面格式,該格式描述向每個像素分配了多少位,以及它們如何在紅色,綠色,藍色和阿爾法之間進行劃分。例如,SurfaceFormat.Bgr565每個像素分配16位;藍色和紅色5位,綠色6位。
渲染目標與深度模板緩衝區配合工作。在創建渲染目標時,depth-stencil緩衝區的深度格式被指定爲渲染目標構造函數的參數之一。無論何時您爲設備設置新的渲染目標,匹配深度緩衝區也會設置到設備。