[Direct3D] 구현했던 것들
🐈 수업에서 공부하고 구현한 내용 순서대로
1. Project Setting
- 디렉토리 설정으로 한 솔루션에서 2개의 프로젝트를 사용
- Library Project : 일반적인 렌더링 엔진 구조로 게임에서 공통되게 사용하는 기능을 구현
- Game Project : 어플리케이션에 따라 구체적인 기능들 구현
-
Message Loop
- Swap Chain
2. Transformation
- Object space -> World Space -> Camera Space -> Clip Space
- Constant Buffer에 World, View, Projection Matrix 구현
- UpdateSubresource()로 Constant Buffer Update
-
World Matrix(rotation, scaling, translation)
- Depth Stencil View
3. Texturing
-
UV coordinates
-
Sampler state
-
DDSTextureLoader (Texture loading and binding)
4. Camera
-
카메라 이동 (Q: 아래, E: 위, W: 앞, S: 뒤, A: 왼, D: 오)
-
마우스 우 클릭 후 드래그 : 해당 방향으로 화면 전환
-
마우스 커서 client window 밖으로 못 나가게 제한
5. Lighting
Phong lighting
- Phong Shading
- Ambient: 기본적으로 물체가 가지고 있다고 가정한 빛
- Specular: 물체에 직접적으로 빛이 닿는 반사되는 가장 밝은 부분
- Diffuse Shading
- 빛이 들어오는 방향과 normal vector 이용해서 계산
6. Model Loading
-
Assimp 사용
-
.obj 3D model 파일
-
객체 지향 구조로 수정 (코드의 재사용성, 유지보수, 유연성)
-
빛 적용
7. Character Camera
-
키보드 방향키에 따라 캐릭터와 카메라가 이동
-
캐릭터가 움직이는 방향으로 회전
8. Character Animation
-
애니메이션이 적용된 모델을 불러와 배치
-
애니메이션 반복 재생
-
빛 적용
9. Normal Mapping
-
Normal Mapping을 적용한 큐브
-
빛 적용
Leave a comment