OpenCV  4.10.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 替代 bunny.mesh 作为 meshname 即可。

您仍然应该使用 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)
 

枚举类型文档

◆ 实体属性

#include <opencv2/ovis.hpp>

枚举值
ENTITY_MATERIAL 
ENTITY_SCALE 
ENTITY_AABB_WORLD 
ENTITY_ANIMBLEND_MODE 
ENTITY_CAST_SHADOWS 

◆ 材质属性

#include <opencv2/ovis.hpp>

枚举值
MATERIAL_POINT_SIZE 
材料线宽
材料不透明度
材料自发光
材料漫反射
材料纹理0
材料纹理
材料纹理1
材料纹理2
材料纹理3

◆ 场景设置

#include <opencv2/ovis.hpp>

枚举值
场景分离

窗口将使用单独的场景。否则场景将被共享。

场景交互式

允许用户控制相机。

场景显示十字坐标

绘制调试用的坐标系统十字。

场景抗锯齿

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

场景离屏绘制

在没有窗口的情况下离屏渲染。允许分开设置抗锯齿。需要通过 WindowScene::update 手动更新。

场景阴影

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

函数文档

◆ addResourceLocation()

void cv::ovis::addResourceLocation ( const String path)

#include <opencv2/ovis.hpp>

添加一个额外的资源位置,在该位置搜索网格、纹理和材料

必须在第一次创建窗口之前调用。如果提供的路径不存在,则会在 Ogre 媒体目录内重试。

参数
path文件夹或 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>

创建一个二维平面,X 向右,Y 向下,Z 向上

创建具有相同名称的材料

参数
name网格名称
size以世界单位为单位的大小
图像可选的纹理

◆ createPointCloudMesh

void cv::ovis::createPointCloudMesh ( const String name,
InputArray  vertices,
InputArray  colors = noArray() 
)

#include <opencv2/ovis.hpp>

创建点云网格

创建具有相同名称的材料

参数
name网格名称
vertices位置的 float 向量
colors颜色矢量 uint

◆ createTriangleMesh

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

#include <opencv2/ovis.hpp>

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

创建具有相同名称的材料

参数
name网格名称
vertices位置的 float 向量
normals法线的 float 向量
indices索引的 int 向量

◆ createWindow

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

#include <opencv2/ovis.hpp>

创建新的渲染窗口/视口

参数
标题窗口标题
size窗口大小
flags一组 SceneSettings

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

  • 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 prop,
const Scalar value 
)

#include <opencv2/ovis.hpp>

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

参数
name材质名称
prop属性名称

◆ setMaterialProperty() [2/4]

void cv::ovis::setMaterialProperty ( const String name,
int  prop,
const Scalar value 
)

#include <opencv2/ovis.hpp>

将材料的属性设置给给定值

参数
name材质名称
propMaterialProperty

◆ setMaterialProperty() [3/4]

void cv::ovis::setMaterialProperty ( const String name,
int  prop,
const String value 
)

#include <opencv2/ovis.hpp>

这是一个重载成员函数,提供方便。它只与上述函数在所接受的参数上有所不同。

◆ setMaterialProperty() [4/4]

void cv::ovis::setMaterialProperty ( const String name,
int  prop,
InputArray  value 
)

#include <opencv2/ovis.hpp>

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

参数
name材质名称
propMaterialProperty
纹理数据

◆ updateTexture

void cv::ovis::updateTexture ( const String name,
InputArray  image 
)

#include <opencv2/ovis.hpp>

已弃用
使用 setMaterialProperty

◆ waitKey

int cv::ovis::waitKey ( int  delay = 0)

#include <opencv2/ovis.hpp>

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

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