我们知道opengl shader调试的工具很少,可选的只有nvidia的nsight,可见和directx相比opengl的生态环境有多糟!还好有nsight可用,哪像directx,宇宙第一IDE就集成了graphic的调试工具!
没办法,调试osgearth的graphics只能找opengl的调试的工具,以前用过gdebugger,还不错的一个小工具,安装使用都很方便,而且osgearth符合使用它的条件,可惜gdebugger也停止更新了,和其他graphics debugger一样无法调试shader,而且新的opengl版本不支持了,好像支持到3.3?忘了,还好调试osgearth没问题的,如果你不想调shader的话!
下载过RenderDoc,好像叫这个名字吧,也是大家反应比较好的工具,仅次于nsight吧,同样不能调试opengl shader,只能调试directx的,我用它调试osgearth直接报opengl版本太低不支持,它好像只支持gl4.0的好像。
nsight闪亮登场了!nsight也很难伺候,首先你硬件得满足条件,显卡当然必须是nvidia的,而且必须而且只能是费米和开普勒架构的,坑爹!!!!然后把显卡驱动升级到最新版本,看文档必须超过某一个版本,懒得查版本号了!最后,我这里是win10 shader只要设断点,马上就会卡死掉!win7没问题!
总结,你有nvidia的费米和开普勒架构的显卡,然后升级驱动到较新版本,最好win7,你就可以开始开动nsight了!
慢着,还早,这时你要打开osgearth,使用nsight调试,会出一个警告,告诉你一堆opengl api not supported,你用不了frame debugger,shader debugger,那还调个屁呀,革命还未成功,路漫漫呀!
so,现在你首先需要改造osgearth,就是让他用glsl3.0版本编译,那就需要osg首先使用glsl 3.0编译。
写累了,待续.....