fxaaを無効にした後のセシウムラベルのぼやけ

Jan 06 2021

私はこの投稿の答えに従いましたセシウムラベルはぼやけていますが、運がありませんでした。

私はそれを確認しましたがviewer.scene.fxaa = false、何も変わらないようです。添付のスクリーンショットをご覧ください。

誰かがこれに対する修正を持っていますか?

本当にありがとう!

回答

2 emackey Jan 06 2021 at 21:15

のようなものをハードコーディングすることに注意してくださいviewer.resolutionScale = 2。このコード行には、ユーザーがおそらく高DPI画面を使用しており、それに応じてブラウザーがWebページを拡大しているという前提が組み込まれています。すでに1:1のピクセル比を使用しているシステムでこのコード行を実行すると、デバイスが実際に表示できる幅の2倍、高さの2倍のレンダリングが行われる可能性があります。

別の提案は次のとおりです。

viewer.resolutionScale = window.devicePixelRatio

完璧ではありませんが、ハードコードされた2よりも優れています。Cesiumビューアをデバイスのネイティブピクセルと正確に一致させようとします。これは、特に高DPI画面では、「CSSピクセル」と同じサイズではない場合があります。

ここでの値「1」(デフォルト)は、CesiumのビューアキャンバスピクセルがWebページのCSSピクセルのアイデアと同じサイズであることを意味します。これは、画面自体のネイティブピクセルよりも大きくて分厚い場合があります。数値が大きいほど、WebGLキャンバスの解像度の乗数として機能し、より多くのグラフィックメモリとパフォーマンスを使用します。これをテストしているマシンにはすでに1.5または2.0のwindow.devicePixelRatioがあるため、上記の行は特定のマシンでハードコードされた2と同じように動作する可能性があります。ただし、ローカルのdevicePixelRatioを確認する方が、想定するよりも優れています。

LukeVenter Jan 06 2021 at 15:57

これは、以下を追加することで修正できます。

  viewer.resolutionScale = 2

パフォーマンスに影響を与える可能性がありますが、これまでのところ問題はないようです。