일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 게임 디자인 패턴
- light
- Direct3D12
- 게임 프로그래밍
- 절두체 컬링
- 노멀 맵핑
- DirectX12
- Deferred Rendering
- 게임 클래스
- 조명 처리
- 장치 초기화
- InputManager
- 디퍼드 렌더링
- TCP/IP
- Dynamic Indexing
- gitlab
- FrameResource
- Frustum Culling
- C++
- effective C++
- DirectX
- 네트워크
- 동적 색인화
- 직교 투영
- direct3d
- 입방체 매핑
- 큐브 매핑
- Render Target
- gitscm
- 네트워크 게임 프로그래밍
- Today
- Total
목록light (2)
코승호딩의 메모장
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/doEZu9/btsxH1Nbppx/qakyfMi73x24Can9mxYeI0/img.gif)
이번 글에서는 이전 조명 처리에서 아쉬웠던 부분을 보강하고자 한다. 목표는 패스 당 상수 버퍼에 카메라 정보를 넣어줄 것이고 머티리얼에서 거칠기, 프레넬, 분산 반사율 등을 실제로 사용하여 조명을 구현하고자 한다. PassConstants 이전까지는 ObjectConstants에 조명 작업에 필요한 view, viewproj, proj 정보 등을 넘겨 주었다. 그러나 이 카메라 정보들은 오브젝트 당이 아닌 한 프레임 당 업데이트가 일어나는 정보이다. 따라서 ObjectConstants와 PassConstants를 수정한다. struct ObjectConstants { Matrix matWorld; }; struct PassConstants { Matrix view = Matrix::Identity; Ma..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cbPOXi/btsx3KC07Oq/C07IbhThvUV6tUoBBuqBrk/img.gif)
이번 글에서는 3D 세상을 더 사실적으로 표현할 수 있는 빛을 추가한다. 또한 이번 구현에서 중요한 점은 빛 정보를 쉐이더로 넘겨줄 때, 오브젝트 당 계속 데이터를 복사해 주는 것이 아니라 씬의 렌더 함수에서 프레임 당 한 번씩만 복사를 해주는 것이다. 일단은 프레임 당 상수 버퍼에 빛의 정보만 넣어줄 것이지만 더 나아가 뷰, 프로젝션 변환도 프레임 당 한 번씩만 업데이트를 할 것이다. 또한 프레임 당 상수 버퍼는 테이블이 아닌 루트 서술자를 이용하여 보내기로 한다. Light Info 우선 빛을 위해 어떠한 정보가 필요한지 살펴보자. enum class LIGHT_TYPE : uint8 { DIRECTIONAL_LIGHT, POINT_LIGHT, SPOT_LIGHT, }; 빛은 우선 Directiona..