win11:x64 cmake:3.23.0
osg 通过cmake 将 OSG_GL3_AVAILABLE 设置为true后,编译的程序无输出
官方回答:GL3 core profile does not supoort fixed function pipeline so can't render all scenes. You have to just use scene graphs built for shaders.
操作:
增加以下代码
viewer.setUpViewInWindow(-1920, 0, 1000, 1000);
viewer.getCamera()->getGraphicsContext()->getState()->setUseModelViewAndProjectionUniforms(true);
viewer.getCamera()->getGraphicsContext()->getState()->setUseVertexAttributeAliasing(true);
但部分机器上仍有问题,显示不出图片,模型可以正常显示,控制台疯狂刷屏
Warning: detected OpenGL error 'invalid enumerant' after applying attribute Material 0000020C0D462A60
Warning: detected OpenGL error 'invalid operation' after applying attribute LightModel 0000020C083AB430
Warning: detected OpenGL error 'invalid operation' at start of State::apply(StateSet*)
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0xde1
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0xb50
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0x4000
Warning: detected OpenGL error 'invalid operation' after applying attribute Material 0000020C05F5B170
Warning: detected OpenGL error 'invalid operation' after applying attribute LightModel 0000020C05F582D0
Warning: detected OpenGL error 'invalid enumerant' at end of Geometry::drawImplementation().
Warning: detected OpenGL error 'invalid operation' at start of State::apply(StateSet*)
Warning: detected OpenGL error 'invalid enumerant' at end of Geometry::drawImplementation().
Warning: detected OpenGL error 'invalid operation' at start of State::apply(StateSet*)
Warning: detected OpenGL error 'invalid enumerant' at end of Geometry::drawImplementation().
Warning: detected OpenGL error 'invalid operation' at start of State::apply(StateSet*)
Warning: detected OpenGL error 'invalid enumerant' at end of Geometry::drawImplementation().
Warning: detected OpenGL error 'invalid operation' at start of State::apply(StateSet*)
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0xde1
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0xb50
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0xb50
Warning: detected OpenGL error 'invalid operation' at start of State::apply()
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0xb50
Warning: detected OpenGL error 'invalid enumerant' after applying GLMode 0x4000