![]() |
OpenCV 5.0.0
Open Source Computer Vision
|
ovis は ogre3d をラップした簡易レンダリングラッパーである。APIには Ogreの用語 が用いられ、高度なカスタマイズには Ogre Script を使用することを前提としている。
ここに示すAPIのほかに、ovisの動作を制御するいくつかの環境変数がある。それらは createWindow に記載されている。
動的に ジオメトリを生成するか、Ogreの .mesh ファイルを読み込んで生成できる。
ジオメトリの変換・作成には Blender を推奨する。
OgreXMLConverter.exe (bin/ 内) を含む Ogre MSVC SDK をダウンロードし、blender2ogreの設定でそのパスを指定するOgre 1.12.9 以降を使用している場合、Assimpプラグインを有効にすると任意のジオメトリを読み込める。WindowScene::createEntity の meshname に bunny.mesh の代わりに bunny.obj を渡すだけでよい。
それでも、ジオメトリが正しく変換されたことを検証するために ogre-meshviewer を使用すべきである。
クラス | |
| class | cv::ovis::WindowScene |
#include <opencv2/ovis.hpp>
| 列挙値 | |
|---|---|
| ENTITY_MATERIAL | |
| ENTITY_SCALE | |
| ENTITY_AABB_WORLD | |
| ENTITY_ANIMBLEND_MODE | |
| ENTITY_CAST_SHADOWS | |
#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 | |
#include <opencv2/ovis.hpp>
| 列挙値 | |
|---|---|
| SCENE_SEPARATE | ウィンドウは独立したシーンを使用する。指定しない場合はシーンが共有される。 |
| SCENE_INTERACTIVE | ユーザがカメラを制御できるようにする。 |
| SCENE_SHOW_CS_CROSS | デバッグ用に座標系の十字を描画する |
| SCENE_AA | アンチエイリアシングを適用する。最初のウィンドウがすべてのウィンドウの設定を決定する。 |
| SCENE_OFFSCREEN | ウィンドウを表示せずにオフスクリーンでレンダリングする。個別のAA設定が可能になる。WindowScene::update による手動更新が必要である。 |
| SCENE_SHADOWS | シーン内でリアルタイムシャドウを有効にする。デフォルトではすべてのエンティティが影を落とす。ENTITY_CAST_SHADOWS で制御する。 |
| void cv::ovis::addResourceLocation | ( | const String & | path | ) |
#include <opencv2/ovis.hpp>
メッシュ、テクスチャ、マテリアルの検索対象となるリソースの場所を追加する
最初の createWindow より前に呼び出す必要がある。指定したパスが存在しない場合は、Ogre Media Directory 内で再試行する。
| path | フォルダまたはZipアーカイブ。 |
| void cv::ovis::createGridMesh | ( | const String & | name, |
| const Size2f & | size, | ||
| const Size & | segments = Size(1, 1) ) |
#include <opencv2/ovis.hpp>
グリッドを生成する
同じ名前のマテリアルを生成する
| name | メッシュの名前 |
| size | グリッドの範囲 |
| segments | 1辺あたりのセグメント数 |
| void cv::ovis::createPlaneMesh | ( | const String & | name, |
| const Size2f & | size, | ||
| InputArray | image = noArray() ) |
#include <opencv2/ovis.hpp>
2D平面を生成する(X:右、Y:下、Z:上)
同じ名前のマテリアルを生成する
| name | メッシュの名前 |
| size | ワールド単位でのサイズ |
| image | テクスチャ(省略可能) |
| void cv::ovis::createPointCloudMesh | ( | const String & | name, |
| InputArray | vertices, | ||
| InputArray | colors = noArray() ) |
#include <opencv2/ovis.hpp>
点群メッシュを生成する
同じ名前のマテリアルを生成する
| name | メッシュの名前 |
| vertices | 位置のfloatベクトル |
| colors | 色のucharベクトル |
| 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ベクトル |
| Ptr< WindowScene > cv::ovis::createWindow | ( | const String & | title, |
| const Size & | size, | ||
| int | flags = SCENE_INTERACTIVE|SCENE_AA ) |
#include <opencv2/ovis.hpp>
新しいレンダリングウィンドウ/ビューポートを作成する
| title | ウィンドウのタイトル |
| size | ウィンドウのサイズ |
| flags | SceneSettings の組み合わせ |
さらに、動作は以下の環境変数によって制御される
#include <opencv2/ovis.hpp>
これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。
| void cv::ovis::setMaterialProperty | ( | const String & | name, |
| int | prop, | ||
| InputArray | value ) |
| void cv::ovis::updateTexture | ( | const String & | name, |
| InputArray | image ) |
#include <opencv2/ovis.hpp>
| int cv::ovis::waitKey | ( | int | delay = 0 | ) |
#include <opencv2/ovis.hpp>
すべてのウィンドウを更新し、キーボードイベントを待つ
| delay | 0 は「無限」を意味する特別な値である。正の値を指定した場合は、ブランクへの同期後(通常16ms)に戻る。 |