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 毫秒)。 |