查看: 954|回复: 0

球体上水面绘制

[复制链接]

该用户从未签到

发表于 2015-5-23 16:19:30 | 显示全部楼层 |阅读模式
请教:我在球体上绘制了一个水面,然后使用shader添加上倒影,但是倒影的位置和方向都是错的,请问是什么原因?

图1

图1

图2

图2

上图中,图1显示的是模型加载到球体上,没有经过矩阵变换,模型的方位错误的情况下,倒影到是对的。
图2中模型加载到球体上,在经过矩阵变换后,模型位置和方位正确,但是倒影错误。
请教倒影错误的原因什么?是与模型矩阵变换有关?如何设置?下面是将模型添加到RTT相机下作为反射的源码。

        //height 水面高度
        osg::ClipPlane* clipplane = new osg::ClipPlane;
        clipplane->setClipPlane(0.0,0.0,-1.0,height);
        clipplane->setClipPlaneNum(0);

        osg::ClipNode* clipNode = new osg::ClipNode;
        clipNode->addClipPlane(clipplane);

        osg::MatrixTransform* reverseMatrix = new osg::MatrixTransform;
        reverseMatrix->preMult(osg::Matrix::translate(0.0,0.0,-height)*
                                                        osg::Matrix::scale(1.0f,1.0f,-1.0f)*
                                                        osg::Matrix::translate(0.0,0.0,height));
        reverseMatrix->addChild(pRefNode);

        clipNode->addChild(reverseMatrix);
        m_pWaterCamera->addChild(clipNode);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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