查看: 1786|回复: 8

求教关于光照的问题

[复制链接]

该用户从未签到

发表于 2010-9-6 23:05:13 | 显示全部楼层 |阅读模式
我在场景中加入一个大的隧道模型,隧道里同时有人物模型在移动,可以控制视点在隧道里漫游。现在的问题是:视点在隧道里漫游时候,隧道内部看起来很暗;而当人物模型移动到的隧道位置处很明亮,由人物模型发散出的。

该用户从未签到

 楼主| 发表于 2010-9-6 23:09:16 | 显示全部楼层
想让整个隧道都是通亮的 请问 如何实现

该用户从未签到

发表于 2010-9-7 09:14:49 | 显示全部楼层
这是否是您对于光照和材质的设置不当引起的?或者您可以通过着色器来实现更加精确和真实的光照效果

该用户从未签到

 楼主| 发表于 2010-9-7 15:06:44 | 显示全部楼层
3# array
我是参照 肖鹏的书 和例子osglight 的代码 来设置光照 和  材质的啊,还是没有找到问题所在,困惑中~~~

该用户从未签到

 楼主| 发表于 2010-9-8 15:58:06 | 显示全部楼层
3# array
请教array:
我把隧道模型 和 人物 模型 均加入到 root节点下,对隧道模型 参造肖鹏的书 作了 光照处理 ,而对人物 未作 任何 处理,如下:

osg::ref_ptr<osg::Group> root = new osg::Group;

root->addChild(createLightForModel(model));//对model设置材质,光照,如肖鹏书上的简单光照的那个例子

osg::Node* man = osgDB::readNodeFile("robot.osg");
{
。。。。。。。。。。。。。。。对人物模型的回调处理

pat->addChild(createPositionAttitudeTransform(x,y,z,man));

pat->setUpdateCallback(new AgentsCallback(i,x,y,z));


root->addChild(pat.get());
}
viewer.setSceneData( root.get() );


如最初所说 的问题:隧道很暗,当人物移动到时会变亮;
现在我把加载人物模型的代码注释掉的时候,隧道就符合createLightForModel(model)所设置的光照效果?
求教,未对人物模型 做任何 材质 光照 处理 ,加载的是 osg自带的那个robot.osg模型??

该用户从未签到

 楼主| 发表于 2010-9-8 16:00:17 | 显示全部楼层
如何设置,才能让加载人物模型后,隧道也能达到所设置的效果

该用户从未签到

发表于 2010-9-8 17:15:20 | 显示全部楼层
robot.osg使用了自己的LightModel,这会影响到整个场景,您可以尝试用一个其它的模型来试验

该用户从未签到

 楼主| 发表于 2010-9-8 23:30:59 | 显示全部楼层
7# array

该用户从未签到

 楼主| 发表于 2010-9-8 23:31:48 | 显示全部楼层
7# array

是的,我随便画了个 drawable 就不影响 光照了 ,多谢多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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