OpenFrameworksでのLightingについて


OpenFrameworksでのLightingについてのメモを残していこうと思います。

光の種類についての説明

AmbientColorは環境光色

DiffuseColorは拡散光色:物体自体は光を基本発していなく見た目は光が当たった場合、
どのような色の光を拡散するかで決まります。

SpecularColorは鏡面光色:

EmissiveColorは放射光色:物体が自ら発光する色

実装

setup(){
 material_1.setEmissiveColor(ofFloatColor::blue);
 material_1.setDiffuseColor(ofFloatColor::green);
 light.setPosition(0,100,0);
 light.setPointLight();
 light.setup();
}

光が当たっている部分は自己発光色と拡散光が合わさっていることが確認できます。
この色は足し算によって計算されるので自己発光色が白だと拡散光色を設定しても白のままです。

またSpecularColorを追加してみると

この鏡面光は視点に関係なく色が決定されるDiffuseColorに比べて視点の位置によって変化するものです。
またsetShininess(float)で輝き具合を決定してください。