問題タブ [qglwidget]

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 投票する
1 に答える
2427 参照

qt - OpenGL リソースを共有するための戦略

CAD のようなアプリ (Qt ベース) を作成しています。これは複数のドキュメント インターフェイスであり、各ドキュメントには約 5 つのビューポート (QGLWidget から派生) が含まれます。そのため、フラット シェーダーをアプリケーション全体で共有し、3D アセット (VBO として保存されたモデル) を各ドキュメント、つまり 5 つのビューポートで共有する必要があります。

シェーダー プログラムと VBO Gluint アドレスを共有している限り、すべてが自動的に機能すると思いましたが、そうではありません。各ビューポート/コンテキストには、グラフィックス カード上に独自のアドレス空間があるためだと思います。詳しい方がいらっしゃいましたら、お知らせください。

アプリケーションの起動時にシェーダーをコンパイルしたいのですが、事前に OpenGL を有効な状態にするために有効な QGLWidget が必要なため、これは困難です。しかし、QGLWidgets を (コンストラクターを介して) 共有してリソースを共有する必要があるため、他のものをインスタンス化する前に、1 つを作成して表示する必要があります。しかし、一度に複数のビューをユーザーに表示する必要があるため、これは非常に非現実的です。

画期的なことではないので、これは私が考えているよりも簡単に違いありませんが、私は本当に苦労しています - 誰かが私を正しい方向に向けることができますか?

ありがとう、カム

0 投票する
5 に答える
5147 参照

c++ - vtable への未定義の参照、Linux の Qt

Ubuntu 10.04 の Code::Blocks で Qt および OpenGL プログラムをコンパイルしようとしていました。「GLWidget の vtable への未定義の参照」を取得します

私はこの男からコードを借りて、それが機能するかどうかを確認しました。同じ理由で私のコードが機能していなかったからです。コード

GLWidget.cpp は次のとおりです。

コードを短くするために、GL 部分からコードを削除しました。必要な場合は、いつでも投稿できます。

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

qt - QGraphicsView の上に透明な QGLWidget

私はQGraphicsView2D画像を表示するために使用していますがQGLWidget、3Dオブジェクトを表示するための別のウィンドウもあります。3D オブジェクトの回転に基づいて、「QGraphicsView」に表示される画像を動的に変更しています。

Maya 2009 のような 2D イメージの上に半透明の 3D オブジェクトをレンダリングしたいと思います (ビューポートの右上隅にある立方体に注目してください): (ソース: boulevard-creation.com )Maya 2009 のスクリーンショット

現在のウィジェットでこれを行うことは可能ですか? そうでない場合、どうすればそれを行うことができますか?

私が考えることができる 1 つのオプションは、すべてをレンダリングしてQGLWidget、2D イメージをテクスチャとして背景平面に表示することですが、それは少し面倒に思えます。

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

windows - Windows プラットフォームで Ogre を qt アプリケーションに埋め込む

Ogre を qt アプリケーションに埋め込む Link:QtOgre

しかし、それは mac と linux プラットフォームです。Windows プラットフォームに移行しようとしましたが、失敗しました。私のアプリは次のように実行されます: ここに画像の説明を入力

/////////////////////////////////////

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

macos - 座標に関するqtの問題のGlwidget

Mac OSXでqt4.7を実行していますが、glwidgetの座標が間違って描画されています。Fedoraボックスで試してみましたが、正常に動作します。Mac用のglwidgetにバグがあるかどうか誰かが知っていますか?またはどうすれば修正できますか?

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

qt - OpenGL VAO/VBO/などの共有。QGLWidget経由

QGLWidgets の 3 レイヤー階層を使用して、CAD のようなアプリで 5 つの OpenGL ビューポート間でシェーダーと頂点データを共有しています。ルート コンテキストはアプリケーション全体のシェーダーをコンパイルするために使用され、ドキュメントごとのコンテキストはモデルの頂点データを共有するために使用され、ビューポート コンテキストは実際にレンダリングを行うものです (グリッド頂点データやその他のビューポートごとのものも含まれます)。

シェーダーの共有は正常に機能しているようで、グリッドの描画も同様ですが、頂点データの共有に関しては失敗し、正直に言うと、どのように機能するのかわかりません...

モデル コンテキストが最新の状態でアイテムの 3D アイコンを作成しました。これは、'name' が 1 の最初の VAO であったためです。 )が現在であるため、VAO 1が呼び出されますが、描画されるのはビューポートのVAO 1です-私の素敵な赤いグリッドの中心線。OpenGL コンテキストは共有できますが、名前が一意ではないため、各アイテムが属する「名前空間」をどのように指定できますか?

モデル VAO が呼び出される直前にモデル コンテキストを最新のものにしようとしましたが、適切な VAO もビューポートも描画されません。

これは私には非常に基本的なことのように思えるので、何か愚かなことをしているに違いありません - 何か提案はありますか?

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

c++ - Windows 7 で QGLWidget が黒く表示される

Visual Studio 2010 を使用して Windows XP (Qt 4.7.2) でいくつかのコードを作成してテストし、Windows 7 がインストールされた別のマシンで試しました。

プログラムは QDialog を開き、ウェブカメラの画像を表示する QGLWidget を作成します (いくつかの処理を行います)。Windows XP では画像が正しく表示されますが、Windows 7 マシンでプログラムをテストすると、QGLWidget が黒くなり、画像が表示されません。ただ不思議なことに、ウィンドウの周りを移動して画面の枠からはみ出すと、画像が一瞬表示され、再び移動を停止すると真っ暗になり、画像が正しく受信されているように思えます。 /processed (場合によっては)、QTimer に問題がある可能性があります。

関連するコードは次のとおりです。

初期化:

タイムアウトごとに呼び出されるスロット:

最後に、ウィジェットのペイント機能:

私が間違っていることについて何か考えはありますか?SLOT timeOutSlot を呼び出していないのは QTimer ではないでしょうか?

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

qt - QScrollAreaのQGLWidgetは「無効なドローアブル」と表示します

メインのQWidgetのレイアウトにQGLWidgetを表示すると、すべて問題ありません。QGLWidgetをQScrollAreaに配置してから表示すると、Pythonは次のように言います。

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

qt - OpenCV + OpenGL + Qt

私は自分の拡張現実アプリケーションを設計しています。使用しているパターンの4つのコーナーはすでに検出されています。適切な順序で4つのコーナーを検出した後、それらをcvFindExtrinsicCameraParams2に渡します。カメラフレームに対するオブジェクトの回転と平行移動で良い結果が得られています。次に、その情報(回転ベクトルと平行移動ベクトル)をOpenGLに入れて、何かを描画する必要があります。当然、私はcvRodrigues2を使用して、回転ベクトルから回転行列を取得しています。これに加えて、私はこのようにQGlWidgetでカメラを見ています:

GLWidget.h

GLWidget.cpp

さて、メインウィンドウのコンストラクターの追加のメモとして、次のようなものがあります。

GLウィンドウをメインウィンドウ内に配置するため。また、GLViewer.h内に次のような新しい変数を作成しました。

したがって、3Dオブジェクトを表示するために、GLViewer内に次のようなメソッドを作成しました。

その後、glDrawPixels()で画像を描画した後、明らかに行列をポップした後、GLViewer :: paintGL()メソッドに次のようなものを入れます。

したがって、modelViewMatrixの場合、行ではなく列に順序付けするか、必要に応じて転置する必要があることを考慮に入れています...したがって、当然のことながら、最後のステップとして、作成した関数GLWidget::setModelViewを呼び出します。カメラの内因性と外因性を配列に変換しました。

しかし、何も表示されません...コードを試しましたが、軸の描画は機能しますが、射影行列はありません...しかし、glutPerspective()を使用すると(明らかにglMatrixMode(GL_PROJECTION)の後)、次のことができます。何も見えません...だから、私が言ったように、私は自分の外部カメラパラメータを取得しているので、ARToolkitを使用せずに拡張現実を備えたQtで動作するコードを持っている人がいるかどうかはわかりません...したがって、外部カメラパラメータを取得し、それらをopenGLプロジェクションおよびmodelviewマトリックスに変換する実用的なコードを誰かが持っている場合...うーん、非常に役立ちます...これは私がこの例を見つけたためです:

私は2つのカメラモデル間の変換を成功させるためにすべての手順を実行しました...誰かが動作するコードを持っているかどうか本当に感謝します...ありがとう!!!

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

qt - QGLWidget は QT でどのように機能しますか?

驚くべきことに、QWidget を QGLWidget に切り替えたところ、QPainter::drawImage の呼び出しが 5 倍速くなりました。ウィジェットの種類以外は何も変更しませんでした。QPainter 呼び出しのパフォーマンスを向上させるにはどうすればよいでしょうか? 私はそれがうまくいくことをうれしく思いますが、私はその方法を理解していません。何か案は?

ありがとう。