[Direct3D] 구현했던 것들


🐈 수업에서 공부하고 구현한 내용 순서대로

1. Project Setting

screen
  1. 디렉토리 설정으로 한 솔루션에서 2개의 프로젝트를 사용
    • Library Project : 일반적인 렌더링 엔진 구조로 게임에서 공통되게 사용하는 기능을 구현
    • Game Project : 어플리케이션에 따라 구체적인 기능들 구현
  2. Message Loop

  3. Swap Chain


2. Transformation

  1. Object space -> World Space -> Camera Space -> Clip Space
    • Constant Buffer에 World, View, Projection Matrix 구현
    • UpdateSubresource()로 Constant Buffer Update
  2. World Matrix(rotation, scaling, translation)

  3. Depth Stencil View


3. Texturing

  1. UV coordinates

  2. Sampler state

  3. DDSTextureLoader (Texture loading and binding)


4. Camera

  1. 카메라 이동 (Q: 아래, E: 위, W: 앞, S: 뒤, A: 왼, D: 오)

  2. 마우스 우 클릭 후 드래그 : 해당 방향으로 화면 전환

  3. 마우스 커서 client window 밖으로 못 나가게 제한


5. Lighting

Phong lighting

  1. Phong Shading
    • Ambient: 기본적으로 물체가 가지고 있다고 가정한 빛
    • Specular: 물체에 직접적으로 빛이 닿는 반사되는 가장 밝은 부분
  2. Diffuse Shading
    • 빛이 들어오는 방향과 normal vector 이용해서 계산


6. Model Loading

  1. Assimp 사용

  2. .obj 3D model 파일

  3. 객체 지향 구조로 수정 (코드의 재사용성, 유지보수, 유연성)

  4. 빛 적용


7. Character Camera

  1. 키보드 방향키에 따라 캐릭터와 카메라가 이동

  2. 캐릭터가 움직이는 방향으로 회전


8. Character Animation

  1. 애니메이션이 적용된 모델을 불러와 배치

  2. 애니메이션 반복 재생

  3. 빛 적용


9. Normal Mapping

  1. Normal Mapping을 적용한 큐브

  2. 빛 적용

Leave a comment