OpenCV 4.13.0
開源計算機視覺庫 (Open Source Computer Vision)
正在載入...
正在搜尋...
未找到匹配項
OGRE 3D 視覺化器

詳細說明

ovis 是一個圍繞 ogre3d 的簡化渲染包裝器。API 中使用了 Ogre 術語,並假定使用 Ogre Script 進行高階定製。

除了這裡看到的 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
 

列舉

enum  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
}
 
enum  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
}
 
enum  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)
 

列舉型別文件 (Enumeration Type Documentation)

◆ EntityProperty

#include <opencv2/ovis.hpp>

列舉值 (Enumerator)
ENTITY_MATERIAL 
ENTITY_SCALE 
ENTITY_AABB_WORLD 
ENTITY_ANIMBLEND_MODE 
ENTITY_CAST_SHADOWS 

◆ MaterialProperty

#include <opencv2/ovis.hpp>

列舉值 (Enumerator)
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>

列舉值 (Enumerator)
SCENE_SEPARATE 

視窗將使用獨立的場景。否則場景將被共享。

SCENE_INTERACTIVE 

允許使用者控制相機。

SCENE_SHOW_CS_CROSS 

繪製座標系十字以供除錯

SCENE_AA 

應用抗鋸齒。第一個視窗確定所有視窗的設定。

SCENE_OFFSCREEN 

離屏渲染,無視窗。允許單獨設定 AA。需要透過 WindowScene::update 手動更新。

SCENE_SHADOWS 

在場景中啟用即時陰影。所有實體預設都會投射陰影。透過 ENTITY_CAST_SHADOWS 控制。

函式文件 (Function Documentation)

◆ addResourceLocation()

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

#include <opencv2/ovis.hpp>

新增一個額外的資源位置,用於搜尋網格、紋理和材質

必須在第一次 createWindow 之前呼叫。如果給定的路徑不存在,則在 Ogre Media Directory 中重試。

引數
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 頂點,
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浮點型法向量向量
indices整型索引向量

◆ 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屬性名稱
value (值)

◆ setMaterialProperty() [2/4]

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

#include <opencv2/ovis.hpp>

將材質的屬性設定為給定值

引數
name材質名稱
propMaterialProperty
value (值)

◆ 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
value (值)紋理資料

◆ updateTexture()

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

#include <opencv2/ovis.hpp>

已棄用
使用 setMaterialProperty

◆ waitKey()

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

#include <opencv2/ovis.hpp>

更新所有視窗並等待鍵盤事件

引數
延遲0 是特殊值,表示“永遠”。任何正數都會在同步到空白(通常是 16 毫秒)後返回。
返回
按下鍵的程式碼,如果沒有按下鍵則為 -1