作者QHsin (Q馨)
看板GameDesign
标题[程式] 请教DX10 Sprite 和 反锯齿 问题
时间Tue Sep 20 11:11:13 2011
请教以下两个问题,上网找了很久一直找不到解答
问题一.
处理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)
1F:推 teexit:看了你写的1-6 不知道是不是function没写完整 09/27 14:06
2F:→ teexit:刚刚稍微看了一下,你试试看用下面方式做 09/27 14:07
3F:→ teexit:方法1: sprite->Begin... sprite->DrawSpritesBuffered... 09/27 14:08
4F:→ teexit:sprite->Flush...sprite->End... 这样做完就会画在BackBuf 09/27 14:08
5F:→ teexit:再用SwapChain->Presen Flip到Screen就好了 09/27 14:09
6F:→ teexit:方法2: sprite->Begin... sprite->DrawSpriteImmediate... 09/27 14:10
7F:→ teexit:sprite->End... SwapChain->Presen... 这两个方法 09/27 14:10
8F:→ teexit:至於AA的部分...请看一下SDK吧 搜寻MSAA 09/27 14:11
9F:→ teexit:要不然最近还有一种热门方法MLAA 09/27 14:16
11F:→ teexit:COST来的低,下面有SOURCE CODE也可以直接使用 注意他的 09/27 14:16
12F:→ teexit:License 09/27 14:17
13F:→ QHsin:哦哦,感谢teexit大的说明,我回去再研究看看,感谢 09/27 15:22