[choreonoid-users-ja 00154] Re: SceneViewの画面ダンプの取得と再セットの方法

中岡 慎一郎 s.nakaoka @ aist.go.jp
2015年 11月 26日 (木) 00:02:55 JST


産総研の中岡です。

SceneViewの描画はQGLWidget上に行っています。
その実装はsrc/Base/SceneWidget.cpp 内にあります。

ご希望の機能がQGLWidgetのAPIで実現できればよいのでしょうが、私の把握して
いる限りではQGLWidgetだけでこの機能を実現するのは難しいように思います。

一般的には、いったん内部描画用のバッファに描画して、それをあらためて加
工・表示するのだと思います。その場合、ビューに表示する必要があるのでした
ら、SceneWidgetやSceneViewをアレンジして新しくビューを開発する必要があり
ます。

内部で描画した画像を利用する方法については、カメラ画像等のシミュレーショ
ンを行っている、GLVisionSimulatorItemのソースを参考にしてください。
src/BodyPlugin/GLVisionSimulatorItem.[h/cpp]になります。

そこでは、描画を実際に行うクラスであるGLSceneRendererと、内部での描画先
のQGLPixelBufferを組み合わせて、これを実現しています。

On 2015年11月16日 18:57, AKAI,Tsugeharu wrote:
> いつもお世話になります。赤井です。
> 今、Choreonoid上でカメラシュミレーションのPluginを作成していて、
> 以下のことを行いたいと思います。
> 
> (1).SceneViewに表示される画像を実際のViewに表示される直前にプログラム的
> に2D画像として取得する
> (2).それを2D的にPlugin内で加工する
> (3).加工後の画像をSceneViewにセットして実際に表示する
> 
> これらはどのようにすれば実現可能でしょうか?
> 
> 外部から画像をセットするだけであれば、
> SgOverlayを使えば可能そうですが、
> 描画される直前の画像を取得する方法がわかりません。
> 
> よろしくお願いいたします。
> _______________________________________________
> choreonoid-users-ja mailing list
> choreonoid-users-ja @ choreonoid.org
> https://choreonoid.org/mailman/listinfo/choreonoid-users-ja
> 


-- 
中岡 慎一郎 <s.nakaoka @ aist.go.jp>
産業技術総合研究所 知能システム研究部門
ヒューマノイド研究グループ



choreonoid-users-ja メーリングリストの案内