본문 바로가기
Computer Graphics

컴퓨터 그래픽스 - Rasterizer(2), ViewPort

by eigen96 2024. 1. 16.
728x90

신입으로 출근한지 일주일이 지났습니다.

첫째주엔 회사 서비스를 이해하는 시간을 가졌습니다. 일반 유저가 사용하는 서비스가 아니다보니 잠이 오더군요...

이번주부터는 본격적으로 회사 코드를 분석하기 시작했습니다.

그래픽스를 공부하고나서 Metal 관련 코드를 보는데 반가운 용어들이 보이더군요 Proj, Rotation, vertex shader, fragment shader 등... 

다음주도 화이팅!

폴리곤의 가시성

  • 폴리곤의 가시성 결정은 폴리곤을 구성하는 정점들의 2차원 투영을 사용하여 폴리곤의 면적을 계산함으로써 이루어진다.
    폴리곤의 면적을 계산하는 데 사용되는 행렬식(determinant)을 이용하여 폴리곤이 카메라를 향하고 있는지(면적이 양수일 때) 또는 반대를 보고 있는지(면적이 음수일 때)를 판단.
  • 폴리곤의 면적을 계산하는 공식은 각 정점의 x, y 좌표를 사용하여 구성된 행렬식으로 나타낼 수 있으며, 이 행렬식은 폴리곤의 방향성을 나타냄.
  • OpenGL에서는 glEnable(GL_CULL_FACE) 함수를 사용하여 폴리곤 제거(culling) 기능을 활성화 가능.

 

  • glCullFace 함수를 사용하여 어떤 면(앞면 또는 뒷면)을 제거할지 결정 가능.
    예를 들어, glCullFace(GL_BACK)은 뒷면을 제거하고, glCullFace(GL_FRONT)는 앞면을 제거
  • glFrontFace 함수는 정점의 순회 방향을 기준으로 폴리곤의 앞면과 뒷면을 결정.
    예를 들어, glFrontFace(GL_CCW)는 반시계 방향으로 순회할 때의 면을 앞면으로 설정합니다.
  • Z-버퍼링(z-buffering)은 폴리곤의 깊이 정보를 저장하여 렌더링 과정에서 어떤 폴리곤이 더 가까이에 있는지 결정하는 데 사용
    . 이 기술을 사용하면 더 먼 폴리곤에 의해 가려진 가까운 폴리곤을 렌더링하지 않음으로써 불필요한 계산을 줄일 수 있음.

 

 

뷰포트 변환

Window Space : 컴퓨터 스크린 위의 윈도우가 가진 좌표계

VIewPort : NDC 정육면체 뷰 볼륨 안의 최종적으로 그려질 스크린 영역

ViewPort의 범위는 glViewport에 의해 정의됨.

ViewPort의 종횡비(aspect ratio) : w/h

실제 스크린 공간은 3차원이다. 스크린공간의 z축은 스크린 안쪽을 향한다.
3차원 스크린 공간에서는 뷰포트 역시 3차원이다.

뷰포트의 종횡비(aspect ratio): 종횡비는 뷰포트의 너비와 높이의 비율을 의미하며,
이는 렌더링된 이미지의 비율이 왜곡되지 않도록 하는 데 중요한 역할.

 

행렬을 결합하면 다음과 같으며 viewport transform이라고 부른다.

참고

opengl es를 이용한 3차원 컴퓨터 그래픽스 입문

728x90

댓글