Irrlicht中的Texture透明色(colorkey)

假设我们要使某一24位色的Texture(不带Alpha)对应的特定颜色在render时透明,可以先调用makeColorKeyTexture创建一个 1 bit alpha channel of the texture,然后把MaterialType设为EMT_TRANSPARENT_ALPHA_CHANNEL就搞定了。废话不多说了, 请看代码:
 scene::IAnimatedMesh* meshRabbit = smgr->getMesh("../../media/mouse22.ms3d");
 scene::IAnimatedMeshSceneNode* anodeRabbit = smgr->addAnimatedMeshSceneNode(meshRabbit);
 if(anodeRabbit)
 {
  driver->setTextureCreationFlag( video::ETCF_ALWAYS_16_BIT ,true);
  irr::video::ITexture* pTexture = driver->getTexture("../../media/wenli.jpg");
  driver->makeColorKeyTexture(pTexture,  core::position2d< s32 >(300,30));
 
  anodeRabbit->setMaterialTexture(0, pTexture);
  anodeRabbit->setMaterialType( video::EMT_TRANSPARENT_ALPHA_CHANNEL  );
  anodeRabbit->setPosition(core::vector3df(70,20,-60));
  anodeRabbit->setMaterialFlag(video::EMF_LIGHTING, false);
  anodeRabbit->setRotation(core::vector3df(0,180.0f,0));
  anodeRabbit->setAnimationSpeed(25*30);
 }

当然如果Texture本身就带alpha channel的话就不需要再makeColorKeyTexture了,另外还有两种模式可以尝试: EMT_TRANSPARENT_ADD_COLOR 和  EMT_TRANSPARENT_ALPHA_CHANNEL_REF。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红火吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值