Skip to main content

project

基于osgVerse创建新的CMake工程、测试程序或插件库,编写osgVerse/OpenSceneGraph代码(几何体、纹理、GLSL着色器、渲染到纹理、动画、多线程、网络、UI、交互、读取器)并编译运行。当用户要求新建工程、编写osgVerse代码、参考代码模板、创建插件/可执行程序时使用。

Datos de origen

Repositorio
xarray/osgverse
Última actividad en el origen
14 de agosto de 2026 a las 09:24
Idioma detectado de SKILL.md
chino
Estrellas
464
Forks
77

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
13 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
project
description
基于osgVerse创建新的CMake工程、测试程序或插件库,编写osgVerse/OpenSceneGraph代码(几何体、纹理、GLSL着色器、渲染到纹理、动画、多线程、网络、UI、交互、读取器)并编译运行。当用户要求新建工程、编写osgVerse代码、参考代码模板、创建插件/可执行程序时使用。
homepage
https://gitee.com/xarray/osgverse
metadata
{"nanobot":{"emoji":"🌤️","requires":{"bins":"[Truncated]"}}}
# Creation 在当前 osgVerse 仓库根目录下工作(或用户指定的工作目录),遵循 `.codebuddy` 与 `AGENTS.md` 中已有的工程约定,不要在其他位置创建或修改文件。 默认系统中已有`cmake`,`git`这些指令,不需要再单独搜索它们的路径。如果用户指示查找和阅读某个代码文件,请优先在osgVerse仓库目录中查找;如果用户指示查找某个代码仓库,则首先尝试使用git将这个仓库下载到工作目录中。 创建新工程前,**必须**验证osgVerse编译结果的完整性。编译结果位于osgVerse仓库根目录的`build`子目录中: - 默认情况下,检查`build/sdk/lib/cmake/osgVerse/osgVerseConfig.cmake`文件是否存在 - 如果要求使用CORE模式,则检查`build/sdk_core/lib/cmake/osgVerse/osgVerseConfig.cmake`文件是否存在 - 如果要求使用GLES2或者GLES3模式,则检查`build/sdk_es/lib/cmake/osgVerse/osgVerseConfig.cmake`文件是否存在 如果缺少文件,则执行`compiler` Skill中的能力,重新编译OpenSceneGraph和osgVerse。 ## Solution template 当你需要生成一个新的CMake工程时,需要加入下面的脚本代码获取osgVerse库的头文件和库文件地址: ```cmake FIND_PACKAGE(osgVerse) IF(osgVerse_FOUND) INCLUDE_DIRECTORIES(${osgVerse_INCLUDE_DIR}) LINK_DIRECTORIES(${osgVerse_LIB_DIR}) ENDIF() ``` 创建工程的解决方案文件的时候,通过下面的参数来帮助查找osgVerse库(`<osgVerse-root>`为osgVerse仓库根目录的绝对路径): ```bash cmake .. -DosgVerse_DIR=<osgVerse-root>/build/sdk/lib/cmake/osgVerse ``` 如果是针对CORE模式编译的osgVerse,则脚本参数改为: ```bash cmake .. -DosgVerse_DIR=<osgVerse-root>/build/sdk_core/lib/cmake/osgVerse ``` 如果是针对GLES2或者GLES3模式编译的osgVerse,则脚本参数改为: ```bash cmake .. -DosgVerse_DIR=<osgVerse-root>/build/sdk_es/lib/cmake/osgVerse ``` ## Library project 如果要在CMake工程中加入一个新的插件库子工程,请注意通过下面的脚本代码来加入必要的OSG和osgVerse依赖库文件: ```cmake TARGET_LINK_LIBRARIES(${LIB_NAME} osgVerseDependency osgVerseReaderWriter osgModeling) TARGET_LINK_LIBRARIES(${LIB_NAME} OpenThreads osg osgDB osgUtil) ``` ## Executable project 如果要在CMake工程中加入一个新的可执行程序子工程,请注意通过下面的脚本代码来加入必要的OSG和osgVerse依赖库文件: ```cmake TARGET_LINK_LIBRARIES(${EXE_NAME} osgVerseDependency osgVerseReaderWriter osgModeling osgUI osgScript osgVersePipeline osgVerseAnimation osgVerseWrappers) TARGET_LINK_LIBRARIES(${EXE_NAME} OpenThreads osg osgDB osgUtil osgGA osgText osgSim osgTerrain osgViewer) ``` # Coding ## Code Style Constraints 代码必须遵循C++ 11/14规范,避免使用C++ 17或者更高版本的写法 代码注释量适中即可,不需要过于频繁。所有的注释都采用英文,以避免编码问题。 使用4个空格来控制缩进,避免在任何时候使用Tab。 每一行的字符数尽可能不超过100个字符 大括号`{`另起一行书写,不要写在行尾 避免使用`using namespace`,代码中始终包含命名空间名 定义二维、三维、四维向量,矩阵,四元数等数据格式时,**必须**使用OSG的数据类型 定义数组,列表,映射表等数据格式时,**必须**使用STL库的常用容器类型 对于引入的第三方库代码,不受到此类约束 建立一个class类对象的时候,请参考下面的命名方式: ```cpp // 类名称首字母大写,之后每个单词的首字母大写 class FooBar : public osg::Referenced { public: // 函数名:首字母小写,之后每个单词的首字母大写;参数名:全部小写,单词之间用`_`分隔 void methodName(int arg1, bool arg2); // 公有成员变量:首字母小写,之后每个单词的首字母大写 int sizeInBytes; private: // 私有成员变量:以`_`开头,首字母小写,之后每个单词的首字母大写 int _attributeName; // 静态成员变量,以`s_`开头,首字母小写,之后每个单词的首字母大写 static int s_globalAttribute; // 枚举量:全部大写,单词之间用`_`分隔 enum { ONE, TWO, THREE }; }; ``` ## Basic OpenSceneGraph tips 当你需要实现一些基本的OSG和osgVerse功能时,**必须**先查阅对应的references文件: - 创建Geometry/网格体对象,请查阅`references/basic_geom_template.cpp` - 创建图像和纹理对象,请查阅`references/basic_texture_template.cpp` - 创建GLSL着色器对象,请查阅`references/basic_glsl_template.cpp` - 创建子场景并将它“渲染到纹理”,请查阅`references/basic_rtt_template.cpp` - 创建场景对象的路径动画效果,请查阅`references/basic_animation_template.cpp` - 实现多线程的代码开发,请查阅`references/basic_thread_template.cpp` - 实现HTTP网络访问,网络数据加载功能,请查阅`references/basic_network_template.cpp` - 实现三维地球数据瓦片,高斯泼溅数据,3dtiles数据格式的读取,请查阅`references/basic_readers_template.cpp` - 实现二维界面的显示,UI元素的添加和排列,请查阅`references/basic_ui_template.cpp` - 实现鼠标键盘等操作事件,场景射线/鼠标点击求交,请查阅`references/basic_interaction_template.cpp` ## File reader-writer plugin 当你需要生成基于osgVerse的插件库代码时,**必须**先查阅对应的references文件: - Node节点模型,以及Image图片的读取插件,请查阅`references/plugin_template.cpp` ## osgVerse executable 当你需要生成基于osgVerse的可执行程序代码时,**必须**先查阅对应的references文件: - 用于渲染三维场景的可执行程序,请查阅`references/viewer_template.cpp`
Ver en GitHub