ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터 그래픽스 정리 (4) Rasterization : 벡터 데이터에서 래스터 데이터로
    Computer Graphics 2021. 10. 3. 00:00
    728x90
     Rasterization : 벡터 데이터에서 레스터 데이터로

     

     

     

    [목차]

     

    Rasterization 

    선형 보간법

    점진적 계산

     

     

     

    컴퓨터 그래픽스 단계

     

    1) 프로그래머가 기하 물체에 대한 속성을 기술해주는 물체 좌표계에서 화면에 해당하는 윈도우 좌쵸계까지의 기하 변환

     

    2) 눈 좌표계에서의 조명 계산과 프리미티브 조합 과정 

     

    3) 각 타임의 기하 프리미티브들에 대하여 래스터화 계산 = 각 기하 프리미티브가 투영되는 화면 상의 화소들을 찾아 적절한 색깔로 칠해주는 것!

    -> 연속 공간인 3차원 좌표계를 기준으로 하여 기하 및 그에 연관된 데이터가 연속적인 형태로 표현되었는데, 이 계산 과정을 통하여 이산 공간인 래스터 공간에서의 이산적인 형태의 데이터, 즉 프레임 버퍼로 변환되어 저장된다

     

     

     

    Rasterization (레스터화) 과정

     

     

    - 그래픽스 파이프라인에서, 최종 프로젝션을 한 후, 디스플레이에서 픽셀화하는 과정을 래스터화 (Rasterization) !

     

    - 즉, 모델의 좌표데이터(연속적인 데이터/벡터 데이터)를 받아서 픽셀의 색상 값(이산적인 데이터/래스터 데이터)을 결정하는 것! 

    = 연속 공간에 존재하는 다각형에 대하여 래스터 이미지 격자의 기본 단위인 화소라는 조그만 창문의 중심에 대하여 샘플링하는 과정! 


    - 다만, 무한한 표현 능력을 제공하는 연속 공간에서의 기하 정보를 불충분한 표현 도구라 할 수 있는 이산 공간에서의 래스터 이미지라는 격자 틀을 이용하여 표현하려고 하기 때문에, 표현 오차가 발생하는데 이는 앨리어스(alias)라고 하며 앨리어싱의 결과 발생하는 오차이기 때문이다! 

     

     

     

    -> 래스터화 과정 중, 엘리어싱을 줄이기 위한 연산 방법( = 안티 앨리어싱 )으로 (1) 선형 보간법 (2) 점진적 계산! 

     

     (1) 선형 보간법 : 복잡한 함수의 효과적인 근사화

     (2) 점진적 계산 : 효율적인 계산을 위한 것 

     

     

     

     

     

    선형 보간법

     

     

    연속적인 것을 이산적으로 표현할 때, 해당 모델(함수)를 잘 표현하는 데이터를 Sampling한다! 

    -> 그리고 이렇게 Sampling한 데이터들에서 원래의 함수를 근사화할 때, 앨리어싱을 줄이는 방안으로 interpolation을 진행한다! 

     

     

     

    데이터를 보간한다 = 샘플링을 통해 구한 모든 요구 사항을 정확히 만족시켜주는 것

     

    Interpolation(인터폴레이션, 보간)이란 알려진 지점의 값 사이(중간)에 위치한 값을 알려진 값으로부터 추정하는 것

    <->  extrapolation은 알려진 값들 사이의 값이 아닌 범위를 벗어난 외부의 위치에서의 값을 추정하는 것

     

     

     

    보간은 데이터의 양이 많아질수록 정확도가 낮아지기 때문에, 데이터가 많을 경우 한 개의 다항식을 사용하여 전체를 보간하는 것이 아니라, 전체 구간을 여러 개의 부분 구간으로 나누어 각 구간에 대해 서로 다른 다항식을 통하여 보간한다! 

     

     

    선형 보간법(linear interpolation)은 두 지점 사이의 값을 추정할 때 그 값을 두 지점과의 직선 거리에 따라 선형적으로 결정하는 방법! 즉 1차(=선형) 다항식을 사용한다 

     

     

     

     

     

    점진적 계산

     

     

    점진적 계산 (incremental computation) : 가능한 한 불필요한 계산을 제거하기 위해, 어느 정도의 규칙성을 가지며 반복적으로 수행되는 문제를 직전의 계산 결과를 최대한 사용하여 다음 계산을 수행하는 것 ! 

     

    -> 물론 반복성을 가지는 모든 계산을 점진적으로 할 순 없지만, 규칙적인 계산 과정에서 점진적인 구조를 이용할 수 있는 경우 많은 계산을 줄일 수 있음 ! => 래스터화 문제에 적용하여 효율 높인다 

     

     

     

     

    레스터화

     

     

    Rasterization 은 두 가지 계산을 수행하는 것을 주 목적으로 한다!

     

    (1) 윈도우 좌표계로 변환된 각 기하 프리미티브들이 화면상에서 차지하는 화소들의 위치를 찾는 것

    (2) 벡터 형태의 데이터인 기하 프리미티브들이 래스터들로 변환되면ㅁ서, 각 연관 데이터들을 기하 프리미티브들의 내부에 해당하는 화소들에게 붙여줄 적절한 값 계산

     

     

     

     

    => 이런 래스터화의 결과로 생성되는 화소와 그에 연관된 정보들을 fragment라고 부르며, 4가지 정보로 구성된다!

     

    (1) 윈도우 좌표계 공간에서의 화소의 위치와 그에 연관된 데이터 

    (2) 그 화소를 통해 보이는 기하 프리미티브의 해당 지점까지의 깊이 정보 

    (3) 그 지점의 색깔

    (4) 그 지점에 매핑되는 텍스쳐 좌표 

     

    - 래스터화 이전까지의 기하 프리미티브의 연속적인 정보들은 래스터화를 통해 프래그먼트로 변환되고, 래스터화 이후엔 모든 계산이 프래그먼트 단위로 일어난다 

     

     

     

    1. 점의 래스터화

     

     

     

    2. 선분의 래스터화 

     

     

    1) diamond-exit 규칙

     

    2) DDA 알고리즘 (Digital Different Analyzer algorithm)

     

    3) 브레즌햄 알고리즘 (Bresenham's algorithm)

     

     

     

    * 위의 DDA 알고리즘이나 브레즌햄 알고리즘은 래스터화의 두 가지 목적 중 (1) 화소의 위치를 찾는 점진적 계산 방법

     

    => 여기에 선형 보간을 적용한다면 (2) 화소에 연관시킬 데이터, 즉 프리미티브 내부의 화소에 대한 데이터 값까지 계산할 수 있다! 

     

     

     

     

    3. 다각형의 래스터화 

     

    - 다각형의 래스터화 알고리즘들은 공통적으로 스캔 라인 변환(Scan Line Conversion) 형태의 방식을 취한다 

     

     

     

     

     

     

     

     

     

    참고:

     

    https://darkpgmr.tistory.com/117?category=460965 

     

    선형 보간법(linear, bilinear, trilinear interpolation)

    이 글은 1D 선형보간법(linear interpolation)을 2D로 확장한 bilinear interpolation과 3D로 확장한 trilinear interpolation이 어떤 식으로 이루어지는지와 이러한 interpolation 기법이 히스토그램(histogram)..

    darkpgmr.tistory.com

     

    https://justdoitproject.tistory.com/38

     

    [CG] 컴퓨터그래픽스 02. Rasterization

    2020/04/06 - [CSE] - [CG] 컴퓨터그래픽스 01.기본개념 2020/04/06 - [CSE] - [CG] 컴퓨터그래픽스 02. Rasterization 2020/04/07 - [CSE] - [CG]컴퓨터 그래픽스 03. 기하 변환 Geometric Transformation 3. 선..

    justdoitproject.tistory.com

     

    728x90
Designed by Tistory.