我對DirectX 10中的消除鋸齒需要完成的過程感到困惑。我之前根本沒有這樣做,所以它可能只是因爲我一般程序混淆。DirectX中多重採樣的操作順序10
以下是目前爲止我所知道的(或者我認爲我知道的):您需要爲您在着色器中使用的RasterizerState對象啓用多重採樣,並且需要將交換鏈描述中的SampleDesc(DXGI_SWAP_CHAIN_DESC)設置爲計數的支持值(並且質量應該保持爲0,因爲其他值或特定於硬件 - 儘管我不知道爲什麼)。在準備進行更多繪製(ClearRenderTargetView和IASetInputLayout)和調用Present之間的調用之間,應該對後緩衝區進行縮減採樣(通過ResolveSubresource),使其具有相同大小的紋理。然後,(這是我找不到任何東西的部分)以某種方式呈現下采樣紋理。
我在路上有東西搞砸了嗎?或者我只是誤會了最後一步?我看到一些資源指的是在最後一次繪製具有多重採樣着色器紋理(Texture2DMS <>)的全屏幕四邊形期間執行採樣分辨率,但是無法弄清楚會發生什麼,或者你爲什麼要這樣做設備調用來解決這個問題。
我在此做出的任何嘗試都不會增加圖像質量。
他將在Direct3D 10中使用D3D11_RENDER_TARGET_VIEW_DESC? – Puppy
這是一個很晚的答覆,因爲我一直非常忙碌,但我真的很感激這個幫助。 我似乎無法得到它的工作(即使將D3D11更改爲D3D10),我不知道爲什麼 - 你有一個深度模具啓用了嗎?我不是在執行通常的3D場景,而是在調用OMSetRenderTargets時使用NULL,而不是僅禁用深度緩衝。 – emandrawkcab
此外,我一直是一個潛伏者很長一段時間,從未發佈到現在,對不起,我不能upvote你的答案! – emandrawkcab