ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 문제를 해결할 수 있음
Designed by Tistory.