mit einem Klick
compiler
测试osgVerse在各个常见系统平台的编译情况
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
测试osgVerse在各个常见系统平台的编译情况
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
| name | compiler |
| description | 测试osgVerse在各个常见系统平台的编译情况 |
| homepage | https://gitee.com/xarray/osgverse |
| metadata | {"nanobot":{"emoji":"🌤️","requires":{"bins":["cmake","git"]}}} |
任何情况下,都请在Windows系统的E:\BotWorkspace或者Unix系统的~/BotWorkspace下工作,如果这个目录不存在,你可以建立它。但是请不要在这个目录之外删除、修改或者创建任何文件与目录。如果这个目录不存在又无法被建立,则直接停止你后续的工作并汇报即可。
osgVerse的代码仓库地址为:https://gitee.com/xarray/osgverse 或者 https://github.com/xarray/osgverse 正常情况下,签出代码请执行
git clone https://gitee.com/xarray/osgverse.git
每次重新编译代码之前,请先尝试更新仓库代码,以获取最新的版本
cd osgverse
git pull
目前,osgVerse可以编译并运行在Windows,Linux,MacOSX,Android平台上,或者通过Emscripten编译为WebAssembly代码(即WASM,在浏览器端支持WebGL1和WebGL2),并且可以使用OpenGL Compatible,OpenGL Core,OpenGL ES或者Vulkan作为底层图形接口平台。如果要编译到MacOSX平台,或者使用Vulkan作为底层接口,则需要预先准备Google Angle库作为必要依赖库。
编译的中间文件和结果文件目录自动设置为osgVerse根目录下的build目录。如有必要,可以直接删除该目录中对应的编译结果子目录以重置编译流程。
如果要在GLES2和GLES3之间切换,或者在WEBGL1和WEBGL2之间切换,则必须重置编译流程。
osgVerse提供了自动化的Setup编译脚本,建议可以使用脚本来完成具体的编译流程 具体图形接口的支持情况和生成结果如下:
build/3rdparty,build/osg_def,build/verse_def,编译结果位于build/sdkbuild/3rdparty,build/osg_core,build/verse_core,编译结果位于build/sdk_corebuild/3rdparty,build/osg_es,build/verse_es,编译结果位于build/sdk_esbuild/3rdparty,build/osg_es,build/verse_es,编译结果位于build/sdk_esbuild/3rdparty_wasm,build/osg_wasm,build/verse_wasm,编译结果位于build/verse_wasmbuild/3rdparty_wasm,build/osg_wasm2,build/verse_wasm2,编译结果位于build/verse_wasm2java,gradle程序,并设置环境变量ANDROID_SDK和ANDROID_NDK来定义Android依赖库的位置;中间文件包括build/3rdparty_android,build/osg_android,build/verse_androidosgVerse默认可以从系统目录(例如/usr/include,/usr/lib等)检索可能的依赖库位置,也可以从与osgVerse根目录同级的Dependencies目录检索用户提供的依赖库。根据用户操作系统和架构的不同,具体依赖库所在的子目录名称也各不相同。主要包括:
Dependencies/x86: Windows/Linux桌面系统,32位Dependencies/x64: Windows/Linux桌面系统,64位Dependencies/uwp: Windows UWP系统Dependencies/aarch64: ARM Linux系统,64位Dependencies/apple: Mac OSX系统Dependencies/wasm: 为WebAssembly平台编译,32位Dependencies/wasm64: 为WebAssembly平台编译,64位Dependencies/android: 为Android平台编译Dependencies/ios: 为IOS平台编译
对于Windows系统,还可能根据Visual Studio的版本不同,设置第三级子目录,例如Dependencies/x64/msvc16(VS2019),Dependencies/x64/msvc17(VS2022)。最后一级子目录中会至少包含include和lib两个子文件夹,用于定位依赖库的头文件路径和库文件路径。osgVerse可以使用的依赖库如下列表所示,除了OpenSceneGraph,其它所有的依赖库都不是必需的。在编译过程中,如果可以快速地从仓库获取到依赖库,则尝试先安装依赖库;否则默认略过即可。
apt-get install libbullet-devapt-get install libavcodec-dev libavformat-dev libavutil-dev libavdevice-dev libswscale-devapt-get install libdraco-devapt-get install libosmium2-devapt-get install libwebp-devapt-get install libmimalloc-devapt-get install libnetcdf-devapt-get install unixodbc-devapt-get install libopenvdb-dev libboost-devapt-get install libpython3.10-devapt-get install libsdl2-dev默认系统中已有cmake,git这些指令,不需要再单独搜索它们的路径。然后通过Visual Studio的Command Prompt进入终端界面。
进入脚本模式,为了避免在编译过程中等待用户输入,需要带一个CMD参数。这里的可以是: DEFAULT,CORE,GLES2,GLES3,WEBGL1,WEBGL2,ANDROID,对应之前所述的具体图形接口。
Setup.bat <CMD>
脚本模式可以带第2个参数,例如
Setup.bat <CMD> <path_to_gles_libs>
# 此处假定path_to_gles_libs是libGLESv2.lib和libEGL.lib库所在目录
脚本会自动下载OpenSceneGraph的代码仓库并放置于osgVerse根目录的同级目录。脚本执行时会自动覆写OpenSceneGraph目录下的部分文件,例如CMakeLists.txt,正常情况下该文件的内容应当超过1000行。 每次启动脚本时,需要检查该文件,如果它的行数过短,有可能已经损坏,此时需要直接删除OpenSceneGraph目录,并再次运行Setup脚本,以重新下载。
Linux模式下,脚本文件名改为Setup.sh,除此之外一切的参数和注意事项均不变。
进入编译的结果目录,例如build/sdk,检查其中是否有bin,include,lib子目录,且是否存在lib/cmake/osgVerse/osgVerseConfig.cmake文件。如果存在,则编译已经成功得到结果。
CORE模式请检查build/sdk_core目录,GLES2或者GLES3模式请检查build/sdk_es目录,以此类推。
进入bin目录,运行下面的指令来测试基础的PBR流水线运行结果
./osgVerse_Viewer
通过鼠标左键拖动,缓缓旋转模型,观察其阴影、光照效果以及背景天空盒是否均存在,且渲染结果是否流畅自然。 按F键将场景窗口化,观察是否出现渲染问题;再次按F键将场景最大化,观察是否出现渲染问题。 如果结果正常,则按ESC退出;否则请说明情况。