PowerVR SGXハードウェアでARMデバイスのテクスチャにオフスクリーンレンダリングを実装する必要があります。ユーザ空間メモリへのOpenGL ESレンダリング
すべてが完了しました(ピクセルバッファとOpenGL ES 2.0 APIが使用されました)。未解決の唯一の問題は非常に遅いですglReadPixels
機能。
私はOpenGL ESの専門家ではないので、私はコミュニティに尋ねます:テクスチャをユーザ空間のメモリに直接レンダリングすることは可能ですか?または、テクスチャのメモリ領域のハードウェアアドレスを取得する方法がありますか?いくつかの他のテクニック(EGL拡張)?
私はPowerVRハードウェアのためだけに働く普遍的なソリューションは必要ありません。
更新: 'slow function glReadPixels
'に関するさらに詳しい情報です。 CPUのメモリへのコピー512×512 RGBのテクスチャデータ:
glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGBA, GL_UNSIGNED_BYTE, &arr)
は210ミリ秒かかり、glReadPixels(0, 0, WIDTH, HEIGHT, GL_BGRA, GL_UNSIGNED_BYTE, &arr)
はmemcpy(&arr, &arr2, WIDTH * HEIGHT * 4)
が5ミリ秒
GL_BGRA
がglReadPixelsための標準ではない、それはPoverVR拡張子だ)かかり
テクスチャが大きい場合は、違いが大きくなります。
クライアント空間のテクスチャに必要なものは何か質問できますか?おそらくGPUメモリを残すためにテクスチャを必要としないかもしれません。うまくテクスチャリングするためにテクスチャを使用したいときは、[FBOs](http://www.songho.ca/opengl/gl_fbo.html)を使用してGPUテクスチャに直接レンダリングすることができますあなたの全面的な問題は時代遅れです。 –
いいえ、私は本当にそれが必要です。レンダリングされたイメージは、デバイスの作業の結果としてネットワークを介して送信する必要があります。 – qehgt