08 1주차 복습

한경식·2024년 12월 17일
  • Device
    • GPU 묘사하는 대표
    • 리소스 생성
  • DeviceContext
    • 렌더링파이프라인을 가지고 리소스를 묶어줌
  • SwapChain
    • DX보다 기술 변화가 느린 애들을 모아 DXGI라는 라이브러리를 만들어 사용하는 것 중 하나
    • 후면버퍼에 그린 것을 전면 버퍼에 빠르게 복사하는 역할
  • 장치 초기화
    • 렌더링을 할땐 Render 함수가 매 프레임 호출
    • RenderBegin과 RenderEnd 사이에서 나머지 사물들을 그려주면 됨
    • RenderBegn
      • OMSetRenderTargetView
        • 우리가 만든 swapChain의 후면 버퍼에다 그림을 그리기 위해 사용
      • ClearRenderTargetView
        • 프레임마다 리셋을 해주는 역할
        • 초반에 한번만 해줘도 되기 때문에 여기서 안해줘도 됨
      • RSSetViewports
        • 화면에 들어가는지 RS 단계에서 판단해 그려주는 놈
    • RenderEnd
      • SwapChain변수에 Present를 통해 후면 버퍼에서 전면 버퍼에 고속 복사가 일어나 화면에 그림이 보임
  • 삼각형 그리기
    • vertex 정보 만들기
      • CPU 메모리에 저장됨
    • vertex buffer 만들기
      • CPU 메모리에 저장된 정보를 GPU에 복사해줌
      • GPU에서 읽기만 가능하도록 설정
    • Index Buffer
      • Vertex정보가 많아지면 중복 현상이 생기기 때문에 정점을 Index로 묶어 저장한 뒤 GPU로 넘겨줌
    • InputLayout
      • 우리가 만들어준 Vertex Buffer가 어떤 식으로 되어있는지 묘사해주는 역할
      • Shader와 맞물려있음
    • Render
      • Render시 IA 단계에서 Vertex/Index Buffer, Layout을 셋팅
      • IA 단계에서 마지막으로 어떻게 그릴지 설정
    • LaodShaderFromFile
      • VS, PS 쉐이더를 만들때 쉐이더를 불러오기 위해 직접 만든 함수
      • ID3DBlob을 통해 Shader에서 만들어진 ByteCode로 저장
    • Create VS/PS
      • VS, PS 쉐이더를 만들기 위해 직접 만든 함수
      • LaodShaderFromFile에서 ID3DBlob에 저장된 값으로 쉐이더 리소스로 변경
    • Render
      • VS/PS 단계에서 Create 함수에서 만든 쉐이더 리소스를 가지고 셋팅을 해줌
  • UV 맵핑
    • 텍스처를 우리가 픽셀 쉐이더 인자인것 처럼 사용하는것
    • CreateSRV
      • Png 파일을 불러와 srv를 만들어 줌
    • Render
      • 만들어진 srv 가지고 PS 단계에서 렌더링 파이프라인에 묶어줌
    • UV
      • UV역시 Geometry에서 vertex의 Position등을 만드는 것처럼 만들어짐
      • 0~1 사이의 값을 갖는게 보통
      • Shader에서 PS를 처리해주는 함수에서 texture에서 uv를 꺼내 사진의 색을 입혀줌
      • 이때 UV값이 0~1을 벗어나면 sampler에 설정한 규칙대로 변함
  • Constant Buffer
    • Geometry에서 만들어진 Buffer들은 특정 사물의 모양을 가지고 있는데 이들은 일반적으로 바꾸지 않는다
    • 그래서 이 사물을 이동, 회전 등등을 하기 위해 ConstantBuffer를 사용
    • Buffer DESC를 다른 Buffer와 달리 Dynamic으로 만들어 CPU가 데이터를 복사할 수 있게 만들어줌
  • 나머지는 문서를 보면서 파악하면서 알아가면 된다
profile
게임 개발 지망생

0개의 댓글