OpenCV 4.13.0
開源電腦視覺 (Open Source Computer Vision)
載入中...
搜尋中...
無符合項
OGRE 3D 視覺化工具

詳細描述

ovis 是一個圍繞 ogre3d 的簡化渲染封裝庫。API 中使用了 Ogre 術語,進階自訂功能則預設使用 Ogre Script

除了此處看到的 API 之外,還有幾個控制 ovis 行為的環境變數。這些變數已記錄在 createWindow 中。

載入幾何體

您可以即時 (on the fly) 建立幾何體,或是載入 Ogre 的 .mesh 檔案。

Blender

建議使用 Blender 來轉換或建立幾何體。

Assimp

使用 Ogre 1.12.9 或更新版本時,啟用 Assimp 外掛程式即可載入任意格式的幾何體。只需在 WindowScene::createEntity 中將 meshnamebunny.mesh 改為 bunny.obj 即可。

您仍應使用 ogre-meshviewer 來驗證幾何體是否已正確轉換。

類別

class  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 & path)

#include <opencv2/ovis.hpp>

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

必須在第一個 createWindow 之前呼叫。若給定的路徑不存在,將會重試搜尋 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網格範圍
分段 (segments)每邊的分段數量

◆ 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網格名稱
頂點位置的 float 向量
colors顏色的 uchar 向量

◆ createTriangleMesh()

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

#include <opencv2/ovis.hpp>

使用頂點-頂點或面-頂點表示法建立三角網格

建立一個相同名稱的材質

參數
name網格名稱
頂點位置的 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視窗大小
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 & value )

#include <opencv2/ovis.hpp>

將材質的著色器屬性設定為指定值

參數
name材質名稱
屬性屬性名稱
value數值

◆ setMaterialProperty() [2/4]

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

#include <opencv2/ovis.hpp>

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

參數
name材質名稱
屬性MaterialProperty
value數值

◆ setMaterialProperty() [3/4]

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

#include <opencv2/ovis.hpp>

這是一個多載的成員函式,為了方便而提供。它與上述函式的區別僅在於它接受的參數不同。

◆ setMaterialProperty() [4/4]

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

#include <opencv2/ovis.hpp>

將材質的紋理設定為指定值

參數
name材質名稱
屬性MaterialProperty
value紋理資料

◆ 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