[提问]关于D3D的几个疑点
1.在D3D中用Sprite显示一个纹理,如果纹理被缩放或被旋转时,会产生一个杂色的边缘。这种杂色边缘有办法解决吗?2.还是D3D文字消锯齿的问题
http://www.rpgchina.net/read-htm-tid-40633.html
我想用C#制作游戏,如果用GetGlyphOutline就太难了。有没有什么别的办法能消锯齿输出文字?
我现在用的方法:
先把文字以两倍大小渲染到纹理1
然后把纹理1以1/2大小渲染到纹理2
这种方式就会问题1的效果,所以想要一种更好的渲染方式。
全局消锯齿就不要说了,因为显卡不好
3.关于合成方式:
LPD3DDEVICE9->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
LPD3DDEVICE9->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
这样是加法合成,也就是将当前渲染阶段的颜色与上一渲染阶段的颜色相加。
如果我要做减法怎么做?
4.我看见很多程序都可以在LPD3DDEVICE9->Clear的时候使用ZBUFFER,我为什么不能使用?需要开启什么吗?
以上,希望高手解答。 为啥我没有看到杂色边缘。。。还是因为 窗口黑背景 白背景的图没有代表性?不知道。
我没开深冲,zbuffer
pDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_RGBA(0, 0, 0, 255), 1.0f, 0);
也没什么问题啊。
汇报完毕 引用第1楼secondsen于2011-05-16 17:06发表的:
为啥我没有看到杂色边缘。。。还是因为 窗口黑背景 白背景的图没有代表性?不知道。
我没开深冲,zbuffer
pDevice->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_RGBA(0, 0, 0, 255), 1.0f, 0);
也没什么问题啊。
....... images/back.gif
1:杂色就是黑的,你放一张图在底下,另一张图在上面,然后把上面的图缩放或旋转就看到了
2:这个问题我也很困惑,在C++就行,到了C#就不行了 关于旋转我先上图
render部分的代码 ,关于背景色。。第十行的注释。。。另外只是旋转没有缩放,汇报完毕
void Render()
{
D3DXMATRIX g_mat;
D3DXMatrixTransformation2D(&g_mat, NULL, 0.0f, NULL ,
&D3DXVECTOR2(50.0f, 50.0f), 1.0f, &D3DXVECTOR2(100.0f, 100.0f));//旋转弧度为1
// Clear the backbuffer to a black color
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
RECT rct = {0,0,512,512};
//背景白色的那张图 其他都一样,但是 D3DCOLOR_XRGB(0,0,0), 黑变成了 D3DCOLOR_XRGB(255,255,255),白
// Begin the scene
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
if ( SUCCEEDED( g_pSprite->Begin(D3DXSPRITE_ALPHABLEND) ) )
{
g_pSprite->SetTransform(&g_mat);
g_pSprite->Draw(g_pTexture, &rct, NULL, &D3DXVECTOR3(0,0,1), 0xffffffff);
g_pSprite->End();
}
g_pd3dDevice->EndScene();
}
// Present the backbuffer contents to the display
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
}
从图上看,确实没有杂色啊 D3DXVECTOR2 vscaling(0.5,0.5);
D3DXMATRIX g_mat;
D3DXMatrixTransformation2D(&g_mat, &D3DXVECTOR2(50.0f, 50.0f), 0, &vscaling ,
&D3DXVECTOR2(50.0f, 50.0f), 1.0f, &D3DXVECTOR2(100.0f, 100.0f));
这是缩小+旋转。。也没有杂色啊 我的是没问题的。
回 4楼(secondsen) 的帖子
我说的是有一张底图和一张顶图的情况就想这样:
可以看到此图中间的人物(姑且叫他人物吧)边缘有一点白色。
人物的图片格式为png
页:
[1]