因升级需要,本人将工程环境由VS2010+OSG3.0.1升级为VS2015+OSG3.6.3。编译平台都为Wind32,在新的平台中,报出下面的错误:
fatal error C1083: 无法打开包括文件:“osgShadow/ShadowVolume”: No such file or directory
1、本人是在E盘对OSG进行编译的,所以对OSG编译模块进行查询。在目录:E:\OSG\OpenSceneGraph\include\osgShadow文件夹中没有找到ShadowVolume模块。在网上下载了3.6.2/3.6.1版本的OSG进行查询,发现都没有该模块。
2、将OSG/examples中的osgshadow实例在vs2015中进行了编译,发现没有上述模块也可以实现阴影效果。到了这里,个人觉得,可能是3.6.3版本下,ShadowVolume没有存在的必要了。补充:在该版本的osgshadow.cpp中也确实有备注:
OSG_NOTICE<<"Warning: ShadowVolume no longer supported.">>
基于以上两点的分析,试着将头文件中对ShadowVolume模块的引用(#include <osgShadow/ShadowVolume>)删除,重新编译,不再报错。正常运行。
5月10日更新:这里分享一个教训,在第一遇见fatal error C1083: 无法打开包括文件:“osgShadow/ShadowVolume”: No such file or directory这个错误时,当时过于谨慎,考虑不全面,没有对错误产生的原因进行全面分析。冒然决定更换OSG版本进行重新编译,先后试验了3.4.0、3.0.3的版本,包括vs2015、windows SDK都重新安装了一遍,编译之后或多或少都存在错误。兜兜转转之后,终于想明白,于是重新编译了3.6.3版本,但是没有初次编译效果好,存在少量的错误,但好在可以用。希望以后吸取教训。