경일게임아카데미 멀티 디바이스 메타버스 플랫폼 개발자 양성과정 20220908 2022/04/04~2022/12/14

Jinho Lee·2022년 9월 8일
0

2022.09.08 경일 메타버스 23주차 4일 수업내용. DirectX 9을 이용한 3D GAME - 랜더링 파이프라인

DirectX 9를 이용한 3D GAME

  • 자료 : “DirectX 9를 이용한 3D GAME 프로그래밍 입문”

렌더링 파이프라인

  • p. 101 ~ 119

  • 3D 세계에 대한 기하학적 표현과 이 세계를 바라보는 관점을 정의하는 가상 카메라를 이용해 2D 이미지를 만들어내는 역할을 담당한다.

삼각형

  • 삼각형은 3D 물체의 기본 구성 요소로서, 물체를 구성하기 위해서는 물체의 모양과 외형을 묘사하는 삼각형 리스트를 만들어야 한다.

  • 각각의 삼각형을 구성하는 꼭짓점을 버텍스라 하고 정보를 저장한다.

  • 삼각형의 버텍스를 지정하는 순서는 매우 중요하며,
    이를 두르기 순서 (Winding Order)라고 부른다.

인덱스

  • 삼각형의 리스트를 만들면 상당수의 버텍스 정보가 중복된다.

  • 중복을 피하기 위해 인덱스 개념을 이용한다.

    • 버텍스 리스트인덱스 리스트를 구성한다.

      • 버텍스 리스트는 물체를 구성하기 위해 사용한 서로 다른 버텍스를 모두 저장한다.

      • 인덱스 리스트는 삼각형을 구성하기 위한 버텍스 리스트로의 인덱스 값을 포함한다.

    • 인덱스 리스트는 이제 버텍스 리스트 내의 각 버텍스들이 어떻게 두 개의 삼각형을 구성하는지를 정의한다.

      • 이는 버텍스를 어떤 순서로 사용하여 삼각형을 구성할지 정한다는 의미이다.

렌더링 파이프라인

  • 파이프라인의 과정

    1. 로컬 스페이스

    2. 월드 스페이스

    3. 뷰 스페이스

    4. 후면 추려내기

    5. 조명

    6. 클리핑

    7. 투영

    8. 뷰포트

    9. 래스터라이즈

로컬 스페이스 (Local Space)

  • 물체의 삼각형 리스트를 정의하는 데 이용하는 좌표 시스템이다.

  • 모델링 스페이스라고도 불린다.

  • 모델링 과정을 쉽고 단순하게 만들어준다.

월드 스페이스 (World Space)

  • 로컬 좌표 시스템 내에 모델을 구성한 다음에는 이를 전역(월드) 좌표 시스템으로 옮겨 하나의 장면을 구성해야 한다.

  • 이 과정에서 모델은 월드 변환(이동, 회전, 크기 변형 포함)을 거쳐 월드 스페이스로 옮겨진다.

  • 월드 변환은 위치, 크기, 방위를 포함하는 각 물체 간 관계를 정의함으로써 이루어진다.

  • 월드 변환은 각 변환 행렬을 곱한 하나의 행렬로 표현될 수 있다.

뷰 스페이스 (View Space)

  • 뷰 스페이스 변환 :
    카메라의 변환이 월드에 대한 관점을 바꾸지 않도록 카메라에 맞춰 월드 내 모든 물체를 변환하는 것

  • 위의 뷰 스페이스 변환을 거친 물체는 뷰 스페이스 내에 위치한다고 말할 수 있다.

후면 추려내기 (Backface Culling)

  • 카메라는 절대로 폴리곤(물체)의 후면을 보지 못한다.

  • 후면 폴리곤을 추려냄으로서 연산의 이득을 취한다.

조명

클리핑

  • 시야 볼륨 외부의 물체를 추려낸다.

  • 시야 절두체에서 물체의 위치는 다음 세 가지로 분류된다.

    1. 완전한 내부

    2. 완전한 외부

    3. 부분적 내부(외부)

투영 (Projection)

  • n 차원에서 n-1 차원을 얻는 과정

  • 원근 투영 (Perspective Projection)직교 투영 (Orthographic Projection)이 있다.

뷰포트 변환

  • 프로젝트 윈도우의 좌표를 뷰포트라 불리는 화면의 직사각형으로 변환하는 과정

래스터라이즈 (Rasterize)

  • 각각의 삼각형을 그리는 데 필요한 픽셀 컬러들을 계산하는 과정

  • 엄청난 작업 양을 필요로 하므로 반드시 전용 그래픽 하드웨어에서 처리되어야 한다.

  • 이 결과물은 모니터에 바로 디스플레이 할 수 있는 2D 이미지가 된다.

0개의 댓글