查看: 2126|回复: 6

osg::Material问题?

[复制链接]

该用户从未签到

发表于 2010-12-4 13:37:27 | 显示全部楼层 |阅读模式


osg::ref_ptr material = new osg::Material();

material->setAmbient(osg::Material::FRONT_AND_BACK,osg::Vec4(1,1,1,1));
material->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(1,1,1,1));
material->setSpecular(osg::Material::FRONT_AND_BACK,osg::Vec4(0,0,0,1));
geom->getOrCreateStateSet()->setAttributeAndModes(material.get(),osg::StateAttribute::ON);

geom->getOrCreateStateSet()->setMode(GL_LIGHTING,osg::StateAttribute::OFF);(2010-12-04 11:56:53)

如果GL_LIGHTING设为OFF那么material还有用吗,为什么不设material会导致场景有时变暗,有时正常?

该用户从未签到

发表于 2010-12-6 10:12:08 | 显示全部楼层
这些您可以在任何OpenGL的读物中找到答案,Material就是glMaterial而已

该用户从未签到

 楼主| 发表于 2010-12-7 09:22:29 | 显示全部楼层
material属性必须每个Drawable都设吗?
可不可以设置在更高级别的位置

该用户从未签到

发表于 2010-12-7 09:31:21 | 显示全部楼层
不必。
material是stateset的成员
stateset是node的成员。
可以。

该用户从未签到

发表于 2010-12-7 12:39:36 | 显示全部楼层
可以设置在任何节点或Drawable级别

该用户从未签到

 楼主| 发表于 2010-12-8 08:46:03 | 显示全部楼层
好的,谢谢
我试的结果是设在场景的根节点上Drawable级别不能继承

但GL_LIGHTING,,CULL可以继承

该用户从未签到

发表于 2010-12-9 08:24:48 | 显示全部楼层
“我试的结果是设在场景的根节点上Drawable级别不能继承”,我不认为是这样,您的测试方法应该有误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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