RenderEffects¶
描画エフェクトの設定
HDR パイプラインの張り方・トーンマップ・ブルーム・自動露出・サンシャフト・ 出力ガンマをまとめて保持する。Viewer は毎フレーム、この設定を内部の HDR ポストプロセスパイプラインへ反映する。
インスタンスは Viewer が常に 1 つ保持しており、Viewer.render_effects
から取得する。初期値は Viewer.constructor の options.render_effects に
RenderEffects.Option を渡して指定する。
Example¶
const viewer = new mapray.Viewer( "mapray-container", {
atmosphere: new mapray.Atmosphere(),
render_effects: { bloom_intensity: 1.0 },
} );
viewer.render_effects.setSunShaftsEnabled( true );
Constructors¶
new RenderEffects()¶
new RenderEffects(
options?):RenderEffects
Parameters¶
| Parameter | Type | Description |
|---|---|---|
options? |
Option |
各項目の初期値 |
Returns¶
Accessors¶
apply_gamma¶
getapply_gamma():boolean
出力ガンマを適用するかどうかを取得する。
Returns¶
boolean
適用するなら true
auto_exposure¶
getauto_exposure():boolean
自動露出が有効かどうかを取得する。
Returns¶
boolean
有効なら true
auto_exposure_bias¶
getauto_exposure_bias():number
自動露出の露出補正を取得する。
Returns¶
number
現在の露出補正 [EV]
auto_exposure_speed¶
getauto_exposure_speed():number
自動露出の適応速度を取得する。
Returns¶
number
現在の適応速度 [1/s]
bloom_intensity¶
getbloom_intensity():number
ブルームの強さを取得する。
Returns¶
number
現在のブルームの強さ
bloom_mode¶
getbloom_mode():BloomMode
ブルームの広がり方を取得する。
Returns¶
現在の広がり方
bloom_radius¶
getbloom_radius():number
ブルームのぼかし半径を取得する。
Returns¶
number
現在のぼかし半径
bloom_soft_knee¶
getbloom_soft_knee():number
ブルーム抽出の閾値の柔らかさを取得する。
Returns¶
number
現在の閾値の柔らかさ
bloom_threshold¶
getbloom_threshold():number
ブルームを抽出する輝度の閾値を取得する。
Returns¶
number
現在の閾値
hdr_mode¶
gethdr_mode():HDRMode
HDR パイプラインの張り方を取得する。
Returns¶
現在の HDR パイプラインの張り方
sun_shafts_decay¶
getsun_shafts_decay():number
サンシャフトの減衰率を取得する。
Returns¶
number
現在の減衰率
sun_shafts_density¶
getsun_shafts_density():number
サンシャフトの光芒の伸びを取得する。
Returns¶
number
現在の光芒の伸び
sun_shafts_enabled¶
getsun_shafts_enabled():boolean
サンシャフト(太陽から放射状に伸びる光芒)が有効かどうかを取得する。
Returns¶
boolean
有効なら true
sun_shafts_intensity¶
getsun_shafts_intensity():number
サンシャフトの強さを取得する。
Returns¶
number
現在の強さ
sun_shafts_weight¶
getsun_shafts_weight():number
サンシャフトの各サンプルの重みを取得する。
Returns¶
number
現在の重み
tonemap_exposure¶
gettonemap_exposure():number
トーンマップ前の露出倍率を取得する。
Returns¶
number
現在の露出倍率
tonemap_mode¶
gettonemap_mode():TonemapMode
最終トーンマップの種類を取得する。
Returns¶
現在のトーンマップの種類
Methods¶
setApplyGamma()¶
setApplyGamma(
enabled):void
出力ガンマ(sRGB ガンマ)を適用するかどうかを設定する。
無効にすると線形の明るさのままキャンバスへ出力するため、通常の表示では暗く沈む。 出力を別の色管理へ渡す場合にだけ無効にする。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
enabled |
boolean |
適用するなら true |
Returns¶
void
Default Value¶
true
setAutoExposureBias()¶
setAutoExposureBias(
value):void
自動露出の露出補正を設定する。正の値で明るく、負の値で暗くなる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
露出補正 [EV] |
Returns¶
void
Default Value¶
0.0
setAutoExposureEnabled()¶
setAutoExposureEnabled(
enabled):void
自動露出の有効/無効を設定する。
有効にすると露出がシーンの平均輝度(対数平均)に時間追従する。 無効のときは RenderEffects.tonemap_exposure の固定露出になる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
enabled |
boolean |
有効にするなら true |
Returns¶
void
Default Value¶
false
setAutoExposureSpeed()¶
setAutoExposureSpeed(
value):void
自動露出の適応速度を設定する。大きいほど明るさの変化に速く追従する。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
適応速度 [1/s]。0.01 以上 |
Returns¶
void
Default Value¶
1.5
setBloomIntensity()¶
setBloomIntensity(
value):void
ブルームの強さを設定する。0 でブルームのパスごと省略される。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
ブルームの強さ。0.0(無効)以上 |
Returns¶
void
Default Value¶
0.02
setBloomMode()¶
setBloomMode(
mode):void
ブルームの広がり方を設定する。
- RenderEffects.BloomMode.COMPACT: 明るい点のまわりに小さな暈が付く。
- RenderEffects.BloomMode.WIDE: 画面の広い範囲へ裾を引く。描画が重くなる。
RenderEffects.BloomMode.WIDE の費用はシーンによって大きく違う。地形だけの 場面ではほとんど増えないが、水面が画面を埋める場面では大きく重くなる。採用するなら 実際の場面で計ること。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
mode |
BloomMode |
広がり方 |
Returns¶
void
Default Value¶
{@link RenderEffects.BloomMode.COMPACT}
setBloomRadius()¶
setBloomRadius(
value):void
ブルームのぼかし半径を設定する。大きくするとにじみが広がる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
ぼかし半径。0.1 以上 |
Returns¶
void
Default Value¶
1.0
setBloomSoftKnee()¶
setBloomSoftKnee(
value):void
ブルーム抽出の閾値の柔らかさを設定する。 0 で閾値をまたぐ境界が硬くなり、1 で最も滑らかに立ち上がる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
閾値の柔らかさ。0.0〜1.0 |
Returns¶
void
Default Value¶
0.5
setBloomThreshold()¶
setBloomThreshold(
value):void
ブルームを抽出する輝度の閾値を設定する。この値を超えた部分がにじみの元になる。
単位は露出適用前のシーン輝度。既定値は基準露出で白になる輝度なので、 露出を上げてもブルームの掛かる範囲は変わらない。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
輝度の閾値。0.0 以上 |
Returns¶
void
Default Value¶
0.1
setHDRMode()¶
setHDRMode(
mode):void
HDR パイプラインの張り方を設定する。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
mode |
HDRMode |
HDR パイプラインの張り方 |
Returns¶
void
Default Value¶
{@link RenderEffects.HDRMode.AUTO}
setSunShaftsDecay()¶
setSunShaftsDecay(
value):void
サンシャフトの減衰率を設定する。小さくすると光芒が太陽の近くで早く消える。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
減衰率。0.0〜1.0 |
Returns¶
void
Default Value¶
0.71
setSunShaftsDensity()¶
setSunShaftsDensity(
value):void
サンシャフトの光芒の伸びを設定する。大きくすると光芒が太陽から遠くまで伸びる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
光芒の伸び。0.0 以上 |
Returns¶
void
Default Value¶
1.0
setSunShaftsEnabled()¶
setSunShaftsEnabled(
enabled):void
サンシャフト(太陽から放射状に伸びる光芒)の有効/無効を設定する。
太陽がカメラの背面にあるときは自動的に抑制される。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
enabled |
boolean |
有効にするなら true |
Returns¶
void
Default Value¶
false
setSunShaftsIntensity()¶
setSunShaftsIntensity(
value):void
サンシャフトの強さを設定する。0 でサンシャフトのパスごと省略される。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
強さ。0.0(無効)以上 |
Returns¶
void
Default Value¶
0.012
setSunShaftsWeight()¶
setSunShaftsWeight(
value):void
サンシャフトの各サンプルの重みを設定する。大きくすると光芒全体が濃くなる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
重み。0.0 以上 |
Returns¶
void
Default Value¶
0.78
setTonemapExposure()¶
setTonemapExposure(
value):void
トーンマップ前の露出倍率を設定する。大きくすると画面全体が明るくなる。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
value |
number |
露出倍率。0.01 以上 |
Returns¶
void
Default Value¶
1.0
setTonemapMode()¶
setTonemapMode(
mode):void
最終トーンマップの種類を設定する。
- TonemapMode.ACES: ACES filmic 近似。フィルミック調の階調。
- TonemapMode.EXPONENTIAL: 指数(1-exp)圧縮。
oneil-classicプリセットの発色カーブ。 - TonemapMode.PBR_NEUTRAL: Khronos PBR Neutral。表示域に収まる色をほぼ変えない。
組み込みのプリセットは TonemapMode.ACES で露出を合わせてあるので、 他の種類へ変えるとプリセットの明るさとルックがずれる。
Atmosphere.applyPreset もプリセットに含まれるトーンマップをここへ
書き込む。どちらも後から書いたほうが残る。Viewer の constructor より前に
適用したプリセットは、options.render_effects より先に書かれたものとして扱う。
HDR パイプラインを張らないフレーム (キャンバスへ直接描画) でも、空・太陽・月・雲・ 水面がシェーダー内で同じトーンマップを掛ける。
Parameters¶
| Parameter | Type | Description |
|---|---|---|
mode |
TonemapMode |
トーンマップの種類 |
Returns¶
void
Default Value¶
{@link TonemapMode.ACES}