問題タブ [off-screen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QOpenGLWidget を使用したオフスクリーン レンダリングの最も簡単な方法
私は非表示の QOpenGLWidget (Qt 5.4.2、QGLWidget ではありません) を持っています。基本的には、grab() またはgrabFramebuffer() を継続的に実行して、そのコンテンツを取得 (およびディスクに書き込み) したいと考えています。ウィジェットは、表示されている場合は適切にレンダリングされますが、非表示の場合はレンダリングされません。show() の後に hide() 呼び出しを実行すると、機能します。ドキュメントによると、 QOpenGLWidget は内部的にすでにフレームバッファにレンダリングされているため、これは奇妙に思えます。これを実現する最も簡単な方法は何ですか (別のフレームバッファを作成せずに可能であれば)?
カスタム OpenGL で描画された QGraphicsItems を含むビューポートとして QOpenGLWidget を使用して、オフスクリーン QGraphicsView をキャプチャできるというボーナス ポイント...
android - Android のオフスクリーン ビューは背景のみを描画し、他には何も描画しません
ビューを完全にオフスクリーンで作成してレンダリングしようとしています。最初に、私は(http://arpitonline.com/2012/07/17/capturing-bitmaps-of-views-in-android/から)試しました:
ビューの背景色のみをレンダリングしました。正しいサイズと正しい背景色ですが、内容は完全に空です。それから私はこれにつまずいた:
しかし、ここでも同じ結果が得られます。内容が空の正しいサイズと背景色です。ビュー内には多くのビューがあり、それらに多くのプロパティを設定し、null ポインターなどはなく、すべてが正しく設定されます。しかし、それらは描かれていません。なぜこれが起こるのでしょうか?
更新: psking が示唆したように、描画ロジックをに移動しましたView#post
が、それでも同じです (完了を起動するのに時間がかかりますが、ビューが実際に何かを実行する手がかりになる可能性があります)。両方の方法を試しました:
(補完はビットマップを取る私の関数です)
と
しかし、それでも同じです。
html - オフスクリーン キャンバスには、通常のキャンバスと同じくらいの「スペース」がありますか?
キャンバス間でデータをコピーすることについてこの質問に似た状況がありますが、私の場合、キャンバス エンジン自体に問題が発生していると思います。
オンスクリーン キャンバスと同じ幅と高さのオフスクリーン キャンバスを作成しています。
次に、オフスクリーン キャンバスからオンスクリーン キャンバスに次のように描画します。
オフセットは、このすべての描画が行われる前に「ライブ」キャンバス コンテキストを変換する関数への引数でもあります。
言い換えれば、オンスクリーン コンテキストの変換されたオフセットに対応するオフスクリーン コンテキストのセクションを取得しようとしています。
これにはいくつかの問題があります。オフセットによって「カメラ」が原点から遠くに移動すると、オフスクリーン キャンバスの「エッジ」に遭遇します。
画面上のキャンバスに対して同じレンダリング操作を行うと、要素は問題ないことに注意してください。
オフスクリーン キャンバスは、キャンバスと同じように「エッジ」からの描画を処理するのにあまり適していないようです (定義された領域外の描画コマンドを黙って無視します)。の上または左[0,0]
(または下または右)に行った描画を反映します[width,height]
。これに対応する方法はありますか?
私が試したこと:
- オフスクリーン キャンバスの幅と高さを調整します (残念ながら、これが座標に与える影響は予測が難しいようです)。
canvas - HTML5 キャンバスの描画コンテンツを再利用する最も効率的な方法
オフスクリーンを使用してcanvas
、特定の変数のランタイム値に基づいて特定の画像を動的に生成します。画像がオフスクリーン キャンバスに描画されたら、それを取得して、Web アプリケーションのいくつかの場所で使用したいと考えています。
戦略 1:オフスクリーン キャンバスのtoDataURL()
メソッドを使用data:
して、画像を含む URIを取得し、img
それを表示するページ内の複数の要素にプログラムで設定できます。
戦略 2:オフスクリーン キャンバスのgetImageData()
メソッドを使用してImageData
インスタンスを取得します。img
要素を要素に置き換えて、それらcanvas
を呼び出しputImageData()
ます。
メモリに関してより効率的な戦略はどれですか? どちらがより「慣用的」ですか? 表示された画像のインスタンスを保持するために必要なメモリが重複しないようにしています。他の提案?
performance - cornerRadius とオフスクリーン レンダリングは iOS 9 のパフォーマンスにどのように影響しますか
cornerRadius と maskToBounds を設定すると、オフスクリーン レンダリングが発生するため、テーブルをスクロールするときのパフォーマンスに影響します。これは以前にも何度も言及されてきましたが、iOS 9 でこれについて実験したことのある人はいますか?
これが私のデモです。コーナー半径を設定しても、スクロールのパフォーマンスには影響がないようです。私の iPhone 6 では、平均 fps はまだ 57 または 58 です。
iOS 9 は最適化を行いますか、それとも間違ったことをしましたか?
ところで、UIImageView が正方形 (幅 = 高さ) の場合、いくつかの UIImageView の conner を設定するとオフスクリーン レンダリングにつながらないことに気付きました。これはどのように起こりますか?
c++ - Qt オフスクリーン イメージを作成し、パーツをオンスクリーンにコピーしますか?
Qt5.5 を使用しています。オフスクリーン イメージを作成し、オフスクリーン イメージの特定の部分をオンスクリーン (可視) 領域にコピーしたいと考えています。
特定のサイズのオフスクリーン画像を作成し、その上に何かを描画し、その特定の部分 (長方形) をオフスクリーン画像から可視領域にコピーする方法の良い例を教えてください。
opengl-es-2.0 - Android: オフスクリーン テクスチャの負の値が 0 に固定される
2D テクスチャにオフスクリーン レンダリングを使用しています。最初のシェーダーは YUV 値を出力し、2 番目のフラグメント シェーダーはオフスクリーン テクスチャから YUV を読み取ります。2 番目のシェーダーでは、U と V を操作して、-0.5 から 0.5 の範囲にします。しかし、これらは、レンダリングしようとするとすぐに 0 から 1 (正) にクランプされます。私の負の値はすべて0になります。
問題がここにあることがわかりました:
GL_UNSIGNED_BYTE の代わりに GL_FLOAT を使用すると、色の形式が一致しないためエラーが発生します。リンクから、https://www.khronos.org/opengles/sdk/docs/man/xhtml/glTexImage2D.xmlは、サポートされているすべての形式が 0 ~ 1 の範囲にクランプされるように見えます。次のテクスチャでも負の値を取得する方法。
GL_R16F などの他の画像形式を使用できることがわかりましたが、リンク/GLES20 ではいずれもサポートされていません。