[程式] 請教DX10 Sprite 和 反鋸齒 問題

看板GameDesign作者 (Q馨)時間14年前 (2011/09/20 11:11), 編輯推噓1(1012)
留言13則, 2人參與, 最新討論串1/1
請教以下兩個問題,上網找了很久一直找不到解答 問題一. 處理2D貼圖的時候使用了ID3DX10Sprite,但卻一直搞不懂一些細節的作用機制。 我想在2D貼圖貼完之後再做其他處理,於是做了以下的事情。 1.pSprite->Begin(0); 2.pSprite->DrawSpritesBuffered(XX, 5); 3.pSprite->Flush(); 4.pSprite->End(); //將backbuffer儲存成檔案的函式 5.GO.SaveTexture(myD3D.GetBackBuffer(),L"D:\\bbbb.png"); 6.pSwapChain->Present(0, 0); 預期應該bbbb.png是圖A:http://i.imgur.com/w3OVj.png
卻跑出圖B:http://i.imgur.com/18r5H.png
意思是說,Sprite是在6.的時候才會作用完畢嗎? 又,在2.和3.間加入一個輸出文字的函式pD3DXFont->DrawText(pSprite,xxxxxxx) 好像又會強制pSprite貼出圖片至backbuffer,得到預期的結果圖A, 目前就暫時只能用這招偷吃步,不然很多效果做不出來,不知道是否有正確的做法? 問題二. 這可能是個笨問題:『DX10要怎麼開反鋸齒』 這我真的查了很久,卻找不到完整的範例。 看到說要調 rasterDesc.AntialiasedLineEnable = true; rasterDesc.MultisampleEnable = true; 但只調這個沒效果出來, 又調整pSwapChain的SampleDesc.Count和SampleDesc.Quality,結果就出錯。 不知道有沒有這部分詳細說明,還請大家幫忙。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.137.184 ※ 編輯: QHsin 來自: 123.194.137.184 (09/20 11:15)

09/27 14:06, , 1F
看了你寫的1-6 不知道是不是function沒寫完整
09/27 14:06, 1F

09/27 14:07, , 2F
剛剛稍微看了一下,你試試看用下面方式做
09/27 14:07, 2F

09/27 14:08, , 3F
方法1: sprite->Begin... sprite->DrawSpritesBuffered...
09/27 14:08, 3F

09/27 14:08, , 4F
sprite->Flush...sprite->End... 這樣做完就會畫在BackBuf
09/27 14:08, 4F

09/27 14:09, , 5F
再用SwapChain->Presen Flip到Screen就好了
09/27 14:09, 5F

09/27 14:10, , 6F
方法2: sprite->Begin... sprite->DrawSpriteImmediate...
09/27 14:10, 6F

09/27 14:10, , 7F
sprite->End... SwapChain->Presen... 這兩個方法
09/27 14:10, 7F

09/27 14:11, , 8F
至於AA的部分...請看一下SDK吧 搜尋MSAA
09/27 14:11, 8F

09/27 14:16, , 9F
要不然最近還有一種熱門方法MLAA
09/27 14:16, 9F

09/27 14:16, , 10F
http://www.iryoku.com/mlaa/ 目前遊戲業很受歡迎 比MSAA
09/27 14:16, 10F

09/27 14:16, , 11F
COST來的低,下面有SOURCE CODE也可以直接使用 注意他的
09/27 14:16, 11F

09/27 14:17, , 12F
License
09/27 14:17, 12F

09/27 15:22, , 13F
哦哦,感謝teexit大的說明,我回去再研究看看,感謝
09/27 15:22, 13F
文章代碼(AID): #1EU0HJ3K (GameDesign)