问题
解决方法
https://github.com/openscenegraph/osgQt/issues/36
// 继承osgQOpenGLWidget,重写sizeHint()函数
class MyosgQOpenGLWidget : public osgQOpenGLWidget{
public:
explicit MyosgQOpenGLWidget(QWidget* parent = nullptr);
public:
QSize sizeHint() const override;
};
// 【非常关键】设置相机的投影矩阵
auto *osgWidget = new MyosgQOpenGLWidget();
// 此处可将osgWidget添加到某个界面窗口中,省略
connect(osgWidget, &osgQOpenGLWidget::initialized, [=]() {
auto *viewer = osgWidget->getOsgViewer();
// 【非常关键】设置相机的投影矩阵
QSize size = osgWidget->sizeHint();
float aspectRatio = static_cast<float>(size.width()) / static_cast<float>( size.height());
viewer->getCamera()->setProjectionMatrixAsPerspective(30.f, aspectRatio, 1.f, 1000.f);
});