MonoGame/クラスライブラリ/DirectionalLightクラス
2017年11月7日 (火) 09:04時点におけるimported>Administratorによる版
DirectionalLightクラスは、BasicEffectクラスで使われているディレクショナル光源(平行光源)を表すクラスである。
ディレクショナル光源はオブジェクトの位置に関係なく特定の角度から照らすライトである。 見た目は太陽光に照らされた様になる。
光の当たらない面が真っ黒になってしまうためアンビエント光源と一緒に使うことが多い。なお、MonoGameのBasicEffectクラスには3個のディレクショナル光源が標準搭載されており、3方向から照らして真っ黒になる部分をなくすこともできる。 まあ、余程の事がない限りBasicEffectクラスのEnableDefaultLightingメソッドで自動設定される値しか使わないであろう。
目次
継承
- System.Object
- Microsoft.Xna.Framework.Graphics.DirectionalLight
名前空間
構文
public sealed class DirectionalLight
コンストラクタ
名称 | 概要 | |
---|---|---|
public | DirectionalLight |
プロパティ
名称 | 概要 | |
---|---|---|
public | Enabled | 光源の有効化、無効化 |
public | Direction | 光源の方向。この方向と向き合う面に光が当たる。 |
public | DiffuseColor | 光源の色。ポリゴンに色が点いている場合は掛け合わせて出力される。 |
public | SpecularColor | 光源の反射光の色。まともに反射光を計算すると非現実的なので簡易的に色を付けようという代物。 |
使用例
このクラスのDiffuseColorで指定された光源色と頂点やテクスチャの色が合成され、さらにポリゴンの面とライトとの角度に応じて強弱が付けられる感じになる。
// ライトを有効にする
_effect.LightingEnabled = true;
// 平行光源0番
_effect.DirectionalLight0.Enabled = true;
_effect.DirectionalLight0.Direction = new Vector3(-1, -0.9f, -0.8f);
_effect.DirectionalLight0.DiffuseColor = new Vector3(1f, 0f, 0f);