|
我在测试一个程序的时候,有这样一段代码- osg::Camera* camera = new osg::Camera;
- camera->setProjectionMatrix(osg::Matrix::ortho2D(-1.5, 17.75, -1.5, 13.86));
- camera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
- camera->setClearMask(GL_DEPTH_BUFFER_BIT);
- camera->setRenderOrder(osg::Camera::POST_RENDER);
- camera->setUpdateCallback(new AxisCameraUpdateCallback());
- osg::Node* axes = osgDB::readNodeFile("axes.osg");
- camera->addChild(axes);
- return camera;
复制代码 运行效果如图所示:
,但我改变osg::Matrix:rtho2D(-1.5, 17.75, -1.5, 13.86)里的数值的时候xyz轴的位置会发生移动。我想问一下ortho2d里数值是怎么确定的?顺便问一下ortho,ortho2d,frustum,perspective的区别,lookat如何设置?osg与opengl里对应的函数意思是一样的吗?谢谢 |
|