Japanese | English | Korean

Samples


환경맵의 이용

MascotCapsule V3에서는 모델에 Sphere map의 속성이 부여되어 있는 것에 대해서는, 전용의 Sphere map용 texture를 이용하는 것으로 Sphere map 처리를 실시할 수 있습니다.

목차


1. 환경맵

환경 맵이란, 모델에 주위의 환경이 비춰지듯이 보이게 하는 매핑입니다. Sphere map은 그 중에서 모델의 주위 360도의 경치를 비쳐 넣게 하는 것입니다. 환경 맵에는 그 밖에 수평•수직 각각 90도씩의 경치를 비쳐 넣게 하는 큐브맵 등이 있습니다.



2. 환경 맵의 설정

Spheremap용 texture를 로드하려면, 통상의 texture를 로드하는 것과 같이, OEMC_Micro3D_Texture_loadBmpData ( Texture* texture, Iiistream* iis, hi_sint32 texture_type ) 를 이용합니다.

단 Sphere map 용 텍스처의 경우는 제 3인수 texture_type의 값을TEXTURE_TYPE_SPHEREMAP에 설정합니다. 또한 Sphere map을 유효하게 하기 위해서는 OEMC_Micro3D_Render_setAttribute( Render* render, hi_sint32 attribute ) 의 제 2인수에 M3D_LIGHTING 및M3D_SPECULAR 를 논리화로 설정하고OEMC_Micro3D_Render_setSphereTexture( Render* render, Texture* texture ) 로 Render에 Sphere map용 텍스처를 설정합니다. 이 설정은 Render에 격납됩니다만, 새롭게 Sphere map용 텍스처가 설정되지 않는 한 유지됩니다. 이것은 환경 속성으로서 M3D_SPECULAR가 설정되지 않은 경우도 같습니다.

샘플에서는 결정 키를 누를 때마다 Sphere map의 유효/무효가 변환됩니다. 또한 방향 키로 카메라의 위치를 회전 시킬 수가 있습니다.

// 환경맵 데이터를 로드
MemIstream_initialize(
&mis, sphereMap_bmp.addr, sphereMap_bmp.size );
rval = OEMC_Micro3D_Texture_loadBmpData( &car.sphereMap,
MemIstream_getIIstream( &mis ),
TEXTURE_TYPE_SPHEREMAP );

/**
 * 환경맵 설정
 */
static void setSphereMap( void )
{
hi_sint32 attribue_mask = 0;
if( isSphere ){
attribue_mask |= M3D_LIGHTING;
attribue_mask |= M3D_SPECULAR;
OEMC_Micro3D_Render_setSphereTexture( &render, &car.sphereMap );
}
OEMC_Micro3D_Render_setAttribute( &render, attribue_mask );
}
 

Spheremap의 유효(좌)•무효(우)