シェーディング
モデルに影を付ける手法をシェーディングといいます。MascotCapsule V4(V3互換)では、光源が有効の時、グーローシェーディングとトゥーンシェーディングの2種類のシェーディングを設定することができます。
目次
1. グーローシェーディング( Gouraud Shading )
グーローシェーディングは、オブジェクトの各頂点の法線ベクトルを求め、頂点間を三角形の面上にわたって補間する方法です。ピクセル間の継ぎ目が目立たなくなり、滑らかなシェーディングができます。

グーローシェーディング
2. トゥーンシェーディング( Toon Shading )
トゥーンシェーディングは、境界のはっきりした影をつける方法です。トゥーンシェーディングを用いると、アニメのセル画のような影付け効果を得ることができます。

トゥーンシェーディング
3.シェーディングのサンプルコード
シェーディングを行うためには、環境属性を設定する必要があります。
環境属性の設定は、IMICRO3D_Render_setAttribute()を使用します。第3の引数にM3D_LIGHTING(光源を有効)を設定します。トゥーンシェーディングの場合は、M3D_TOON_SHADING(トゥーンシェーディングを行う)も設定してください。
トゥーンシェーディングの場合はさらに256段階のしきい値としきい値をはさんだ2つの領域の明るさを設定します。明るさの設定は、
IMICRO3D_Render_setToonParam( render* This, hi_sint32 threshold, hi_siont32 hight, hi_siont32 low )
を使用します。thresholdはトゥーンシェードの閾値のレベル、highはレベルが閾値より大きなときの強さ、lowはレベルが閾値より小さなときの強さで、high、lowは0~255の値を設定します。
#define THRESHOLD 120
#define THRESHOLD_HIGH 255
#define THRESHOLD_LOW 0
/* キーチェックによるシェーディングの設定 */
if ( ( mask & SOFT1_MASK ) ! = 0 )
{
IMICRO3D_Render_setAttribute( pMe -> pIM3D, &pMe -> mc_data.render, pMe -> mc_data.attr | M3D_LIGHTING );
if ( ( mask & SOFT2_MASK ) != 0 )
{
IMICRO3D_Render_setToonParam( pMe -> pIM3D,
THRESHOLD,
THRESHOLD_HIGH,
THRESHOLD_LOW );
/* トゥーンシェーディングを有効 */
IMICRO3D_Render_setAttribute( pMe -> pIM3D,
pMe -> mc_data.attr | M3D_LIGHTING | M3D_TOON_SHADING );

