라이트
MascotCapsule V3 에서는 환경광과 평행광원의 2종류가 준비되어 있습니다.
목차
1.환경광 ( Ambient Light )
환경광은 월드 내를 한결같이 비추는 라이트입니다. MascotCapsule V3 에서는 백색광만이 준비되어 습니다. 환경광을 사용하려면 OEMC_Micro3D_Render_setAmbientLight(Render *render, hi_sint32 intensity)를 호출합니다. 제2인수의 intensity는 라이트의 세기입니다. 0 - 4096의 범위 내에서 지정해 주세요. 4096이 원래의 texture의 색이 됩니다.
2.평행광원 ( Direction Light )
평행 광원은 월드 내를 일정한 방향에서 비추는 라이트입니다. MascotCapsule V3 에서는 백색광원만이 준비되어 있습니다.
평행 광원을 사용하려면 OEMC_Micro3D_Render_setDirectionLight(Render *render, Vec3i dir, hi_sint32 intensity)를 호출해서 한층 더 OEMC_Micro3D_Render_setAttribute(Render *render, hi_sint32 attribute)로 M3D_LIGHTING 또는, M3D_TOON_SHADING를 유효하게 합니다. M3D_LIGHTING과 M3D_TOON_SHADING의 차이에 대해서는 쉐이딩에 대해 쓰여진 튜토리얼을 참조해 주세요. OEMC_Micro3D_Render_setDirectionLight()의 제2 인수의 dir은 라이트의 방향입니다. x, y, z의 각 성분을 Vec3i 오브젝트를 이용하여 지정해 주세요. 제3 인수의 intensity는 라이트의 세기입니다. 0 - 4096의 범위 내에서 지정해 주세요.
또 환경광과 평행광원은 조합해 사용하는 것이 가능합니다만, 그 밝기는 원래의 texture의 색(4096)까지 입니다. 환경광과 평행광원을 맞춘 밝기가 4096을 넘었을 경우는 가장 밝은 부분이 4096이 되도록 조정됩니다.
![]() |
![]() |
| 환경광 + 평행광원 | 환경광만 |
![]() |
![]() |
| 평행광원만 | 광원 없음 |
3.샘플 코드
이 메뉴얼의 샘플 코드의 라이트의 설정을 하고 있는 부분을 아래에 나타냅니다. 샘플에서는 결정 키로 평행광원, 5키로 환경광의 온•오프의 변환을 할 수가 있습니다. 또 방향 키로 평행광원의 방향을 바꾸는 것이 가능합니다.
* 라이트 설정
*/
static void setLight( void )
{
/* 평행광원 */
if( isDirection ){
light_dir.y = 0;
light_dir.z = 4096;
/* 회전 행렬 초기화 */
OEMC_Micro3D_Atrans3i_setIdentity( &xtrans );
OEMC_Micro3D_Atrans3i_setIdentity( &ytrans );
/* 회전 행렬 설정 */
OEMC_Micro3D_Atrans3i_setRotateX( &xtrans, rotX );
OEMC_Micro3D_Atrans3i_setRotateY( &ytrans, rotY );
/* 라이트 방향 벡터 변환 */
OEMC_Micro3D_Atrans3i_transPoint(
OEMC_Micro3D_Render_setDirectionLight(
/* 환경광 */
if( isAmbient ){





