問題タブ [tearing]
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.
c# - WPF:WriteableBitmapでティアリングを防ぐにはどうすればよいですか?
を使用して、WriteableBitmap
毎秒約 20 フレームで処理する画像を表示しています。
この質問 ( WPF: 急速に変化する画像を表示するより効率的な方法? )
とこの質問 (大きなメモリを割り当てずに迅速に更新する画像を表示する方法は? )
は、これを行う最善の方法はWriteableBitmap
.
のドキュメントは、UI スレッドWriteableBitmap
で呼び出すWritePixels()
と、レンダリング スレッドが画像を再描画すること を示しています。
MSDN ドキュメント:
UI スレッドはコンテンツをバック バッファーに書き込みます。レンダリング スレッドは、フロント バッファーからコンテンツを読み取り、それをビデオ メモリにコピーします。バック バッファーへの変更は、変更された四角形領域で追跡されます。
<中略/>
更新がレンダリング スレッドに送信されると、レンダリング スレッドは、変更された四角形をバック バッファーからフロント バッファーにコピーします。レンダリング システムは、この交換を制御して、デッドロックを回避し、「テアリング」などのアーティファクトを再描画します。
バックグラウンド スレッドで画像を処理してから、Dispatcher.BeginInvoke()
を呼び出して、が UI スレッドでWritePixels()
確実に呼び出されるようにします。WritePixels()
でティアリングがまだ発生していることWriteableBitmap
がわかりました。私が取り組んでいるアプリケーションでは、ひどく見えます(医療画像アプリケーション)。何か私にできることはありますか?
java - Javaアニメーションでのスキップとティアリング
次のコードは、2つの小さな正方形がその中で回転している正方形を描画します。キーボードの矢印をクリックするたびに、システム全体がその方向に移動します。しかし、私は画像が裂けたり、時々スキップしたりする問題があります(小さいですがまだそこにあります)。コードを大幅に変更せずにこれらの問題を修正する方法を誰かが知っているかどうか疑問に思いました。
android - SurfaceViewのちらつき/ティアリング
私は自分の問題を回避する方法を見つけようとしています。http://groups.google.com/group/android-developers/browse_thread/thread/a2aac88a08cb56c2/b7dff4ba388cd664?lnk=gst&q=SurfaceView#b7dff4ba388cd664を読んだことがありますが、私が知る限り、それは一種の「タフな運」の答え。だからここに私の問題があります:
通常の方法(lock / unlockAndPost)でSurfaceViewを使用して、サーフェスが変更されるたびにゲームの背景のビットマップを描画し(方向など)、一連の移動する円(半径が最大30)をレンダリングしています。約25.f)。これらの円の位置のx、yデータはサーバーからのものであり、すべて正常に実行されます。すべての円オブジェクトはリストに保存され、この更新が同期されるように注意してそれらの位置が更新されます。ただし、これらの円を画面に描画すると(canvas.lock()中)、ほとんどの場合、うまくレンダリングされますが、フレームの一部の円が一時的に裂けたりちらついたりすることがあります(たとえば、数秒に1回)。円の数は常に一定であるため、問題はなく、円のリストが同時に変更されることはありません(前述のとおり、同期されています)。これらすべての円を各レンダリングループのビットマップに描画し、そのビットマップをメインキャンバスに描画してみました。これはパフォーマンスにさらに影響を与えるようです(メインキャンバスに直接円を描く場合は〜30FPSではなく〜13FPS)。情報が少し漠然としている場合は申し訳ありませんが(会社を幸せに保つために:p)、誰かが私に手がかりを与えることができるかどうか疑問に思っていましたか?それとも私は運が悪かったのですか。サーバーからの測位データはリアルタイムデータであり、レンダリングがこれらのリアルタイムの位置を反映することが非常に重要であることに注意する必要があります。情報が少し漠然としている場合は申し訳ありませんが(会社を幸せに保つために:p)、誰かが私に手がかりを与えることができるかどうか疑問に思っていましたか?それとも私は運が悪かったのですか。サーバーからの測位データはリアルタイムデータであり、レンダリングがこれらのリアルタイムの位置を反映することが非常に重要であることに注意する必要があります。情報が少し漠然としている場合は申し訳ありませんが(会社を幸せに保つために:p)、誰かが私に手がかりを与えることができるかどうか疑問に思っていましたか?それとも私は運が悪かったのですか。サーバーからの測位データはリアルタイムデータであり、レンダリングがこれらのリアルタイムの位置を反映することが非常に重要であることに注意する必要があります。
助けてくれてありがとう!クリス
編集:
けっこうだ。これがレンダリングスレッドからのrun()です。
かなり標準的なもの(月着陸船のほぼカーボンコピー:p)
非常に簡単にフォローできます。向きが変わった場合は背景のビットマップを再描画して、レンダリングスレッドを開始してください。
そして最後に:
みんなありがとう。クリス
javascript - HTML5 キャンバスを引き裂く?
canvas
HTML5要素を使用して小さなゲームを作成しています。Ubuntu の Firefox および Chromium ブラウザーで明らかなテアリングが発生している背景がスクロールしていることを除けば、うまく機能します。私が期待するちらつきがないので、バッファリングされていると確信しています。ただ引き裂く。これを回避する方法や、最後の画面の更新直後にレンダリングする方法はありますか?
wpf - UIのWPFレンダーティアリングについて何ができますか?
がっかりしたことに、私が取り組んでいるアプリケーションの 1 つが、特定のコンピューターではかなりうまく表示されないことがわかりました。UI の静的なグラフィックスとテキストは、何らかのアニメーションを行わないと破れるという深刻なケースに悩まされています。これにより、テキストが読めなくなり、もちろん、グラフィックスの見栄えも悪くなります。
さまざまなコンピューターでこの問題に気付きましたが、本当に考えさせられたのは、Radeon Mobility ビデオ カードを搭載した新しい東芝ラップトップでした。混乱。これは明らかにビデオ カードに影響を与える電源ライン ノイズの問題のように見えます - ハードウェア アクセラレーション グラフィックスを推測しています。ただし、WPF 以外のグラフィックスは正常にレンダリングされるため、ユーザーに「これは私のアプリではなく、あなたの電源です!」とどのように伝えますか? ?!
これに遭遇したことがありますか?とにかくそれを修正する方法はありますか?
アプリは .NET 4.0 で、ラップトップは Windows 7 を実行していました。
opengl - OpenGL での MipMapping の問題
3D オブジェクト (obj または 3ds または collada ファイル) を openGL アプリケーションにロードしています。3 環境は非常に大きい (すべての軸で数百メートル)。私の問題は、より小さい 3D オブジェクト (つまり ~< 1-2m のオーダー) が適切に深度テストされていないように見えることです。カメラのズームによっては、オブジェクトの背面 (テスト用に単純な立方体を使用しています) や、他の面が見える/見えない/破れているのが見えることがあります。より良い説明については、添付の画像を参照してください。この問題は、ミップマッピングが有効になっていることが原因であると思われます。ミップマッピングを無効にするか (誰かがこれを行うための簡単で迅速な方法を提案できますか)、ミップマッピングされたオブジェクトの解像度を高く設定したいと思います。それとも、間違ったツリーを完全に吠えていますか?
ありがとう
クリス
javascript - この Web サイトが原因で IE がティアリングするのはなぜですか?
http://gaxweb.eu/deploy/phenix/en-de/products?target=1340
たとえば、マウスホイールでカルーセルをスクロールするとティアリングが発生する奇妙な IE バグがあります。画像は、vsync なしでプレイするときに 3D ゲームを引き裂くのと同じように、2 つの部分に引き裂かれています。これはどのように可能ですか?他のブラウザでは問題なく動作します。さらに重要なことは、これをどのように修正すればよいでしょうか?
最も奇妙なこと: 以前に別の Web サイトでこれを使用したことがありますが、ティアリングは見られません。私はアイデアを使い果たしたので、助けていただければ幸いです。
android - Android:OnTouchListenerメソッドでrequestLayout()を呼び出す際の引き裂き効果? 修正する方法は?
プロジェクトにいくつかのドラッグ アンド ドロップ メカニズムを追加しようとしました。私がやっている方法は、基本的に、タッチ イベントが発生するたびに 2 つの操作を行うことです。
まず、タッチ イベントに従って onLayout() 内で使用しているパラメーターを更新し、次に更新のために
requestLayout() を呼び出します。
(従うべきコードのように、OnTouchListener メソッドと View の onTouchEvent() の両方で試しました)
問題は、画面上の結果があまり良くないことです。ドラッグされたビューにティアリングの問題があるように感じました(以前の描画が終了する前に新しい描画が開始されます)
コードは次のようになります (簡略化されたバージョン)。
調査した結果、問題はtouchListener メソッド内でrequestLayout()メソッドを呼び出すことにあることがわかりました。
その呼び出しを定期的に起動するタイマーに移動したところ、結果ははるかに良くなりました。
他の誰かがそれを経験し、タイマーを使用せずにそれを行うより良い方法を知っていますか?
私は、実際に必要以上に常にリフレッシュすることを避けたいと思っています。
ご協力いただきありがとうございます!
wpf - WPF アニメーションにはティアリングとちらつきがあります
WPF アニメーションのティアリングとちらつきに問題があります。問題を示すおもちゃのアプリがあります。アプリは、画面全体に正方形をアニメーション化します。四角形の端に裂け目が見られ、アニメーション全体が滑らかに感じられません。
Perforator は、>60fps、~10MB のビデオ メモリ、0 IRT を示します。
2 台の新しいハイエンド コンピューターでこれを試しましたが、どちらも同じようにアニメーションが貧弱です (>1GB vram、クアッド コアなど)。
actionscript-3 - flash.displayのちらつきを回避する方法
より「従来の」 C++バックグラウンドから来ているため、flash.display APIのようなものではなく、低レベルAPIの処理に慣れています。
私の問題はかなり初歩的なものですが、私の検索では解決策が見つかりませんでした。
ディスプレイAPIで画面のティアリング/ちらつきを回避するにはどうすればよいですか?60 fpsのような高いフレームレートでも、フレーム間でかなり厄介なちらつき/ティアリングが発生しています。
以下の単純な例を見てください。ここでは、スプライトの子は単にShapeのインスタンスであり、変更されることはありません。
ただし、他の誰もが一見スムーズで高速なアニメーションを実行できるため、基本的に同期の問題のように見えるため、実際にどのように実行するかについては少し戸惑います。