Japanese | English | Korean

Samples

シェーディング

モデルに影を付ける手法をシェーディングといいます。MascotCapsule V3では、グーローシェーディングと、トゥーンシェーディングの2種類のシェーディングが用意されています。

目次

1. グーローシェーディング( Gouraud Shading )

グーローシェーディングは、オブジェクトの各頂点の法線ベクトルを求め、頂点間を三角形の面上にわたって補間する方法です。ピクセル間の継ぎ目が目立たなくなり、滑らかなシェーディングができます。

 

グーローシェーディング


2. トゥーンシェーディング( Toon Shading )

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

 

トゥーンシェーディング


3. シェーディングのサンプルコード

シェーディングの設定は、Effect3Dクラス内のsetShading( int shading ) メソッドを使用します。shading の値は、グーローシェーディングの場合はNORMAL_SHADING、トゥーンシェーディングの場合はTOON_SHADINGを設定してください。

トゥーンシェーディングの場合はさらに setThreshold( int threshold, int high, int low )メソッドによってしきい値レベルを設定することが可能です。thresholdはトゥーンシェードのしきい値、highはレベルがしきい値より大きなときの強さ、lowはレベルがしきい値より小さなときの強さで、high、lowは0~255の値を設定します。

/**
  * commandAction() メソッド
  * ソフトキー押下時処理(描画パラメータ変更)
  */
public void commandAction( Command c, Displayable d ){
String label = c.getLabel();

/* シェーディング方法変更 */
if( label.equals( commandLabels[0] ) ){
effect.setShading( Effect3D.NORMAL_SHADING );
}else if( label.equals( commandLabels[1] ) ){
effect.setShading( Effect3D.TOON_SHADING );
}
}