いくつかの視点からシーンをレンダリングし、各レンダリングをファイルに保存することになっている Qt コンソール プログラムがあります。次のように実行されます。
for(int k = 0; k < numberOfViewpoints; ++k)
{
RenderToQGLPixelBuffer(k);
QString fname = GetFileName(k);
QImage im = pixBuffer->toImage();
im.save(fname);
}
このようにすると、すべての画像が空白になります。ただし、画像を保存した後、プログラムを 1 秒間スリープ状態にすると、次のようになります。
for(int k = 0; k < numberOfViewpoints; ++k)
{
RenderToQGLPixelBuffer(k);
QString fname = GetFileName(k);
QImage im = pixBuffer->toImage();
im.save(fname);
Sleep(1000);
}
その後、期待どおりに機能し、画像が正常に表示されます。ただし、これにより処理時間が大幅に増加することは明らかです。この問題を解決する方法はありますか?