查看: 719|回复: 2

求助!为何无法使用polygonmode改变下面模型的显示模式?

[复制链接]

该用户从未签到

发表于 2017-8-7 17:10:23 | 显示全部楼层 |阅读模式
我用以下代码加载模型church.osg时,显示的是线框模型
osgViewer::Viewer viewer;
       
  1. //load data
  2.         osg::ref_ptr<osg::Group> root = new osg::Group;
  3.         osg::ref_ptr<osg::Node> church = osgDB::readNodeFile("church.osg");

  4.         //display
  5.         root->addChild(church.get());

  6.         viewer.setSceneData(root.get());
  7.         return viewer.run();
复制代码

我想用以下代码将其改成填充的多边形模式,但是不知为何没有效果???还请哪位高手指点一下,模型在附件中
  1. //set state
  2.         osg::StateSet* stateChurch = church->getOrCreateStateSet();
  3.         osg::ref_ptr<osg::PolygonMode> polygonMode = new osg::PolygonMode(
  4.                 osg::PolygonMode::FRONT, osg::PolygonMode::FILL);
  5.         stateChurch->setAttributeAndModes(polygonMode);
复制代码

church.zip

989.26 KB, 下载次数: 8, 下载积分: 威望 1

解压后为church.osg

该用户从未签到

 楼主| 发表于 2017-8-7 17:21:52 | 显示全部楼层
刚刚自己又试了一下,发现未设置polygonmode时,church.osg的显示模型又变成了多边形填充模式,明明之前死活都不行的 ><。。。。。

该用户从未签到

发表于 2017-8-8 15:35:06 | 显示全部楼层
在设置模型StateAttribute时,采用 OVERRIDE | ON 模式且子节点中无 PROTECTED 状态的相同Attribute时,方能确保本次设置生效,但是你说的这种情况还比较奇怪...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表