일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- SQL시험
- URP
- SRP
- 스레드
- 버텍스 쉐이더
- vertex shader
- 렌더링파이프라인
- 프로세스
- 픽셀 쉐이더
- 유니티 최적화
- HDRP
- TCP
- SQL
- Heap
- 통신
- 운영체제
- 쉐이더
- 디자인패턴
- 코스피
- c#
- 정렬
- 배칭
- unity
- 네트워크
- 자료구조
- SQLD
- 주식
- 코스닥
- 유니티
- 멀티스레드
- Today
- Total
Let's Girin!
[그래픽스] 렌더링 파이프라인(2) / Vertex Shader 본문
1. Vertex Shader
버텍스 셰이더는 프로그래밍이 가능한 GPU 파이프라인 중 하나로, 3D 그래픽스에서 정점(vertex)의 처리를 담당하는 부분이다. 즉, 각 정점(vertex)별로 연산을 수행한다. 이 단계의 목적은 정점 변환(transform)연산을 통해 현재 설정된 카메라의 위치(카메라 좌표계)를 중심으로 위치값을 재계산 하는 것이다.
1.1 정점 위치 변환
모델 - 뷰 - 프로젝션 변환 등을 포함하는 공간 변환을 의미한다. 이 변환들은 4x4 행렬을 사용하여 수행되며 정점은 4차원 등차좌표로 표현된다.
■ 모델 변환(World Transform) : 로컬 좌표계에 있는 정점(vertex)을 월드 좌표계로 변환한다.
■ 뷰 변환(View Transform) : 월드 좌표계를 뷰 좌표계로 변환한다.
■ 프로젝션 변환(Projection Transform) : 뷰 좌표계를 클립 좌표계로 변환하여 3D 장면을 2D 화면에 투영한다.
*클립 좌표계
클립 좌표계는 3D 장면을 2D 화면에 올바르게 렌더링하기 위한 중요한 좌표계이다. 프로젝션 변환을 통해 얻어지며, 이 좌표계를 통해 시야 절두체 내의 객체만 화면에 그려지도록 보장힌디. 클리핑 및 NDC 변환 과정을 거쳐 최종적으로 스크린 좌표계로 매핑되어 화면에 렌더링됩니다.
*컬링
렌더링할 필요가 없는 전체 객체나 폴리곤을 제거하여 렌더링 성능을 최적화한다.
*클리핑
시야 절두체(View Frustum)나 화면의 경계 밖에 있는 객체의 일부분을 제거하여 화면에 정확히 맞는 부분만 렌더링한다. 이를 통해 불필요한 렌더링을 방지하고 화면에 표시되는 객체들만 그리게 된다.
*NDC 변환
NDC 변환 과정은 클립 좌표계를 정규화된 좌표계로 변환하여 이후 화면 좌표로 매핑하기 위한 중요한 단게이다. 이 변환은 주로 동차 좌표를 3차원 좌표로 변환한 후, 이 좌표를 NDC 범위 내로 정규화하여 이루어집니다. NDC 좌표는 이후 뷰포트 변환(Viewport Transformation)을 통해 화면 좌표로 변환됩니다.
1.2 조명 계산
기본적인 조명 계산을 수행하여 정점의 색상 값을 수정한다. 각 정점에 대해 조명 정보를 계산하고, 빛의 위치 및 방향에 따라 정점의 색상이나 반사율을 조정하여 조명 효과를 생성한다. 이를 통해 객체의 표면에 광택이나 그림자 등의 효과를 부여할 수 있다.
■ 앰비언트 조명(Ambient Lighting) : 모든 방향에서 균일하게 들어오는 기본 조명.
■ 디퓨즈 조명(Diffuse Lighting) : 표면의 노멀 벡터와 광원 방향 벡터의 내적을 사용하여 계산.
■ 스펙큘러 조명(Specular Lighting) : 반사 벡터와 시야 벡터의 내적을 사용하여 계산.
1.3 텍스처 좌표 변환
텍스처 매핑을 위해 텍스처 좌표를 설정하거나 변환한다.
1.4 정점 보간
정점 색상, 텍스처 좌표 등의 속성이 삼각형 내부에서 자연스럽게 변화하도록 보장한다.
'Graphics' 카테고리의 다른 글
[그래픽스] 렌더링 파이프라인(3) / Rasterization/Pixel Shader/Output Merge (0) | 2024.05.27 |
---|---|
[그래픽스] 렌더링 파이프라인(1) / Input Assembly (0) | 2024.05.25 |
[그래픽스] | 렌더링 파이프라인 (0) | 2024.05.23 |