OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
OGRE 3D ビジュアライザ

詳細説明

ovis は ogre3d をラップした簡易レンダリングラッパーである。APIには Ogreの用語 が用いられ、高度なカスタマイズには Ogre Script を使用することを前提としている。

ここに示すAPIのほかに、ovisの動作を制御するいくつかの環境変数がある。それらは createWindow に記載されている。

ジオメトリの読み込み

動的に ジオメトリを生成するか、Ogreの .mesh ファイルを読み込んで生成できる。

Blender

ジオメトリの変換・作成には Blender を推奨する。

Assimp

Ogre 1.12.9 以降を使用している場合、Assimpプラグインを有効にすると任意のジオメトリを読み込める。WindowScene::createEntitymeshnamebunny.mesh の代わりに bunny.obj を渡すだけでよい。

それでも、ジオメトリが正しく変換されたことを検証するために ogre-meshviewer を使用すべきである。

クラス

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

列挙型詳解

◆ 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 

ウィンドウを表示せずにオフスクリーンでレンダリングする。個別のAA設定が可能になる。WindowScene::update による手動更新が必要である。

SCENE_SHADOWS 

シーン内でリアルタイムシャドウを有効にする。デフォルトではすべてのエンティティが影を落とす。ENTITY_CAST_SHADOWS で制御する。

関数詳解

◆ 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グリッドの範囲
segments1辺あたりのセグメント数

◆ 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 vertices,
InputArray colors = noArray() )

#include <opencv2/ovis.hpp>

点群メッシュを生成する

同じ名前のマテリアルを生成する

引数
nameメッシュの名前
vertices位置のfloatベクトル
colors色のucharベクトル

◆ 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 & title,
const Size & size,
int flags = SCENE_INTERACTIVE|SCENE_AA )

#include <opencv2/ovis.hpp>

新しいレンダリングウィンドウ/ビューポートを作成する

引数
titleウィンドウのタイトル
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 & 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 image )

#include <opencv2/ovis.hpp>

非推奨Deprecated
setMaterialProperty を使用すること

◆ waitKey()

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

#include <opencv2/ovis.hpp>

すべてのウィンドウを更新し、キーボードイベントを待つ

引数
delay0 は「無限」を意味する特別な値である。正の値を指定した場合は、ブランクへの同期後(通常16ms)に戻る。
戻り値
押されたキーのコード。キーが押されなかった場合は -1