Cloud¶

Mapray JS では、宇宙から見た雲を描けます。雲の量を表す画像を、地表から一定の高さの球面に貼って描きます。
使い方¶
CloudVisualizer を Viewer の生成時に渡し、viewer.init_promise を待ってから画像を読み込みます。初期化が終わる前に loadData などを呼ぶと、描画用のバッファが無いため例外になります。
const uiviewer = new maprayui.StandardUIViewer( "mapray-container", accessToken, {
atmosphere: new mapray.Atmosphere(),
cloud_visualizer: new mapray.CloudVisualizer(),
});
await uiviewer.viewer.init_promise;
await uiviewer.viewer.cloudVisualizer.loadData( from_url, to_url, 0.0 );
new mapray.CloudVisualizer( option ) のオプション:
| オプション | 内容 |
|---|---|
height |
雲を描く高さ [m] |
from_image / to_image |
最初に読む画像 |
gradient_array / gradient_mode |
雲の量から色への対応 (省略すると白で、雲の量が多いほど不透明になります) |
雲の画像¶
画像は 1440 × 722 ピクセルで地球全体を覆います。画素はグレースケール 8 bit で、白 (255) に近いほど濃い雲になります。画像は URL の文字列、URLResource、または読み込み済みの画像 (HTMLImageElement など) で渡せます。
CloudVisualizer のメソッド¶
viewer.cloudVisualizer から触ります。雲は 2 枚の画像 (From と To) を持ち、フェード係数で混ぜて描けます。
| メソッド | 動作 |
|---|---|
loadData( from, to, fade ) |
From と To に画像を読み込みます。to を省略すると From と同じ画像、fade を省略するとフェード係数を変えません |
loadFrom( image, fade ) / loadTo( image, fade ) |
From / To の一方だけを読み込みます |
pushFront( image, fade ) |
新しい画像を From に、それまでの From を To にします |
pushBack( image, fade ) |
新しい画像を To に、それまでの To を From にします |
setFade( v ) |
フェード係数。0 で From の画像、1 で To の画像。間は 2 枚を混ぜます |
setIntensity( v ) |
夜の側の雲の暗さの抑え方。1 以上で陰が付かず、0 に近いほど太陽の反対側の雲が暗くなります |
setGradient( colors, mode ) |
雲の量から色への対応 (RGBA の配列と、LINEAR / STEP) |
setVisibility( flag ) |
雲を描くか |
setIntensity( 1.0 ) |
setIntensity( 0 ) (夜の側を暗く) |
|---|---|
![]() |
![]() |
大気との関係¶
- 雲は大気の描画品質を読みません
- HDR パイプラインを使わない描画 (大気の品質
minimalなど) では、雲もシェーダーの中で同じトーンマップ・露出・ガンマを掛けるので、明るさの基準は変わりません
その他のメソッドや詳細、各メソッドの範囲と既定値は リファレンスマニュアル を参照してください。
サンプルコード¶
CloudVisualizer で雲を描く例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | |
Info
このサンプルコードは、<YOUR_MAPRAY_ACCESS_TOKEN>を、あなたのMapray CloudのアカウントのOrganization Tokenに置き換えるまで、期待通りに動作しません。
