描画品質¶
大気 (Atmosphere) と水面 (WaterPolygonEntityVisualizer) は、それぞれ描画品質を持ちます。品質は、負荷の大きい処理を描くかどうかだけを決めます。setter で設定した値は書き換えません。品質を下げても、上げ直せば置いた値のとおりに戻ります。プリセットとの順序にも依りません。
| 品質 | 大気 viewer.atmosphere.setQuality() |
水面 visualizer.setQuality() |
|---|---|---|
| 値 | "minimal" / "low" / "medium" / "high" |
同じ 4 つ |
| 列挙型 | mapray.Atmosphere.Quality |
mapray.WaterPolygonEntityVisualizer.Quality |
品質を置くまでの状態と既定値は API リファレンスを参照してください。水面は setQuality を呼ぶまで quality が undefined ですが、描き方は medium と同じです。
大気の品質は、大気・Render Effects・太陽・月・星・雲・夜景・地表・建物・点群・水面のすべてに影響します。水面の品質は水面だけに影響します。
大気の品質¶
見え方¶
| minimal | low | medium | high |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
上から、昼の富士山、太陽の低い富士山 (仰角 6°)、夕日の方向、宇宙から見た昼夜の境界です。
minimal/lowでは空気遠近と地表の物理ライティングが無いので、遠景が霞まず、太陽が低くても地表に陰影が付きませんminimal/lowでは、宇宙から見たときに昼夜の境界が描かれず、全球が昼に見えます。宇宙からの表現にはmedium以上を使ってください- 夕日の図では、
medium/highだけ太陽のまわりにブルームが掛かります
機能¶
| 機能 | minimal | low | medium | high |
|---|---|---|---|---|
| HDR パイプライン (トーンマップ) | なし。キャンバスへ直接描く | あり | あり | あり |
| ブルーム・光芒 | なし | なし | あり | あり |
| アンチエイリアス | ブラウザ標準 | なし | マルチサンプル | マルチサンプル (サンプル数が多い) |
| 建物・点群の大気ライティング | なし (固定のライティング) | あり | あり | あり |
| 地表の大気ライティング (太陽・環境光) | なし | なし | あり | あり |
| 空気遠近 | なし | なし | あり | あり |
| 地表の物理ライティング | なし | なし | あり | あり |
| 宇宙視点の細かい空気遠近 | (空気遠近なし) | なし | あり | あり |
| 空・空気遠近の計算の細かさ | 粗い | 粗い | 細かい | 最も細かい |
| 大気の再計算の頻度 | 最も少ない | 少ない | 毎フレーム | 毎フレーム |
| 再計算するカメラの移動・太陽の移動の大きさ | 大きく動いたときだけ | 大きく動いたときだけ | 小さな動きでも | わずかな動きでも |
| 再計算するカメラの回転 | (空気遠近なし) | (空気遠近なし) | 小さな回転でも | わずかな回転でも |
- 「大気の再計算」は、カメラと太陽に追従する事前計算の結果を作り直す処理です。カメラか太陽が品質ごとの量より大きく動いたときに、品質ごとの最短間隔より短くならない範囲で作り直します (大気の設定を変えたときは間隔を待ちません)。カメラの回転は空気遠近だけを作り直す理由なので、空気遠近の無い
minimal/lowでは効きません。月の照度が 0 より大きいときは、月が太陽と同じ量より大きく動いても作り直します minimalと HDR モード"off"はキャンバスへ直接描くので、ブラウザが持つキャンバスのアンチエイリアスが効きます (サンプル数はブラウザが決めます)。lowにはアンチエイリアスがありません- マルチサンプルのサンプル数は実行環境の上限を超えません。浮動小数点カラーのマルチサンプルに対応しない環境では、後処理のアンチエイリアス (FXAA) に切り替わります
- 表に無い品質の文字列を置くと、
lowと同じ動作になります (qualityは置いた文字列をそのまま返します)
品質ごとに反映される Atmosphere の設定¶
| setter | minimal | low | medium / high |
|---|---|---|---|
setGroundRayleigh / setGroundMie / setMieG / setAtmosphereHeight / setRayleighDistribution / setMieDistribution / setMultiScattering |
空と太陽の減光、水面に反映される。地表・建物・点群には反映されない | 空・建物・点群・水面の照明に反映される。地表と遠景の霞 (空気遠近) には反映されない | すべてに反映される |
setExposureScale / setGroundExposure |
空・太陽・月・雲・水面に反映される | 加えて、ライティングモード PHYSICAL の建物・点群に反映される | 加えて、地表に反映される |
setAmbient |
水面に反映される。地表・建物・点群には反映されない | 建物・点群・水面に反映される。地表には反映されない | すべてに反映される |
setAerialPerspectiveBlend / setAerialPerspectiveDistance |
反映されない | 反映されない | 反映される |
setGroundPhysicalLighting / setGroundLightingExposure |
反映されない | 反映されない | 反映される |
setBuildingReflectanceLimit |
反映されない | 反映される | 反映される |
setDefaultLightingMode と各エンティティのライティングモード |
反映されない (固定のライティング) | 反映される | 反映される |
setSkyVisibility / setGroundVisibility / setEnvironmentEnabled / setStarMask |
反映される | 反映される | 反映される |
ほかの機能への影響¶
| 機能 | minimal | low | medium | high |
|---|---|---|---|---|
| Render Effects のトーンマップ・露出・ガンマ | 空・太陽・月・雲・水面のシェーダーの中で反映される | 反映される | 反映される | 反映される |
| Render Effects のブルーム・光芒 | 反映されない | 反映されない | 反映される | 反映される |
| Render Effects の自動露出 | 反映されない | 反映される | 反映される | 反映される |
太陽の照度 (Sun.setIlluminance) |
空・太陽の円盤・水面に反映される。地表・建物・点群には反映されない | 地表以外に反映される | すべてに反映される | すべてに反映される |
太陽・月の円光 (setGlowIntensity) |
反映される | 反映される | 反映される (ブルームも掛かる) | 反映される (ブルームも掛かる) |
月の照度 (Moon.setIlluminance) |
空の月光・月の円盤・水面に反映される。地表・建物・点群には反映されない | 地表以外に反映される | すべてに反映される | すべてに反映される |
| 星・天の川 | 描く | 描く | 描く | 描く |
| 雲 | 描く | 描く | 描く | 描く |
| 夜景レイヤー | 描く (空気遠近なし) | 描く (空気遠近なし) | 描く (空気遠近あり) | 描く (空気遠近あり) |
| 水面の大気の照明 (太陽の減光・月光・環境光) | 反映される | 反映される | 反映される | 反映される |
| 水面の空気遠近 | なし | なし | あり | あり |
太陽の照度と月の照度は、どの品質でも、ライティングモード SIMPLE の建物・点群には反映されません。
水面は品質に依らず大気の LUT で照らします。そのため minimal でも、地表・建物・点群と違って大気の照明が効きます。
| minimal | low | medium | high |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
(水は品質 high、大気の品質だけを変えています)
品質と組み合わせて変わるもの¶
品質のほかに、次の設定でも描き方が変わります。
| 状況 | 動作 |
|---|---|
render_effects.setHDRMode( "off" ) |
どの品質でも HDR パイプラインを使いません。minimal と同じく、地表・建物・点群は固定のライティングになり、ブルーム・自動露出・光芒は効きません。空・太陽・月・雲・水面のトーンマップと露出は効きます |
render_effects.setHDRMode( "on" ) |
minimal でも HDR パイプラインを使います。ただしブルーム・光芒・アンチエイリアスは無く (low と同じ)、地表・建物・点群は固定のライティングのままです |
大気を無効にしたとき (setEnvironmentEnabled( false )、または空と地表を両方非表示) |
品質に依らず、空を描かず、"auto" なら HDR パイプラインも使いません。地表・建物・点群は固定のライティング、太陽・月は減光しません |
setGroundVisibility( false ) |
品質に依らず、地表・B3D・点群・水面の空気遠近が消えます |
大気が無い Viewer |
大気の品質はありません。HDR モード "on" にすると、medium と同じ内容 (ブルーム・光芒・マルチサンプル) で HDR パイプラインを使います |
| 浮動小数点のカラーバッファに描けない環境 | 品質に依らず大気を無効にし、HDR パイプラインも使いません。大気を持つ Viewer かモードが "on" のときは、コンソールに警告を 1 回出します |
水面の品質¶
水面の品質は水面だけに影響します。全機能を描くのは high です。
| 機能 | minimal | low | medium | high |
|---|---|---|---|---|
| 画面空間反射 | なし | 少ないステップ数まで | 少ないステップ数まで | 置いたステップ数 (上限あり) |
| 透け (屈折) | なし | なし | あり | あり |
| コースティクス | なし | なし | なし | あり |
| 白波 | なし | あり (その場の判定だけ) | あり | あり |
| 泡の履歴 | なし | なし | あり | あり |
| 打ち寄せる波・汀線の泡 | なし | なし | あり | あり |
| 泡の解像度 | 低 | 低 | 低 | 高 |
| 波の本数 | 少 | 少 | 中 | 多 |
| 波の自己変位 | なし | なし | なし | あり |
| minimal | low | medium | high |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
(大気の品質は high)
品質ごとに反映される WaterPolygonEntityVisualizer の設定¶
| setter | minimal | low | medium | high |
|---|---|---|---|---|
物理量 (setWindSpeed / setWindFetch / setCurrentSpeed / setWaveSteepness / setWaterTurbidity / setSeabed など) |
反映される | 反映される | 反映される | 反映される |
setWaveHeightScale / setReflectionScale / setSpecularScale |
反映される | 反映される | 反映される | 反映される |
setReflectionSteps |
反映されない | 上限で頭打ち | 上限で頭打ち | 反映される (上限あり) |
setReflectionRefine |
反映されない | 反映される | 反映される | 反映される |
setRefractionScale |
反映されない | 反映されない | 反映される | 反映される |
setCausticsScale |
反映されない | 反映されない | 反映されない | 反映される |
setWhitecapScale |
反映されない | 反映される | 反映される | 反映される |
setFoamLifeScale |
反映されない | 反映されない | 反映される | 反映される |
setShoreBreakScale |
反映されない | 反映されない | 反映される | 反映される |
- どの品質でも、透けの倍率 (
setRefractionScale) を 0 にするとコースティクスも消えます - 沖合の水域 (
Usage.OFFSHORE) は、品質に関係なく画面空間反射・コースティクス・汀線の計算 (打ち寄せる波・汀線の泡) を止めます (Water)
負荷の目安¶
水面を描く品質ごとの 1 フレームの時間を、水面 medium を 1 としたときの比で示します。
| 条件 | 1 フレームの時間 (medium = 1) |
|---|---|
| 水面なし | 約 0.7 |
水面 low |
約 0.9 |
水面 medium |
1 |
水面 minimal と high は測っていません。負荷は GPU と場面によって大きく変わります。実際の環境で測ってから品質を選んでください。
品質の選び方¶
| 使う場面 | 大気 | 水面 |
|---|---|---|
| 低スペックの GPU、スマートフォン | minimal または low |
minimal または low |
| 一般的な PC | medium |
medium |
| 宇宙からの表現 | medium 以上 |
— |
| 見た目を優先 (静止画・映像の書き出し) | high |
high (HQ Rendering) |



























