如何剪裁圆形纹理

时间:2009-12-28 13:34:24

标签: directx sprite textures

我需要显示圆形图像的纹理,我的代码如下

 texture = Texture.FromBitmap(device,myBitmap, Usage.RenderTarget, Pool.Default);

_sprite.Begin(SpriteFlags.SortTexture | SpriteFlags.DoNotModifyRenderState);   _sprite.Draw(_allocator.Texture,Vector3.Empty,new Vector3(_objectLocation.X,_objectLocation.Y,0),RenderingColor);   _sprite.End();

但它总是显示矩形纹理,如何将这个纹理剪裁成圆形。

1 个答案:

答案 0 :(得分:1)

使用纹理的alpha通道(255是不透明的,0是透明的,2之间的任何东西),并设置alpha混合和alpha测试,以便不绘制透明像素。

编辑:(一旦设置了4通道纹理,请尝试这些alpha设置。)

ALPHABLENDENABLE = TRUE
SRCBLEND = SRCALPHA
DESTBLEND = INVSRCALPHA

ALPHATESTENABLE = TRUE
ALPHAREF = 192
ALPHAFUNC = GREATER