我目前正在使用SharpDX處理Windows混合現實應用程序,從另一個VR應用程序平臺轉換。在Mixed Reality上,API要求用戶繪製一個提供的後臺緩衝區,該緩衝區是一個大小爲2的Texture2D數組(每個眼睛一個元素),但VR框架要求用戶繪製兩個手動提交的獨立紋理。在SharpDX中,我如何從Texture2D數組中繪製單個Texture2D?
我希望能夠將該陣列中的每個單獨紋理元素作爲獨立的Texture2D提取出來,以便我的VR後端仍然可以像平常一樣繪製這些紋理。混合現實示例應用程序在此方向上不提供任何幫助,因爲它使用實例化繪製調用一次繪製兩個紋理。是否有可能在DirectX中獲得對單個紋理的引用,還是必須更改我的後端以使用該數組?
編輯:根據文檔,我發現RenderTargetViews似乎呈現到一個資源,就好像它是一個不同的資源,包括渲染到陣列切片,就好像它是一個單一的紋理的方式。然而,當我創建兩個渲染這種格式
RenderTargetView l_target_view = new RenderTargetView(cameraBackBuffer.Device, cameraBackBuffer, new RenderTargetViewDescription()
{
Format = (SharpDX.DXGI.Format)parameters.Direct3D11BackBuffer.Description.Format,
Dimension = RenderTargetViewDimension.Texture2D,
Texture2DArray = new RenderTargetViewDescription.Texture2DArrayResource()
{
ArraySize = 1,
FirstArraySlice = 0
}
});
RenderTargetView r_target_view = new RenderTargetView(cameraBackBuffer.Device, cameraBackBuffer, new RenderTargetViewDescription()
{
Format = (SharpDX.DXGI.Format)parameters.Direct3D11BackBuffer.Description.Format,
Dimension = RenderTargetViewDimension.Texture2D,
Texture2DArray = new RenderTargetViewDescription.Texture2DArrayResource()
{
ArraySize = 1,
FirstArraySlice = 1
}
});
操作上的兩個目標對象的意見,僅應用於第一個。
This Works!謝謝! – TheHansinator