发现我的Qt OSG窗口不能显示三维物体,另外一个Qt OSG程序可以。代码看不出任何问题。查看OSG日志也没发现异常。后来把正常程序的OSG的DLL和插件复制到不正常的程序,就可以正常显示了。总结起来是OSG编译时的CMake需要如下配置:
为了使用高阶功能,我设置了OpenGL context version为3.3,选中OSG_GL3_AVAILABLE。注意:OSG_GL1_AVAILABLE也必须为true, OSG_GL_FIXED_FUNCTION_AVAILABLE必须为false。其他组合要么导致OSG编译通不过,要么导致你的程序连接错误"无法解决的外部符号 osg::Texture::getModeUsage,要么导致你的程序不能显示三维图形。正确设置后重新编译生成的Visual Studio工程,安装到你的第三方库目录,应该可以解决这个问题。
希望可以帮助别人和未来的自己。