4

OpenGL レンダリング シーンの上にグラフィックスをオーバーレイしようとしています。

なんとか起動して実行しましたが、FPS の低下がやや大きすぎます。

私は現在GLSceneをGraphics32と組み合わせて使用​​しています。

GLScene Rendering Context をビットマップにレンダリングし、そのビットマップを TImageView32 に適用し、TImage32 内でいくつかの最終的な UI タッチを行います。

ビットマップにレンダリングするために使用しているコードは次のとおりです。これにより、FPS も低下します。

procedure RenderToBitmap;
  var b: TBitmap;
begin
  b:=TBitmap.Create;
  b:=GLSceneViewer.Buffer.CreateSnapShotBitmap; //TGLSceneViewer
  ImgVwr32.Bitmap.Assign(b); //TImageViewer32
  b.Free;
end;

リアルタイム レンダリングを可能にする他のコード (以下を参照) を試しましたが、ImageViewer32 の「ビットマップ」プロパティを変更できません。つまり、GLScene レンダリング コンテキストはレンダリングされていますが、自分のグラフィックスはレンダリングされていません。コード:

//The following line is put inside the FormCreate call
GLSceneViewer.Buffer.CreateRC(GetDC(ImgVwr32.Handle),false);

FPS を失わずに、レンダリング コンテキストの上にグラフィックスを適切にオーバーレイしたり、レンダリング コンテキストの出力をコピーしたりするにはどうすればよいですか?

4

1 に答える 1