查看: 1647|回复: 5

请教,多相机光照方向的问题

[复制链接]

该用户从未签到

发表于 2012-12-1 09:57:56 | 显示全部楼层 |阅读模式
我想在场景包含物体A、B,A上有个相机C。希望在视图中添加一个子窗口表现C拍摄到的动态图像。


遇到两个问题:
1)感觉应该将C作为A的子节点,但又需要在C中显示A(即A又需要作为C的子节点),这样设置的话不能运行。
我现在是这么实现的。场景树
SC->(AB)
root->C->SC
root->scene->SC
在C的回调中计算A的模型转换矩阵,并设置C的View矩阵实现C跟随A。
这个方法虽然实现了跟随,但是总感觉很不自然,是否有更好的办法实现。

2)上述方法中,相机窗口的光照不对(在旋转主场景时,相机C、A和光线的相对位置位置未变,但A的颜色有明显变化),
初步分析原因可能是: C相机中的光照计算是按照主窗口相机方向计算的。应该如何解决?

恳请各位老大帮忙,先谢过了

该用户从未签到

发表于 2012-12-3 08:43:53 | 显示全部楼层
C作为跟A平级的节点也可以,就是共享子树

该用户从未签到

 楼主| 发表于 2012-12-22 23:24:05 | 显示全部楼层
谢谢回复。
我现在的问题主要是相机C中图像的光照不正常,似乎是根据场景主相机的方向计算光照的。
例如:在旋转主场景时,相机C相对于AB以及光源的位置不变,但相机C图像亮度有明显变化。
禁用光照可一定程度上解决,但由于无光照图像不真实。不知道如何解决。

该用户从未签到

发表于 2012-12-24 08:14:34 | 显示全部楼层
那只有自己添加固定光源了

该用户从未签到

 楼主| 发表于 2013-1-8 23:46:28 | 显示全部楼层
谢谢老大。添加固定光源,一定程度上解决题,只是实现有点麻烦。
实际上我就是想实现同一个窗口中有两个独立的视图从不同的方向观察模型。现在能想到的办法:(1)hud相机,小窗口光照不对;(2)osgcompositeviewer实现,但窗口好像无法动态创建或撤销,不满足要求;(3)采用QT等外部界面库实现一个独立的子窗口,缺点是需要依赖外部界面库,目前还没有试。
怎样实现比较好,还有没有其他实现办法,还请各位老大指点。

该用户从未签到

发表于 2013-1-9 07:55:22 | 显示全部楼层
(1)slavecamera (2)osgcompositeviewer可以动态创建或增加 (3)跟qt没关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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