DirectX/DirectX 3D_(구)

53_DepthBuffer

컴맹학자 2021. 10. 18. 15:51
728x90

쉐이더 파일

더보기
00_Global.fx
0.01MB
00_Light.fx
0.01MB
00_Render.fx
0.01MB

Depth 관련으로 함수 및 변수 구조체 선언 정의


Framework

더보기

Framework -> Objects -> Shadow (월드 조명값 가지고 깊이 관련 클래스)

Shadow.cpp
0.00MB
Shadow.h
0.00MB

실행

 

왼쪽아래 출력되는 것이 조명 기준으로 깊이 계산해서 출력하는 부분


보충

더보기

핵심
1. 1Pass PreRender 에서 카메라가 되는것은 월드 조명이다.

2. 1Pass 깊이 정보와 2Pass의 정보를 합쳐서 그림자계산해서 사용

 

RTV 방식 그림자
1. 조명 방향으로 PreRender로 찍는다
2. 찍혀진 방향과 각도를 계산해서 그림자를 그려준다
문제점 : 물체가 있으면 그림자가 가려짐

 

그림자 사용안하면 문제점과 쓰는 이유
1. 점프를 하면 입체감이 안느껴짐 (현실 감각이 없음)
2. 점프를 해서 낙하시 공간 감각이 없음

3. 계산을 실시간 해야 하므로 느려질 수 있음

2D게임 쪽에선 대부분 검정 원으로 표현

 

보완 
1. ProjectionTexture 방법 : RTV 문제점을 해결 할 수 있지만 Self(자기 자신에 비춰지는) 그림자에 문제가 생김
2. Stensile 방법 : 모든 면이 닫혀 있어야 한다

 -> 모델 또는 오브젝트 들이 비어있는 정점이 있으면 안되는 방식이라 개발자는 쉽지만 디자인쪽은 어려움
3. Depth Buffer : 조명기준으로 카메라를 만들어서 사용 하는 방법
 -> 1,2 문제점 해결이됨

 

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

54 ~ 55_ShadowShader  (0) 2021.10.18
52_Depth  (0) 2021.10.17
51_ProjectionTexture  (0) 2021.10.17
50_EnvCubeMap  (0) 2021.10.17
49_GaussianBlur  (0) 2021.10.01