私はプロジェクト用にlibqglviewerを使用していますが、私はUSB経由でモーションキャプチャデバイスから入力を読み込み、これを人間としてビューアに表示します。私は、ビューアのdraw()メソッドでOpenGLのものを描画し、うまく動作します。しかし、モーションコントローラが変わると、私は実際に新しい位置値を取得し、ビューアでこれらを描画しますが、ビューア画面をクリックするまでこのアップデートは表示されません。ビューア内のフレームを単独で更新することは可能ですか?libqglviewerでダイナミックシーンを更新する方法
0
A
答えて
1
新しい位置の値を取得した直後にupdateGL
を投稿する必要があるようです。関数がupdate
呼ばれる2Dに塗装用
void QGLWidget::updateGL() [virtual slot]
Updates the widget by calling glDraw().
。
また、drawメソッド内から呼び出さないでください(libQGLViewerドキュメントのupdateGLを参照)。
このノートはQWidget::paintEvent()から来ている:
注意:一般的に、あなたは(更新の呼び出しを控える)または再描画する必要があり()paintEvent(内部)。たとえば、paintevent()内の子に対してupdate()またはrepaint()を呼び出すと、未定義の動作が発生します。子はペイントイベントを取得することも、取得しないこともあります。
おそらくQGLViewerにも同じことが当てはまります。
repaint
も使用できますが、お勧めできません(QWidget::repaint()参照)。
こんにちは、お返事ありがとうございます、私はそれを試してみましょう! – mgr