-
5. 파이프라인과 3차원 표현Software/DirectX 2024. 5. 24. 09:29728x90
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