OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
OGRE 3D 可视化工具

详细描述

ovis 是一个围绕 ogre3d 的简化渲染封装器。API 中使用了 Ogre 术语,并且假定使用 Ogre 脚本进行高级定制。

除了此处显示的 API,还有几个环境变量控制 ovis 的行为。它们在 createWindow 中有文档说明。

加载几何体

您可以即时创建几何体,或通过加载 Ogre .mesh 文件创建。

Blender

建议使用 Blender 进行几何体转换/创建。

Assimp

当使用 Ogre 1.12.9 或更高版本时,启用 Assimp 插件允许加载任意几何体。只需在 WindowScene::createEntity 中将 bunny.obj 作为 meshname 传入,而不是 bunny.mesh

您仍然应该使用 ogre-meshviewer 来验证几何体是否正确转换。

类  cv::ovis::WindowScene
 

枚举

枚举  cv::ovis::EntityProperty {
  cv::ovis::ENTITY_MATERIAL ,
  cv::ovis::ENTITY_SCALE ,
  cv::ovis::ENTITY_AABB_WORLD ,
  cv::ovis::ENTITY_ANIMBLEND_MODE ,
  cv::ovis::ENTITY_CAST_SHADOWS
}
 
枚举  cv::ovis::MaterialProperty {
  cv::ovis::MATERIAL_POINT_SIZE ,
  cv::ovis::MATERIAL_LINE_WIDTH ,
  cv::ovis::MATERIAL_OPACITY ,
  cv::ovis::MATERIAL_EMISSIVE ,
  cv::ovis::MATERIAL_DIFFUSE ,
  cv::ovis::MATERIAL_TEXTURE0 ,
  cv::ovis::MATERIAL_TEXTURE = MATERIAL_TEXTURE0 ,
  cv::ovis::MATERIAL_TEXTURE1 ,
  cv::ovis::MATERIAL_TEXTURE2 ,
  cv::ovis::MATERIAL_TEXTURE3
}
 
枚举  cv::ovis::SceneSettings {
  cv::ovis::SCENE_SEPARATE = 1 ,
  cv::ovis::SCENE_INTERACTIVE = 2 ,
  cv::ovis::SCENE_SHOW_CS_CROSS = 4 ,
  cv::ovis::SCENE_AA = 8 ,
  cv::ovis::SCENE_OFFSCREEN = 16 ,
  cv::ovis::SCENE_SHADOWS = 32
}
 

函数

void cv::ovis::addResourceLocation (const String &path)
 
void cv::ovis::createGridMesh (const String &name, const Size2f &size, const Size &segments=Size(1, 1))
 
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())
 
Ptr< WindowScenecv::ovis::createWindow (const String &title, const Size &size, int flags=SCENE_INTERACTIVE|SCENE_AA)
 
void cv::ovis::setMaterialProperty (const String &name, const String &prop, const Scalar &value)
 
void cv::ovis::setMaterialProperty (const String &name, int prop, const Scalar &value)
 
void cv::ovis::setMaterialProperty (const String &name, int prop, const String &value)
 这是一个重载成员函数,为方便起见而提供。它与上述函数的区别仅在于其接受的参数。
 
void cv::ovis::setMaterialProperty (const String &name, int prop, InputArray value)
 
void cv::ovis::updateTexture (const String &name, InputArray image)
 
int cv::ovis::waitKey (int delay=0)
 

枚举类型文档

◆ EntityProperty

#include <opencv2/ovis.hpp>

枚举器
ENTITY_MATERIAL 
ENTITY_SCALE 
ENTITY_AABB_WORLD 
ENTITY_ANIMBLEND_MODE 
ENTITY_CAST_SHADOWS 

◆ MaterialProperty

#include <opencv2/ovis.hpp>

枚举器
MATERIAL_POINT_SIZE 
MATERIAL_LINE_WIDTH 
MATERIAL_OPACITY 
MATERIAL_EMISSIVE 
MATERIAL_DIFFUSE 
MATERIAL_TEXTURE0 
MATERIAL_TEXTURE 
MATERIAL_TEXTURE1 
MATERIAL_TEXTURE2 
MATERIAL_TEXTURE3 

◆ SceneSettings

#include <opencv2/ovis.hpp>

枚举器
SCENE_SEPARATE 

窗口将使用一个独立的场景。否则场景将共享。

SCENE_INTERACTIVE 

允许用户控制相机。

SCENE_SHOW_CS_CROSS 

绘制坐标系十字用于调试

SCENE_AA 

应用抗锯齿。第一个窗口决定所有窗口的设置。

SCENE_OFFSCREEN 

在无窗口的情况下进行离屏渲染。允许独立的抗锯齿设置。需要通过 WindowScene::update 手动更新。

SCENE_SHADOWS 

在场景中启用实时阴影。默认情况下,所有实体都会投射阴影。通过 ENTITY_CAST_SHADOWS 控制。

函数文档

◆ addResourceLocation()

void cv::ovis::addResourceLocation ( const String & 路径)

#include <opencv2/ovis.hpp>

添加一个额外的资源位置,用于搜索网格、纹理和材质

必须在第一次调用 createWindow 之前调用。如果给定路径不存在,则在 Ogre Media 目录下重试。

参数
路径文件夹或 Zip 归档。

◆ createGridMesh()

void cv::ovis::createGridMesh ( const String & name,
const Size2f & size,
const Size & segments = Size(1, 1) )

#include <opencv2/ovis.hpp>

创建一个网格

创建一个同名材质

参数
name网格名称
size网格的范围
段数每边的段数

◆ createPlaneMesh()

void cv::ovis::createPlaneMesh ( const String & name,
const Size2f & size,
InputArray image = noArray() )

#include <opencv2/ovis.hpp>

创建一个 2D 平面,X轴向右,Y轴向下,Z轴向上

创建一个同名材质

参数
name网格名称
size世界单位中的尺寸
image可选纹理

◆ createPointCloudMesh()

void cv::ovis::createPointCloudMesh ( const String & name,
InputArray 顶点,
InputArray colors = noArray() )

#include <opencv2/ovis.hpp>

创建一个点云网格

创建一个同名材质

参数
name网格名称
顶点浮点型位置向量
colors无符号字符型颜色向量

◆ createTriangleMesh()

void cv::ovis::createTriangleMesh ( const String & name,
InputArray 顶点,
InputArray normals = noArray(),
InputArray indices = noArray() )

#include <opencv2/ovis.hpp>

从顶点-顶点或面-顶点表示创建三角形网格

创建一个同名材质

参数
name网格名称
顶点浮点型位置向量
normals浮点型法线向量
索引整型索引向量

◆ createWindow()

Ptr< WindowScene > cv::ovis::createWindow ( const String & 标题,
const Size & size,
int flags = SCENE_INTERACTIVE|SCENE_AA )

#include <opencv2/ovis.hpp>

创建一个新的渲染窗口/视口

参数
标题窗口标题
size窗口尺寸
flagsSceneSettings 的组合

此外,其行为由以下环境变量控制:

  • OPENCV_OVIS_VERBOSE_LOG: 打印所有 OGRE 日志输出
  • OPENCV_OVIS_RENDERSYSTEM: 要使用的 OGRE RenderSystem 名称
  • OPENCV_OVIS_NOVSYNC: 禁用所有窗口的 VSYNC

◆ setMaterialProperty() [1/4]

void cv::ovis::setMaterialProperty ( const String & name,
const String & 属性,
const Scalar &  )

#include <opencv2/ovis.hpp>

将材质的着色器属性设置为给定值

参数
name材质名称
属性属性名称
该值

◆ setMaterialProperty() [2/4]

void cv::ovis::setMaterialProperty ( const String & name,
int 属性,
const Scalar &  )

#include <opencv2/ovis.hpp>

将材质的属性设置为给定值

参数
name材质名称
属性材质属性
该值

◆ setMaterialProperty() [3/4]

void cv::ovis::setMaterialProperty ( const String & name,
int 属性,
const String &  )

#include <opencv2/ovis.hpp>

这是一个重载成员函数,为方便起见而提供。它与上述函数的区别仅在于其接受的参数。

◆ setMaterialProperty() [4/4]

void cv::ovis::setMaterialProperty ( const String & name,
int 属性,
InputArray  )

#include <opencv2/ovis.hpp>

将材质的纹理设置为给定值

参数
name材质名称
属性材质属性
纹理数据

◆ updateTexture()

void cv::ovis::updateTexture ( const String & name,
InputArray 图像 )

#include <opencv2/ovis.hpp>

已弃用
使用 setMaterialProperty

◆ waitKey()

int cv::ovis::waitKey ( int 延迟 = 0)

#include <opencv2/ovis.hpp>

更新所有窗口并等待键盘事件

参数
延迟0 是一个特殊值,表示“永远”。任何正数表示在同步到空白(通常为 16 毫秒)后返回。
返回
按下的键代码,如果没有按键则为 -1