ogre shader usage

ogre shader 使用可以参考这两个说明:

http://www.ogre3d.org/forums/viewtopic.php?f=2&t=76580#p483996

http://www.ogre3d.org/tikiwiki/tiki-index.php?page=RT+Shader+System

 

自己试了一把

 

 //create scenemanager and camera
  Ogre::SceneManager* sm=rt->createSceneManager(Ogre::ST_GENERIC,"testScence");
  
  //shader
  if(Ogre::RTShader::ShaderGenerator::initialize()){

  Ogre::RTShader::ShaderGenerator* mShaderGenerator = Ogre::RTShader::ShaderGenerator::getSingletonPtr();
  mShaderGenerator->setShaderCachePath("C:\\download\\OgreSDK_vc10_v1-8-1\\media\\RTShaderLib\\cache");   
  mShaderGenerator->addSceneManager(sm);
}

 

然后将shader材质设置

 Ogre::Entity* et=sm->createEntity("robot.mesh");
  //Ogre::ResourceGroupManager::getSingleton().create
  et->setMaterial(Ogre::MaterialManager::getSingleton().getByName("RTSS/LayeredBlending"));// 这里在材质脚本中定义,文件在ogre media下shaderlib文件夹中
  Ogre::SceneNode* node=sm->getRootSceneNode()->createChildSceneNode(Ogre::Vector3(0,0,0));
  node->attachObject(et);
  node->roll(Ogre::Radian(0.9));
  node->scale(1,1,3);

运行出错,发现resource没有添加进去

 Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
   "C:\\download\\OgreSDK_vc10_v1-8-1\\media\\RTShaderLib"
   ,"FileSystem"
   ,"RTShaderLib");

     Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
   "C:\\download\\OgreSDK_vc10_v1-8-1\\media\\RTShaderLib\\materials"
   ,"FileSystem"
   ,"RTShaderLib");

加入之后运行成功,robot以前是全黄色的,现在有了条纹出来

 

 

脚本的定义

// This material demonstrates the texture blending extension.
material RTSS/LayeredBlending
{
 technique
 {
  pass
  {  
   lighting off 
   texture_unit
   {
    scale 0.1 0.1
    texture rockwall.tga
   }

   texture_unit
   {
    // RT Shader system section - required by the layered blend extension.
    rtshader_system
    {
     layered_blend luminosity
     source_modifier src1_inverse_modulate custom 2
    }
    texture ogrelogo.png
   }      
  }
 }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值