![]() |
OpenCV 4.11.0
开源计算机视觉库
|
ovis 是一个围绕 ogre3d 的简化渲染包装器。API 中使用了 Ogre 术语,并假定使用 Ogre 脚本 进行高级自定义。
除了此处看到的 API 外,还有几个环境变量可以控制 ovis 的行为。这些变量在 createWindow 中有文档说明。
您可以 动态创建 几何体或通过加载 Ogre .mesh 文件来创建。
建议使用 Blender 来转换/创建几何体。
OgreXMLConverter.exe(位于 bin/ 中)的 Ogre MSVC SDK,并在 blender2ogre 设置中设置路径。当使用 Ogre 1.12.9 或更高版本时,启用 Assimp 插件允许加载任意几何体。只需在 WindowScene::createEntity 中将 bunny.mesh 替换为 bunny.obj 作为 meshname。
您仍然应该使用 ogre-meshviewer 来验证几何体是否正确转换。
类 | |
| 类 | cv::ovis::WindowScene |
#include <opencv2/ovis.hpp>
| 枚举器 | |
|---|---|
| ENTITY_MATERIAL | |
| ENTITY_SCALE | |
| ENTITY_AABB_WORLD | |
| ENTITY_ANIMBLEND_MODE | |
| ENTITY_CAST_SHADOWS | |
#include <opencv2/ovis.hpp>
| 枚举器 | |
|---|---|
| MATERIAL_POINT_SIZE | |
| MATERIAL_LINE_WIDTH | |
| MATERIAL_OPACITY | |
| MATERIAL_EMISSIVE | |
| MATERIAL_DIFFUSE | |
| MATERIAL_TEXTURE0 | |
| 材质纹理 | |
| 材质纹理1 | |
| 材质纹理2 | |
| 材质纹理3 | |
#include <opencv2/ovis.hpp>
| 枚举器 | |
|---|---|
| SCENE_SEPARATE | 窗口将使用单独的场景。否则,场景将被共享。 |
| SCENE_INTERACTIVE | 允许用户控制摄像机。 |
| SCENE_SHOW_CS_CROSS | 绘制坐标系十字架用于调试 |
| SCENE_AA | 应用抗锯齿。第一个窗口决定所有窗口的设置。 |
| SCENE_OFFSCREEN | 离屏渲染,无需窗口。允许单独的抗锯齿设置。需要通过 WindowScene::update 手动更新。 |
| SCENE_SHADOWS | 启用场景中的实时阴影。默认情况下,所有实体都会投射阴影。通过 ENTITY_CAST_SHADOWS 控制。 |
| void cv::ovis::addResourceLocation | ( | const String & | path | ) |
#include <opencv2/ovis.hpp>
添加一个额外的资源位置,用于搜索网格、纹理和材质
必须在第一个 createWindow 调用之前调用。如果给定的路径不存在,则会在 Ogre Media 目录中重试。
| path | 文件夹或 Zip 压缩包。 |
| void cv::ovis::createPlaneMesh | ( | const String & | name, |
| const Size2f & | size, | ||
| InputArray | image = noArray() ) |
| void cv::ovis::createPointCloudMesh | ( | const String & | name, |
| InputArray | vertices, | ||
| InputArray | colors = noArray() ) |
| void cv::ovis::createTriangleMesh | ( | const String & | name, |
| InputArray | vertices, | ||
| InputArray | normals = noArray(), | ||
| InputArray | indices = noArray() ) |
#include <opencv2/ovis.hpp>
根据顶点-顶点或面-顶点表示创建三角形网格
创建具有相同名称的材质
| name | 网格名称 |
| vertices | 浮点型位置向量 |
| normals | 浮点型法向量 |
| indices | 整型索引向量 |
| Ptr< WindowScene > cv::ovis::createWindow | ( | const String & | title, |
| const Size & | size, | ||
| int | flags = SCENE_INTERACTIVE|SCENE_AA ) |
#include <opencv2/ovis.hpp>
创建一个新的渲染窗口/视口
| title | 窗口标题 |
| size | 窗口大小 |
| flags | SceneSettings 的组合 |
此外,行为由以下环境变量控制:
#include <opencv2/ovis.hpp>
这是一个重载的成员函数,为了方便提供。它与上面的函数的区别仅仅在于它接受的参数。
| void cv::ovis::setMaterialProperty | ( | const String & | name, |
| int | prop, | ||
| InputArray | value ) |
| void cv::ovis::updateTexture | ( | const String & | name, |
| InputArray | image ) |
#include <opencv2/ovis.hpp>
| int cv::ovis::waitKey | ( | int | delay = 0 | ) |
#include <opencv2/ovis.hpp>
更新所有窗口并等待键盘事件
| delay | 0 是一个特殊值,表示“无限期”。任何正数在同步到空白后返回(通常为 16 毫秒)。 |