-
[CG] 레스터라이저 상태(Rasterizer State)UE5 2025. 1. 15. 13:16
레스터라이저 상태(Rasterizer State)
- 3D 그래픽스 파이프라인에서 렌더링 단계의 중요한 설정 중 하나로, 레스터라이제이션(Rasterization) 과정을 제어하는 설정을 말함
- 레스터라이제이션은 3D 객체를 2D 화면에 픽셀로 변환하는 과정
- 이 과정에서 각 픽셀에 대해 깊이, 면 방향, 채우기 방식 등을 결정하는데, 이를 레스터라이저 상태로 제어
레스터라이저 상태가 제어하는 것들
- 컬링 (Culling)
- 컬링은 어떤 면을 렌더링에서 제외할지 결정하는 설정
- 3D 모델은 면(Face)으로 이루어져 있으며, 면의 방향(정점의 순서)에 따라 앞면(Front Face)과 뒷면(Back Face)이 결정됨
- 폴리곤 채우기 모드 (Polygon Fill Mode)
- 폴리곤을 어떻게 화면에 렌더링할지를 결정
- 깊이 바이어스 (Depth Bias)
- 깊이 값을 미세하게 조정하는 설정
- 레스터화된 픽셀의 깊이 값(Depth)이 다른 픽셀과 너무 가까워 Z-fighting 문제가 발생할 수 있는데, 이를 방지하기 위해 깊이 바이어스를 사용
- 스캔라인 방식 (Scissor Test)
- 화면의 특정 영역(Rectangle)만 렌더링되도록 제한하는 기능
- Scissor Test가 활성화되면, 지정된 영역 밖의 픽셀은 렌더링되지 않음
- 안티앨리어싱 (Anti-aliasing)
- 레스터라이제이션 과정에서 계단현상(Aliasing)을 줄이기 위해 안티앨리어싱을 설정할 수 있음
- 클리핑 (Clipping)
- 카메라 뷰포트 밖에 있는 픽셀을 잘라내는(Clip) 기능
- 클리핑은 화면에 보이지 않는 부분을 렌더링하지 않도록 최적화하는데 사용
D3D11_RASTERIZER_DESC rasterDesc; rasterDesc.FillMode = D3D11_FILL_SOLID; // 폴리곤을 Solid 모드로 채움 rasterDesc.CullMode = D3D11_CULL_BACK; // 뒷면 컬링 rasterDesc.DepthBias = 0; // 깊이 바이어스 없음 rasterDesc.ScissorEnable = true; // 스캔라인 테스트 활성화 rasterDesc.AntialiasedLineEnable = true; // 안티앨리어싱 활성화
왜 레스터라이저 상태가 중요한가?
- 퍼포먼스 최적화
- 보이지 않는 면을 렌더링하지 않도록 컬링을 설정하면 렌더링 속도가 빨라짐
- 렌더링 품질 개선
- 폴리곤 채우기 모드와 안티앨리어싱 설정을 통해 화면의 품질을 높일 수 있음
- Z-Fighting 문제 해결
- 깊이 바이어스를 조정하여 Z-Fighting 문제를 해결할 수 있음
'UE5' 카테고리의 다른 글
[week2] Texture Rendering (1) 2025.03.20 [UE5] Development Editor에서 효과적으로 디버깅하는 방법 (1) 2025.01.17 [UE5] .uproject, Target.cs, Build.cs (0) 2025.01.13 [UE5] 게임플레이 이펙트의 활용 (1) 2025.01.07 [UE5] 캐릭터 어트리뷰트 설정 (0) 2025.01.06