SunVisualizer¶
太陽を表現するクラス
同時に使えるのは 1 つの Viewer だけ。破棄されていない別の Viewer に渡すと警告を出し、その Viewer では 使われない。Viewer を作り直して使い回すときは、前の Viewer の Viewer.destroy を先に呼ぶ (設定した値は次の Viewer へ引き継がれる)。複数の Viewer を並べるときは Viewer ごとに作る。
Constructors¶
new SunVisualizer()¶
new SunVisualizer(
divide):SunVisualizer
constructor
Parameters¶
| Parameter | Type | Default value | Description |
|---|---|---|---|
divide |
number |
32 |
円分割数 (3以上) |
Returns¶
Accessors¶
glow_intensity¶
getglow_intensity():number
太陽の周囲の円光の強さ (無次元の倍率。0.0 以上)。
置かれた値を返す。太陽を隠している間も値は変わらない。
See¶
SunVisualizer.setGlowIntensity
Returns¶
number
visibility¶
getvisibility():Boolean
可視性フラグを取得
Returns¶
Boolean
Methods¶
destroy()¶
destroy():
void
破棄
Returns¶
void
draw()¶
draw(
render_stage,gocs_to_clip,view_to_gocs):void
太陽を描画する。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
render_stage |
RenderStage |
レンダリングステージ |
gocs_to_clip |
Matrix |
gocs_to_clip |
view_to_gocs |
Matrix |
view_to_gocs |
Returns¶
void
init()¶
init(
viewer):void
初期化 Viewerのコンストラクタで呼び出されます。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
viewer |
Viewer |
所属するViewer |
Returns¶
void
setGlowIntensity()¶
setGlowIntensity(
value):void
太陽の周囲の円光 (明るい暈) の強さを設定する。
円光の強さは大気のもや量 (Atmosphere.setGroundMie) が主に駆動するが、 それだけでは実写ほど目立たないため、これは実写 (低い太陽の周りに見える暖色の暈) の 見え方に合わせて円光だけを底上げする演出上の増幅である。0 で円光を無効化できる。
効き方は太陽の高度に強く依存する: 地平線に近いほど効果が薄く、高く昇るほど 効果が大きくなる (目安として地平線付近と高い太陽とで 8 倍程度の差がある)。
SunVisualizer.setVisibility で太陽を隠している間は円光も描かれない
(値は保たれ、表示を戻すとそのまま反映される)。プリセット
(Atmosphere.applyPreset) の aureole_intensity もここへ書き込まれ、
後から書いたほうが残る。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
円光の強さ (無次元の倍率)。0.0 以上 (負の値は 0.0)。2〜3 が快晴を保てる上限の目安 |
Returns¶
void
Default Value¶
0.3 (filmic-physical プリセットの値)
~~setIntensity()~~¶
setIntensity(
value):void
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
太陽照度(基準の太陽が 1.0) |
Returns¶
void
Deprecated¶
Sun.setIlluminance へ委譲する。ディスクだけでなく 空・空気遠近・地表・水面の明るさも一様に変わる。
~~setMie()~~¶
setMie(
value):void
Parameters¶
| Parameter | Type |
|---|---|
value |
number |
Returns¶
void
Deprecated¶
ミー係数を設定する。大気なしで HDR パイプラインを使わないときの 太陽の赤化にだけ使われ、大気がある描画では参照されない。太陽の明るさには 代わりに SunVisualizer.setIntensity を使う。
~~setRadius()~~¶
setRadius(
value):void
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
既定の視直径に対する倍率 |
Returns¶
void
Deprecated¶
既定の視直径に対する倍率として Sun.setAngularDiameterDegree へ委譲する。 視直径は立体角を決めるので、大きくするとディスクは大きく暗くなる(総フラックスは Sun.setIlluminance が担うため地表の明るさは変わらない)。
~~setRayleigh()~~¶
setRayleigh(
value):void
Parameters¶
| Parameter | Type |
|---|---|
value |
number |
Returns¶
void
Deprecated¶
レイリー係数を設定する。大気なしで HDR パイプラインを使わないときの 太陽の赤化にだけ使われ、大気がある描画では参照されない。太陽の明るさには 代わりに SunVisualizer.setIntensity を使う。
~~setScaleDepth()~~¶
setScaleDepth(
value):void
Parameters¶
| Parameter | Type |
|---|---|
value |
number |
Returns¶
void
Deprecated¶
大気スケール係数を設定する。大気なしで HDR パイプラインを使わないときの 太陽の赤化にだけ使われ、大気がある描画では参照されない。
~~setSunRate()~~¶
setSunRate(
value):void
Parameters¶
| Parameter | Type |
|---|---|
value |
number |
Returns¶
void
Deprecated¶
太陽係数を設定する。現在の描画では参照されない(効果なし)。 値は保持されるが描画には影響しない。太陽の明るさには代わりに SunVisualizer.setIntensity を使う。
setVisibility()¶
setVisibility(
flag):void
可視性フラグを設定
Parameters¶
| Parameter | Type |
|---|---|
flag |
boolean |
Returns¶
void