본문 바로가기

Directx11/Technic

Billboard Rendering

BillBoard

 

Billboard Rendering 이란 Mesh가 카메라 회전의 영향을 받지 않고 내 카메라를 항상 바라보게 하는 Rendering 기법 입니다.

 

Billboard를 사용하는 이유는 보통 몬스터 머리위의 HP나 이름이 나를 항상 바라보게 할 때나 Billboard Effect를 사용하여 2D Sprite 이지만 3D Mesh같은

 

느낌을 주기 위해 사용합니다.

 

 

BIllBoard 구현

 

Billboard를 구현하는 방법은 크게 2가지가 있습니다.

 

1. 기하 쉐이더 시점에서 처리하는 방법

 

2. Transform처리 이후에 처리하는 방법

 

저는 비교적 간단한 2번째 방법을 사용했습니다.

 

1번째 방법은 물방울 책에 자세하게 설명 되어있습니다.

 

 

 

 

1. Transform 월드 행렬을 가져옵니다


2. View 행렬을 가져옵니다.

3. View 행렬의 이동부분을 제거해 줍니다. (_41, _42, _43) = 0

4. 이동 부분이 제거된 View 행렬의 역행렬을 구합니다.

5. 구해진 역행렬의 이동 부분을 Transform 행렬의 이동부분으로 대입해 줍니다.

6. Tranform의 월드행렬로 세팅해 줍니다.

 

View 행렬에서 이동부분이 제외된 역행렬이 Transform의 월드 행렬로 들어가면서


월드 행렬과 View 행렬이 곱해질 때 회전 부분이 적용되지 않습니다.  (View행렬 회전부분과 회전행렬의 View행렬 회전부분의 역행렬이 곱해지기 때문에)


때문에 빌보드 Rect 가 카메라를 바라보게 됩니다.


이동 부분이 적용되었기 때문에 이동부분은 영향을 받지 않습니다.

 

 

예제 코드

 

 

 

'Directx11 > Technic' 카테고리의 다른 글

UV와 카메라의 방향 벡터를 이용한 레이더 쉐이더  (1) 2018.04.24
Navigation Mesh  (0) 2018.04.18
Terrain Splatting (Brush)  (0) 2018.02.06
Color Picking (색상 픽킹)  (0) 2018.02.01
DDT Picking (Bresenham's algorithm)  (0) 2018.02.01