DirectX/DirectX 3D_(구)

41_Billboard

컴맹학자 2021. 9. 5. 22:29
728x90

쉐이더파일


Framework -> Objects(폴더) ->Billboard.cpp, h


실행


보충

더보기

Billbord 기법 (2.5D) 
특징 : 오브젝트가 항상 카메라(플레이어)를 따라감
쓰는곳 : 대규모 오브젝트를 3D로 처리하기 보다는 2D로 그려서 사용

Billborad class 쓰는 핵심
1. C++ 에서 정점 위치값을 똑같은 값으로 정의
2. UV값을 통해서 정점 위치값을 펼침 예정 (그림 크기따라 변경)
3. Billborad의 부모인 Renderer에서 Initialize()함수 transform 관련 정의 할때 이미 D3DXMatrixIdentity 통해서 값을 전달함

쉐이더 VS 영역 처리 방법
1. 월드상의 좌표 기준으로 처리 (항등 월드)

*쉐이더에선 w값이 1이면 크기 0이면 방향

문제점
1. 배경색상 투명 하지가 않음
 1. clip 방식 (픽셀 단위, PS) 
  ->부작용 : 버려야 픽셀이 많을수록 연산량이 많아져서 느려짐
 2. Gemoetoy -> Cull (면 단위, RS) 
2. 카메라 따라 움직이지 않음 -> 오브젝트 값에서 카메라 값을 빼서 적용

Billbord 한 이유 -> 추후에 Gemoetoy 쉐이더 관련 공부 하기 위한 발판

 


내적, 외적 값 넣으면 공식 + 식 보여주는곳
https://www.symbolab.com/solver/vector-cross-product-calculator

'DirectX > DirectX 3D_(구)' 카테고리의 다른 글

43_Particle  (0) 2021.09.17
42_Weather  (0) 2021.09.07
40_AreaLighting(2) SpotLight  (0) 2021.09.04
40_AreaLighting(1) PointLight  (0) 2021.09.01
39_NormalMap  (0) 2021.09.01