1

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

 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();

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

4

1 回答 1

1

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

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

ALPHABLENDENABLE = TRUE
SRCBLEND = SRCALPHA
DESTBLEND = INVSRCALPHA

ALPHATESTENABLE = TRUE
ALPHAREF = 192
ALPHAFUNC = GREATER
于 2009-12-28T20:26:51.727 回答