Mesh 만들기
MeshData 제작
StencilShadow와 Eturnum 샘플을 보면 Mesh를 프로그램에서 만들어 내는 방법을 배울 수 있다.
( Eturnum의 Swoosh.cpp, StencilShadow의 StencilShadow.cpp )
아무래도 StencilShadow의 코드가 보기에 더 익숙하고 쉽게 보인다.
하지만, Eturnum 의 Mesh는 매 프레임 바뀌는 Mesh에 더 빠른 코드인것 같다.
자세한 내용은 두 개의 샘플을 열어보자.
Bound 설정
Gamebryo는 Camera culling을 기본적으로 행하고 있기때문에
Mesh를 만들면 반드시 WorldBound를 업데이트 시켜줘야 한다.
두 가지 함수를 통해서 할 수 있는데..
1 번 방식 ( Eturnum의 Swoosh.cpp )
----------------------------------------
NiBound kBound;
kBound.SetCenter(0.0f, 0.0f, 0.0f);
kBound.SetRadius(10000.0f);
m_pkMesh->SetModelBound(kBound);
2 번 방식 ( StencilShadow의 StencilShadow.cpp )
----------------------------------------
spSideWall->RecomputeBounds();
2 번 방식이 더 정확하고 편해보인다. 다만 계산이 조금 들어간다는게 단점이다. ( 요즘 CPU가 얼마나 빠른데... )
노말 설정
이 외에도 DirectX의 CalcNormal과 같은 Normal을 계산해주는 함수도 있다. ( StencilShadow의 StencilShadow.cpp )
NiMeshUtilities::CalculateNormals( spSideWall,
NiCommonSemantics::POSITION(), 0, NiCommonSemantics::NORMAL(), 0,
NiDataStream::ACCESS_CPU_READ | NiDataStream::ACCESS_GPU_READ |
NiDataStream::ACCESS_CPU_WRITE_STATIC );
[출처] Mesh 만들기|작성자 프라이드
'Gamebryo > Lecture' 카테고리의 다른 글
Stencil buffer 사용하기 (0) | 2011.11.08 |
---|---|
Mesh의 생성 ( Particle, 검궤적 등 ) (0) | 2011.11.08 |
게임브리오 2D Line관련 (0) | 2011.10.30 |
FrameRenderSystem에서.. 커스텀알파소터프로세스.. (0) | 2011.09.18 |
무기잔상효과 (0) | 2011.02.08 |