ライト
MascotCapsule V4(V3互換)では、環境光と平行光源の2種類が用意されています。光源を有効にするには、ライトに関する属性を設定する必要があります。属性には、IMICRO3D_Render_setAttribute()を使用します。環境属性設定後の環境光・平行光源の設定についての説明を以下に示します。
目次
1. 環境光( Ambient Light )
環境光はワールド内を一様に照らすライトです。
環境光を使用する場合は、IMICRO3D_Render_setAmbient()を使用し、環境光の強さを設定します。強さは、0~4096の範囲で設定してください。4096 が元のテクスチャの色になります。環境光を使用しないようにする場合は明るさを 0 に設定してください。
2. 平行光源( Direction Light )
平行光源はワールド内を一定の方向から照らすライトです。
平行光源を使用する場合は、IMICRO3D_Render_setDirectionLight()を使用し、光源の方向と強さを設定します。光源の方向は、視点座標系での光源方向を Vec3i で指定します。明るさは 0~4096 の範囲内で設定してください。平行光源を使用しない場合は明るさを 0 に設定してください。
また、環境光と平行光源を組み合わせて使用する場合、その明るさは元のテクスチャの色(4096)までです。環境光と平行光源を合わせた明るさが4096を超えた場合は、最も明るい部分が4096になるように調整されます。
|
![]() |
| 環境光+平行光源 | 環境光のみ |
|
![]() |
| 平行光源のみ | 光源無し |
3.サンプルコード
本サンプルコードにおいて光源の設定をしている部分を以下に示します。サンプルではソフトキーで平行光源、環境光のオン・オフの切り替えができます。また、方向キーで平行光源の向きを変えることが可能です。
IMICRO3D_Render_setAttribute( pMe -> pIM3D,
pMe -> mc_data.attr | M3D_LIGHTING );
/*----- 光源の方向ベクトル -----*/
pMe -> mc_data.light_vec.x = 0;
pMe -> mc_data.light_vec.y = 0;
pMe -> mc_daa.light_vec.z = 4096;
/*----- キーチェックによる光源の調整 -----*/
/* softkey1 : 平行光源の調整 */
if ( ( mask & SOFT1_MASK ) != 0 ) /* soft key 1 pressed */
{
{
pMe -> mc_data.dir = INTENSITY_HIGH;
else
{
pMe -> mc_data.dir = INTENSITY_LOW;
pMe -> key_mask = 0;
/* softkey2 : 環境光の調整 */
if ( ( mask & SOFT2_MASK ) != 0 )
{
{
pMe -> mc_data.amb = INTENSITY_HIGH;
else
{
pMe -> mc_data.amb = INTENSITY_LOW;
pMe -> key_mask = 0;
/*----- 光源の設定 -----*/
/* 平行光源の設定 */
IMICRO3D_Render_setDirectionLight( pMe -> pIM3D,
&pMe -> mc_data.light_vec,
pMe -> mc_data.dir );
/* 環境光の設定 */
IMICRO3D_Render_setAmbientLight( pMe -> pIM3D, &pMe -> mc_data.render, pMe -> mc_data.amb );



