看板 GameDesign 關於我們 聯絡資訊
請教以下兩個問題,上網找了很久一直找不到解答 問題一. 處理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)
teexit:看了你寫的1-6 不知道是不是function沒寫完整 09/27 14:06
teexit:剛剛稍微看了一下,你試試看用下面方式做 09/27 14:07
teexit:方法1: sprite->Begin... sprite->DrawSpritesBuffered... 09/27 14:08
teexit:sprite->Flush...sprite->End... 這樣做完就會畫在BackBuf 09/27 14:08
teexit:再用SwapChain->Presen Flip到Screen就好了 09/27 14:09
teexit:方法2: sprite->Begin... sprite->DrawSpriteImmediate... 09/27 14:10
teexit:sprite->End... SwapChain->Presen... 這兩個方法 09/27 14:10
teexit:至於AA的部分...請看一下SDK吧 搜尋MSAA 09/27 14:11
teexit:要不然最近還有一種熱門方法MLAA 09/27 14:16
teexit:http://www.iryoku.com/mlaa/ 目前遊戲業很受歡迎 比MSAA 09/27 14:16
teexit:COST來的低,下面有SOURCE CODE也可以直接使用 注意他的 09/27 14:16
teexit:License 09/27 14:17
QHsin:哦哦,感謝teexit大的說明,我回去再研究看看,感謝 09/27 15:22