博客
关于我
3.6.X版本的OSG无法打开osgShadow/ShadowVolume的问题
阅读量:593 次
发布时间:2019-03-12

本文共 1051 字,大约阅读时间需要 3 分钟。

因升级需要,我将工程环境从 Visual Studio 2010 和 OSG 3.0.1 转升至 Visual Studio 2015 和 OSG 3.6.3进行了重新编译,编译平台依然设置为 Windows 32-bit 系统。在新版本平台上,编译过程中出现了以下错误:

fatal error C1083: 无法打开包括文件:“osgShadow/ShadowVolume”: No such file or directory

在初次尝试升级时,我是在 E 盘硬盘上对 OSG 进行编译的,因此我在 OSG 的编译模块中进行了查询。在目录 E:\OSG\OpenSceneGraph\include\osgShadow 文件夹中,发现并没有 ShadowVolume 模块。接着,我在网络上查找了 OSG 的 3.6.2 和 3.6.1 版本进行查询,但同样发现该模块并不存在。

为了进一步确认这一点,我还尝试了将 OSG 中的 osgshadow 实例在 Visual Studio 2015 中编译,结果发现即使没有 ShadowVolume 模块,仍然可以实现阴影效果。这让我怀疑,可能在 OSG 3.6.3 版本中,ShadowVolume 模块已经不再是必要的,因为该模块在最新版本中的存在性可能已经被废弃。

补充来自 osgshadow.cpp 的注释:

OSG_NOTICE << "Warning: ShadowVolume no longer supported."

基于上述分析,我决定在头文件中删除对 ShadowVolume 模块的引用,并重新编译。此方法用以绕过缺少模块的问题,最终编译过程完成后也没有再出现错误,项目能够正常运行。

通过这次经历,我体会到了一个教训:面对编译错误时,应首先全面分析错误产生的原因,而不应当急于更换工具或版本。在后续的尝试中,我分别测试了 OSG 的 3.4.0 和 3.0.3 版本,并且在 Visual Studio 2015 以及 Windows SDK 进行了重新安装编译,然而每次编译都伴随着不同程度的错误,事实上并未完全解决问题。只有在重新尝试升级到 3.6.3 版本并结合问题修正 suggestions 后,编译才能稳定进行,尽管仍然存在少量错误。

通过这一过程,我学会了谨慎分析问题,并结合多版本测试来找到最适合当前项目需求的配置,避免了盲目尝试带来的不必要的繁琐和误差。望未来能够将这种经验转化为更高效的问题解决策略。

转载地址:http://rgsxz.baihongyu.com/

你可能感兴趣的文章
职责链模式在开源代码中的应用
查看>>
Mapper 接口方法如何与注解里的 SQL 进行绑定的?
查看>>
final 在 java 中的作用
查看>>
python安装和配置(win10)
查看>>
智力扣(13)——回字环
查看>>
重构函数(1)条件合并
查看>>
2020编码大赛(1)题目
查看>>
BitChanger语言
查看>>
Pythagorea(3)第16-21章
查看>>
纪念碑谷(1-5章)
查看>>
基数树(radix tree)
查看>>
58Q游戏(4)73(5)85(6)98(7)
查看>>
独立钻石棋详解
查看>>
106 多米诺骨牌(12)119(8)130(9)142(10)150(11)
查看>>
算两次计数法
查看>>
点亮细胞171-180
查看>>
C++ Primer Plus读书笔记:c++字符串
查看>>
CSU 1757: 火车入站(区间覆盖的最大覆盖深度)
查看>>
C++ Primer Plus读书笔记:循环读取(错误处理)
查看>>
《架构师36项修炼》Mysql 异常情况下的事务安全 -- 详解 Mysql redolog
查看>>