zoukankan      html  css  js  c++  java
  • [原创]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。
     
     
  • 相关阅读:
    unittest_assert断言(4)
    unittest_skip跳过用例执行(3)
    unittest_TestSuite测试套件(2)
    unittest_认识unittest(1)
    Selenium_POM架构(17)
    【转】HTML基本代码
    cursor 鼠标样式的几种样式
    【笔记】在json-lib中如何不序列化某些字段
    关于Ext的一些使用心得
    GIT
  • 原文地址:https://www.cnblogs.com/flysnow/p/457828.html
Copyright © 2011-2022 走看看