블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2794)
Unity3D (852)
Programming (478)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (11)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

Mesh 만들기

Gamebryo/Lecture / 2011. 11. 8. 15:09

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
Posted by blueasa
, |