Software/DirectX

5. 파이프라인과 3차원 표현

빡노 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