問題タブ [openinventor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1048 参照

c++ - GL_MAX_VIEWPORT_DIMSより大きいビューポートのタイルレンダリング

OpenGLシーングラフを取得しQGLFrameBufferObject、結果をレンダリングするために使用するクラスを作成しています。(事実上)無限のサイズをサポートするために、私はタイリングを使用して、すべてのタイルをレンダリングした後に大きな画像に結合できる多くの小さな画像を抽出しています。

glViewport画像全体にビューポート()を設定し、を使用glScissorしてタイルを次々に「切り抜く」ことでタイリングを行います。これは、までの解像度では問題なく機能GL_MAX_VIEWPORT_DIMSしますが、この制限外の空のタイルになります。

この問題にどのように取り組むべきですか?カメラを変更する必要がありますか、それともこれを行うための巧妙なトリックはありますか?私はCoin/OpenInventorを使用しているので、これらのフレームワークに固有のヒントも大歓迎です。

0 投票する
1 に答える
963 参照

c++ - Open Inventor の SoRayPickAction?

これが繰り返しである場合は申し訳ありませんが、Open Inventor での SoRayPickAction の実装を理解しようとしています。マウスをクリックしたときに特定のノードを選択して、移動、回転などを行えるように実装しようとしています。デスク、ランプ、フレーム (額縁) の 3 つのノードがあります。ただし、私のコードがまったく正しいとは思いません。また、MouseButtonCallback (マウスがクリックされたかどうかを確認してからナビゲーターを使用する) や MouseMoveCallback (同じ考え) などのさまざまなメソッドもあります。これが私が持っているコードですが、何か提案はありますか?今のところ、まあ、それは何もしません。

シーンにノードを「配置」できる OpenInventor のアクション、つまりランプを机の上に配置したり、フレームを壁に配置したりすることも知っているかもしれません。それはパスですか? 残念ながら、何を探しているのかさえわかりません。ご協力ありがとうございました!!

編集:これはどのように見えますか?SoSeparator *desk2; SoSeparator *ランプ2; SoSeparator *pic_frame2; SoSeparator *選択;

0 投票する
2 に答える
489 参照

ocean - Petrel&Ocean 2012.1にはどのOpenInventorがありますか?

Petrel&Ocean2012.1のリリースが間近に迫っていることを私は知っています。したがって、Open Inventorのどのバージョンが使用されるのか、そしてそれに関する詳細情報はどこにあるのか疑問に思っています。

0 投票する
2 に答える
774 参照

c++ - OpenInventor から PCD へ: RGB を 10 進数に変換できません

OpenInventor ファイルを PCD ファイルに変換する小さなプログラムを作成しています。そのために、OpenInventor ファイルと JPEG 画像の 2 つのファイルを入力します。テクスチャ座標は、0.0 ~ 1.0 の浮動小数点値です。

OpenCVを使ってRGB値を抽出して10進数で返すのですが、以下の関数がうまく動かないようです...

で画像をロードします

0 投票する
1 に答える
135 参照

opengl - ハードウェアが特定の OpenGL 機能をサポートしているかどうかを調べる

特定の OpenGL 機能がハードウェアでサポートされているかどうかを確認するにはどうすればよいですか? 私の場合、両面照明がハードウェアで利用できるかどうかを知りたいです。OpenInventor を使用するアプローチも同様です。

0 投票する
3 に答える
2232 参照

c++ - Coin3D SoOffscreenRenderer を QImage に変換し、OpenGL でレンダリングする

QGLWidgetを使用して、QT を使用して Coin3D/Open Inventor シーンを表示しようとしていますSoOffscreenRendererQImage

私がこれまでに試したことは、シーンをレンダリングしてSoOffscreenRenderer次のようなバッファを取得することです:

QImage次に、バッファ データからを作成します。

これは正しい方法でしょうか?

QImage の描画に関するこの質問で説明されているように、ソースが画像の場合は描画できます。

e: バッファーに実際にシーンが含まれていることを確認するために、バッファーの内容を 2 つのファイルに書き込みます。たとえば、IrfanView とそのプラグインを使用して、.rgb および .ps ファイルを表示できます。

e2: を使用する必要があることがわかりましたimg.rgbSwapped()。これで、シーンが白黒で稲妻なしで表示されます。さらに調査します。

e3: このようなコードでは、この方法で OpenGL 呼び出しを調整してカラーでレンダリングする必要があります

最初の形式は GL_RGB、2 番目の形式は GL_RGBA です。ただし、立方体はまだ完全に黒です。

e4: 私のシーンではエラーでした。残りを追加する前に、特にカメラを追加する前にライトを追加する必要があります。


これで、`bindTexture()` のような `QGLWidget` の関数を使用するか、OpenGL の直接呼び出しを使用することができますが、正確な方法はわかりません。誰かが私を正しい方向に押し進めることができれば、それは素晴らしいことです. このようにOpenGLをそのまま使用することはできませんか? glEnable(GL_TEXTURE_2D); glGenTextures(1, &offscreenBufferTexture); glBindTexture(GL_TEXTURE_2D, offscreenBufferTexture); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imgGL.width(), imgGL.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, imgGL.bits()); それとも`glDrawPixels()`?glDrawPixels(imgGL.width(), imgGL.height(), GL_RGBA, GL_UNSIGNED_BYTE, imgGL.bits());


OpenGL で QImage を描画する方法を見つけました。このスレッドを参照してください。そのため、バッファまたはその変換に問題があるようです。

0 投票する
1 に答える
121 参照

c++ - Coin3D で未処理の例外エラー (Open Inventor)

ノード内のクラス タイプを検索し、そのアドレスを返す一般的な関数を作成したかったのです。以下に定義されています

しかし、SoCoordinate3::getClassTypeId() のような検索タイプと、以下に示すように senode を検索するノードを渡すと:

しかし、最後の行は未処理の例外エラーを生成しています。ここで何が間違っているのか教えてください。関数のスコープ内に書かれたものは機能しますが、ここでは機能しないため、最後の行は有効です。

0 投票する
1 に答える
119 参照

c++ - 3D 環境参照の設定

画面を見たときに窓のように見える仮想現実環境を作成するために、錐台カメラを設定しています。SoCamera、SoFrustumCamera、SoPerspectiveCamera、SoOrtographicCamera のすべてのドキュメントを確認しましたが、境界線を画面の境界線と一致させるためにシーンを設定する方法が見つかりませんでした。

私はこのようなことをしたい...

https://www.youtube.com/watch?v=Jd3-eiid-Uw

私のコードの問題は、シーンの「後ろ」だけではなく、シーン全体が動くことです。3D のように見えますが、実際のウィンドウほど没入感はありません。

誰かがヒントを持っているか、それについて私を助けることができますか? OpenInventor を使用して、C++ でコードを作成しています。ありがとう!!