CG橙子精彩导航: CG橙子搜索引擎 | 博客 | 动画视频
广告|项目|培训|竞价排名  
86CG > CG教程 > 虚拟现实 > Multigen > Creator之Switch节点运用入门

Creator之Switch节点运用入门

类型:整理 | 来自:86CG | 时间:2007-11-29 |  点击:

  Creator中的Switch节点用于控制其子节点的显示状态,具体来说就是子节点是否被渲染。
打开Switch节点属性面版可以看到,一些竖条,每一条按照顺序对应一个相应的子节点,白色表示显示该子节点,蓝色表示不显示该子节点,我们可以设置任意组合来进行控制,每一种组合都对应一个唯一的掩码索引号:0, 1,2,3……n

  这样我们就可以在Vega中通过程序来控制采用哪种组合方式来显示该组节点对应的模型,比如我们可以将一个建筑的多个组成部分用Switch节点的方式来进行组合显示,或者为模型制作在不同的状态下的样子,然后再程序中根据实际情况来判断显示哪种状态,等等等等。

  下面是一段简单的代码,用来控制Switch节点,假设模型对象中包含一个名为“mysw”的Switch节点:


#include
#include
#include
#include

pfSwitch* findSwitchInObj(vgObject *obj, char *swname);  // 用于获取模型对象中的Swtich节点指针

main (int argc, char* argv[])
{
vgWindow *win;
vgObject *obj;
pfSwitch *sw;
if (argc!=2)
{
printf( "Usage: %s ", argv[0] );
    exit( -1 );
    }
vgInitSys();
vgDefineSys(argv[1]);
vgConfigSys();
win = vgGetWin(0);
obj = vgGetObj(0);
sw = findSwitchInObj(obj, "mysw");
while (1)
{
  vgSyncFrame();
  vgFrame();
  
  switch(vgGetWinKey(win))
  {
  case '1':
   pfSwitchVal(sw, 0);
   break;
  case '2':
   pfSwitchVal(sw, 1);
   break;
  case '3':
   pfSwitchVal(sw, 2);
   break;
    ……
  default:
   break;
  }
}
}
pfSwitch* findSwitchInObj(vgObject *obj, char *swName)
{
pfSwitch *swNode = NULL;
pfNode *node = NULL;
if (obj == NULL)
  return NULL;
node = vgGetObjPfNode(obj);
if (node == NULL)
  return NULL;
swNode = (pfSwitch *)pfFindNode( node, swName, pfGetSwitchClassType());
return swNode;
}

 

 

(完)
可打印版本 | 文章评论 | 我来纠错

|网友评论

    笔名:

    内容:

        

    iPad售楼系统软件

    国内最好的全景漫游软件任我游

    iHouse售楼系统软件

    谁都可以轻松开发APP(HTML5APP)

    全景视频3D视频视景360

    HTML5移动平台iOS/Android解决方案

    强大的地图引擎ZoomMap

    环物浏览器Object360

    |热点关注

    关于我们 - 版权隐私 - 友情链接 - 广告服务 - 项目合作 - 网站地图 - 联系方式

    ©Copyright by 86CG.COM, 2006-2013. All rights reserved 京ICP备06059503号