環境マップの利用
MascotCapsule V4(V3互換)では、モデルにスフィアマップの属性が付与されているものについて、専用のスフィアマップ用テクスチャを用いることでスフィアマップ処理を行うことができます。
目次
1. 環境マップ
環境マップとは、モデルに周囲の環境が映りこんでいるように見せるマッピングのことです。スフィアマップはそのうち、モデルの周囲360度の景色を映りこませるもののことです。環境マップには他に水平・垂直それぞれ90度ずつの景色を映りこませるキューブマップなどがあります。
2. 環境マップの設定
1. テクスチャの読み込み
IMICRO3D_Texture_loadBmpData()で、引数にTEXTURE_TYPE_SPHEREMAP を設定しテクスチャを読み込みます。
IMICRO3D_Render_setSphereTexture()で、スフィアマップ用テクスチャを Renderに設定します。
IMICRO3D_Render_setAttribute()で、環境属性を設定します。設定には、引数にM3D_SPECULARを用います。
なお、スフィアマップを有効にする際には光源も設定する必要があります。光源の設定についての詳細は、
BREW for KDDI - MascotCapsule V4(V3互換) 用サンプルのライトの項目を参照してください。
一度設定された環境属性は、新たな属性が設定されない限り、保持されます。
以下に、サンプルコードを示します。
/* スフィアマップ用テクスチャの読み込み */
IMICRO3D_Texture_loadBmpData( pMe -> pIM3D,
/* スフィアマップの設定 */
IMICRO3D_Render_setSphereTexture( pMe -> pIM3D,
/* キーチェックによるスフィアマップの設定 */
if ( ( mask & SOFT2_MASK ) != 0 )
{
IMICRO3D_Texture_loadBmpData( pMe -> pIM3D,
&pMe -> mc_data.texture [ 1 ] ,
( IIstream* ) FileIstream_getIIstream( &fis ),
TEXTURE_TYPE_SPHEREMAP );
( IIstream* ) FileIstream_getIIstream( &fis ),
TEXTURE_TYPE_SPHEREMAP );
/* スフィアマップの設定 */
IMICRO3D_Render_setSphereTexture( pMe -> pIM3D,
&pMe -> mc_data.render,
&pMe -> mc_data.texture [ 1 ] );
&pMe -> mc_data.texture [ 1 ] );
/* キーチェックによるスフィアマップの設定 */
if ( ( mask & SOFT2_MASK ) != 0 )
{
/* スフィアマップ・ライトを有効 */
IMICRO3D_Render_setAttribute( pMe -> pIM3D,
IMICRO3D_Render_setAttribute( pMe -> pIM3D,
&pMe -> mc_data.render,
pMe -> mc_data.attr | M3D_SPECULAR | M3D_LIGHTING );
pMe -> mc_data.attr | M3D_SPECULAR | M3D_LIGHTING );

スフィアマップの有効(左)・無効(右)


