我需要显示圆形图像的纹理,我的代码如下
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();
但它总是显示矩形纹理,如何将这个纹理剪裁成圆形。
答案 0 :(得分:1)
使用纹理的alpha通道(255是不透明的,0是透明的,2之间的任何东西),并设置alpha混合和alpha测试,以便不绘制透明像素。
编辑:(一旦设置了4通道纹理,请尝试这些alpha设置。)
ALPHABLENDENABLE = TRUE
SRCBLEND = SRCALPHA
DESTBLEND = INVSRCALPHA
ALPHATESTENABLE = TRUE
ALPHAREF = 192
ALPHAFUNC = GREATER