GameChoi
Choi Programming
GameChoi
전체 방문자
오늘
어제
  • 분류 전체보기 (468)
    • C++ Algorithm & Study (184)
      • C++ & Algorithm Strategies (45)
      • Game Math & DirectX 11 (72)
      • Server + UE5 (29)
      • Lyra Clone Coding (37)
    • Create Game (284)
      • [Window API] Game Client & .. (55)
      • [DirectX] DirectX 2D & 3D (155)
      • [UE5] BLUEPRINT & C++ (74)
    • odds and ends (0)
      • English (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Direct11
  • GAME Client
  • Other Character
  • Algorithm Strategies
  • Network Worker
  • Player State
  • job queue
  • Player Move Packet
  • UE5
  • client
  • server
  • Game Room
  • Game Server
  • Destination Move Packet
  • core
  • c++
  • Direct3D
  • RPG Game
  • session
  • protobuf

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GameChoi

Choi Programming

[Direct11] 4. Rendering Pipeline - Input Assembler (IA)
C++ Algorithm & Study/Game Math & DirectX 11

[Direct11] 4. Rendering Pipeline - Input Assembler (IA)

2023. 6. 13. 16:39

1. Rendering PipeLine

1.1 Rendering PipeLine

1.1.1 Input Assembler

 - 메모리에서 기하 자료를 읽어 기하학적 기본도형을 조립

   - Vertex

     - Direct3D의 정점은 본질적으로 공간적 위치 이외의 정보도 담고, 좀 더 복잡한 렌더링 효과를 낼 수 있음

   - 정점들은 정점 버퍼를 통해 렌더링 파이프라인에 묶임

     - 연속적인 메모리에 저장하는 자료구조, 어떤 식으로 조합해서 기본 도형을 형성할 것인지 말하지 않음

1.1.1.1 Primitive Topology

 - 기본 도형을 형성하는 방식을 DX3D에게 알려주는 수단

   - 기본 도형 위상 구조를 지정하는 함수 & 다양한 기본 도형 위상 구조들을 정의한 열거형

void ID3D11DeviceContext::IASetPrimitiveTopology(D3D11_PRIMITIVE_T0P0LᄋGY Topology);
typedef enum D3D11_PRIMITIVE_T0P0L0GY;

     - 한 번 기본도형 위상구조를 설정하면 다음 호출이 있을 때 까지 모든 그리기 호출에서 위상 구조가 적용

1.1.1.2 Index

 - 사각형 하나와 팔각형 하나를 삼각형 목록을 이용하여 구축하기 위해 정점 배열을 사용

Vertex quad[6] = { vO, vl, v2, vO, v2, v3, };
Vertex octagon[24] = { vO, vl, v2, 
            		vO, v2, v3, 
            		vO, v3, v4,
            		vO, v4, v5, 
            		vO, v5, v6, 
            		vO, v6, v7,
            		vO, v7, v8, 
            		vO, v8, vl };

   - 3차원 물체를 형성하는 삼각형들은 다수의 정점들을 공유

     - 2개가 중복되는 것은 큰 문제X, 하지만 팔각형의 경우는 문제가 심각

       - 팔각형은 모든 삼각형이 중심 중점을 공유하므로 모형이 세밀하고 복잡할수록 중복되는 정점들도 많아짐

   - 정점들의 중복이 바람직하지 않는 이유

     - 메모리 요구량이 증가 & 그래픽 하드웨어의 처리량이 증가

 - 삼각형 목록에서 중복 정점들을 제거하는 방법을 고안하여 생각해낸 해법은 Index를 사용

   - 고유한 정점들로 정점 목록을 만들어 어떤 정점들을 어떤 순서로 사용해서 삼각형을 형성하는지 그 정점들의 색인들을 적절히 나열함으로써 지정

Vertex v [4] = {v0, vl, v2, v3}; UINT indexList[6] = {0, 1, 2, /* */ 0, 2, 3};

   - 그래픽 카드는 정점 목록의 고유한 정점들을 처리한 후 색인 목록을 이용하여 정점들을 조합해 삼각형을 형성

     - 정점들에 중복이 없어진 대신 색인들에 중복이 생겼지만 큰 문제X

       - 색인은 그냥 정수이므로 완전한 정점 구조체보다 적은 양의 메모리를 차지

       - 정점 캐시 순서가 좋은 경우 그래픽 하드웨어는 중복된 정점들을 처리하지 않아도 됨

저작자표시 (새창열림)

'C++ Algorithm & Study > Game Math & DirectX 11' 카테고리의 다른 글

[Direct11] 6. Rendering Pipeline - Tessellation & Rasterizer (TS & RS)  (0) 2023.06.13
[Direct11] 5. Rendering Pipeline - Vertex Shader (VS)  (0) 2023.06.13
[Direct11] 3. Direct3D EX Application Framework  (0) 2023.06.12
[Direct11] 2. Direct3D initialization  (0) 2023.06.12
[Direct11] 1. Direct3D Basic Knowledge  (0) 2023.06.12
    'C++ Algorithm & Study/Game Math & DirectX 11' 카테고리의 다른 글
    • [Direct11] 6. Rendering Pipeline - Tessellation & Rasterizer (TS & RS)
    • [Direct11] 5. Rendering Pipeline - Vertex Shader (VS)
    • [Direct11] 3. Direct3D EX Application Framework
    • [Direct11] 2. Direct3D initialization
    GameChoi
    GameChoi

    티스토리툴바