ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5. 파이프라인과 3차원 표현
    Software/DirectX 2024. 5. 24. 09:29
    728x90

    Table of Contents

    파이프라인 구성단계

    1. 3차원의 단서

    2. Direcct에서의 근사

    3. 색연산





    파이프라인의 구성단계
     - 입력 조립기(Input Assambler)
     - 정점 셰이더 VS
     - 덮개 셰이터 HS
     - 테셀레이터
     - 영역 세이더DS
     - 기하 셰이터GS
     - 래스터라이징
     - 픽셸 셰이더PS
     - 출력 병합기(OS)

     

     

     

    1. 3차원의 단서

    모니터의 2차원 화면에서 3차원의 입체감을 느낄 수 있는 단서는 다음과 같은 요소들이 존재한다.

    - 빛과 음영
    - 그림자
    - 물체 겹침(깊이)
    - 소실점 (vanishing point(원근감))





     

    2. Direcct에서의 근사
    • 삼각형 Mesh로 이루어진 3D모델을 다룸
    • 보통 3D모델은 모델러라 불리우는 전문 툴을 사용해서 제작함(3dmax, maya등)
    • 삼각형 정점 나열로 만든 구나 원기둥도 사용가능함

     

     

     

     

    3. 색연산
    • RGB : 컴퓨터의 색상은 RGB의 적절한 혼합으로 이루어짐
    • RGB자체를 하나의 색 벡터로 표현할 수 있다.

     

    • RGB벡터
      • RGB벡터에선 합연산 뺄셈 스칼라 곱등이 적용된다
      • RGB벡터 연산에선 내적 외적은 의미가 없다
      • RGB벡터 연산만의 특이점이 있는데 바로 변조(modulation)이다.
      • 변조는 성분별 곱셈인데 이 연산은 주로 조명공식에 사용된다.
      • DirectX에서 RGB 성분을 담는 자료형은 XMVECTOR이다. XMVECTOR는 32비트 부동소수점 4개로 이루어져있다.

     

    • 클램핑(Clamping)
      • 색 벡터에서 각 성분은 0~1의 값을 가진다.
      • 연산중 각 성분이 0아래로 내려가거나 1을 초과하는 수치가 생길수 있다. 이때 해당 성분은 0또는 1로 한정시켜야한다. 이를 클램핑이라고 한다.

     

    • 128비트 색상
      • 색 벡터를 표현할때는 RGB값 외에 a라는 알파채널이 포함된다.
      • 알파는 색의 불투명도를 결정하는 0~1사이의 값이다
      • RGBA를 각각 32비트 부동소수점으로 표현하면 하나의 색상은 128비트가된다.
      • 이는 XMVECTOR하나로 다룰수 있고 이에따라 SIMD연산이 가능해지는 혜택을 얻는다.
      • 색벡터 모듈레이션 함수는 DirectXMath 헤더 내부의 XMColorModulate이다
      • 산술 오차가 적어야 유리한 픽셀 셰이더 등에서 사용된다.





    728x90

    'Software > DirectX' 카테고리의 다른 글

    7. 정점 쉐이더 ( Vertex shader )  (0) 2024.05.24
    6. 입력조립기 ( Input Assembler )  (0) 2024.05.24
    4. 타이머  (0) 2024.05.24
    3. DirectX 초기화  (0) 2024.05.24
    2. CPU와 GPU의 상호작용  (0) 2024.05.24