C#Direct3D用Sprite实现透明贴图

    最近在学习C#下Direct3D编程,想自己做一个Direct3D下的控件,网上搜罗了一些漂亮的控件的图片,开始制作。

    过程中发现在渲染时,用Sprite.Draw方法进行贴图时图片的背景无法实现透明,非常难看,查了很多资料,都不能解决。后来自己做了一个加载位图的功能,终于解决了,这里记录下来,防止以后忘了。

    先说一下利用Sprite.Draw方法的用法:

    Sprite.Draw(Texture srcTexture, Rectangle srcRect, Vector3 center, Vector3 position, Color color);

    其中:

    srcTexture   ——   待贴图的纹理,图片加载到texture中后显示出来

    srcRect       ——   待贴图纹理的矩形区域,可以通过设置该参数将纹理的部分区域显示出来

    center         ——   Sprite的中心位置

    position       ——   纹理贴在Sprite上的位置

    color           ——   纹理的显示色彩比例

    注意到这个方法中有两个Vector3的参数,一个是center,一个是position,到底有什么区别呢?通过测试,发现center参数类似于Cursor的HotPot,而position相当于MousePosition。两个参数结合起来就表示将Sprite的center对准屏幕的position进行贴图。这个功能对于控件的制作非常有用,例如父控件的位置在Position parentPos,子控件相对于父控件的位置是Position childPos,对子控件进行贴图的时候只要

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值