サンプル

ライト

ここではライトに関する操作について解説します。


ライト

ライトは照明効果を表すことができるエフェクトで、以下の4種類があります。

ライト 環境光源 ( AMBIENT )

すべての方向からの光源です。
オブジェクトの位置、角度によらず影響を及ぼします。
位置、方向の設定はありません。

平行光源 ( DIRECTIONAL )

一定の方向から、面状に影響を及ぼす光源です。
位置の設定はありません。

点光源 ( OMNI )

特定の座標に置かれ、すべての方向に放射される光源です。
距離により減衰させることが可能です。
方向の設定はなく、光源とオブジェクトとの位置関係のみ問題となります。

スポット光源 ( SPOT )

特定の座標に置かれ、ある一定の円錐状の範囲に放射される光源です。
距離により減衰させることが可能です。


各ライトの設定

ライトを設定するには Light クラスからインスタンスを生成、ライトのモードや色、その他の情報を設定した後、 Graphics3D オブジェクト、あるいは Group オブジェクトに追加することで行います。

以下各ライトに対し個別に必要とされる設定について解説します。なお、以下の例における環境光源はすべて同一の設定となっています。

ライトの描画(点光源)

ライトの描画(点光源)

  • 環境光源とスポット

  • ここではスポットについて解説します。

    [環境光源とスポット]


    ・・・

    // ライトのインスタンス
    // スポット光源
    Light sptLight = new Light();

    ・・・

    // Sample10Canvas.java 98行
    // ライトの設定
    // スポット光源
    sptLight.setMode( Light.SPOT );
    sptLight.setColor( 0x00ffffff );
    sptLight.setIntensity( 1.0f );
    sptLight.setAttenuation( 1, 0, 0 );
    sptLight.setSpotAngle( 45 );
    sptLight.setSpotExponent( 0 );
    sptLight.setVector( new Vector3D( -1, -1, -1 ) );
    sptLight.setPosition( new Vector3D( 5, 10, 10 ) );

    ・・・

    // Sample10Canvas.java 156行
    // Graphics3D オブジェクトにライトを追加
    g3.addLight( sptLight, null );

    ・・・


    環境光源同様 Light.SPOT はスポット光源を表します。 setSpotAngle() メソッドはスポット光源の角度を設定します。このときの角度は度数法表記となります。
    setSpotExponent() メソッドはスポット光源の輝度分布を設定します。この例では均一な明るさとなるように設定しています。

    ライトの描画(スポット光源)

    ライトの描画(スポット光源)




    このページの先頭へ戻る