ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Shading
    그래픽스 2021. 11. 29. 17:09

    Scan conversion

    픽셀을 색상을 칠하기 위한 단계이다.

    예를 들어) Vertex의 점 3개의 이은 삼각형의 내부를 채우는 것이다.

    좋은 알고리즘의 특징

    • 등가
    • 직선 모서리야 한다.
    • 계단현상이 적은 것
    • 인접한 프리미티브 사이에 균열 없음
    • 빨리 그려져야 한다.

    겉과 속을 구분하는 법

    ax + by + c -> 직선

    • On line:    ax + by + cz = 0 -> 선위에 있다.
    • On right:   ax + by + cz < 0 -> 선 외부에 있다.
    • On left:     ax + by + cz > 0 -> 선 내부에 있다

    다각형의 모든 선을 이런 방법을 이용해서 계산하면,

    삼각형 꼭짓점은 시계 반대 방향으로 정렬됩니다. (CCW)

    Triangle Sweep-Line Algorithm(삼각형을 스캔하는 알고리즘)

    spatial coherence(공간의 연속성), edge linearity(선의 기울기)

    edge linearity(선의 기울기)

    직선의에 있는 점의 위치에서 직선의 기울기를 구해서, 삼각형의 직선위에 있는 점들의 위치를 예측할 수 있다.

    다각형 내부에 픽셀을 채우는 방법이다.

    볼록 다각형, 오목 다각형은 어떻게 구분하고, 내부를 채우는 가?

    삼각형 방법은 볼록 다각형에만 적용되는 방법이다.

    Odd-parity rule

    무작위 점을 찍어서, 점에서 나온 선이 만나는 선의 개수를 가지고 내부, 외부를 판단한다.

    홀수면, 내부

    짝수면, 외부

    Polygon Sweep-Line Algorithm

    범위를 찾고 Odd-parity rule으로 내부성을 결정하는 증분 알고리즘이다.
    스캔라인 일관성 활용한다.

    어떻게 선 가장자리에 있는 픽셀은 어떻게 표현하는 것인가?

    가장자리에 있는 픽셀을 나누어서, 내부에 있는 부분이 있는 정도에 따라서, 색깔을 다르게 표현한다.

    Shading

    어떻게 각각의 픽셀에 색깔을 채우는 가?

    Polygon Shading vs Ray Casting

    Polygon Shading

    메싱 및 투영 후,
    3D -> 2D -> image
    변환 지오메트리 기반으로 
    장면의 각 삼각형에 대해서 표현한다.

    공간적 일관성을 활용한다.

    동일한 원시적인 화소로 덮인 화소에 대한 조도 계산은 서로 관련이 있다.

     

    Ray Casting

    3D -> image

    광선에 대한 기하학적 추론을 한다

    픽셀 이미지의 각 샘플에 대해서 표현한다.

    모든 픽셀에 대해 독립적인 조명 계산을 수행하는 것이다.

     

    Flat Shading (= constant shading)

    폴리곤을 하나의 조명으로 계산하여, 모든 폴리곤의 픽셀은 같은 색상을 가진다.

    face normal을 사용한다.

    특징

    물체는 다각형으로 구성된 것처럼 보인다.

    간단하고 빠르다.

    단점

    마하밴드가 있다. (검은색으로 흰색으로 갈때 끊겨서 보이는 것)

    매끄러운 표면에는 좋지 않음

    곡면은 적합하지 않다.

    Gouraud Shading

    Vertex normal을 사용한다.

    방법

    Vertex 마다 조명 계산을 한다.

    Vertex에서 계산된 조명값 가지고 이직선 보간법을 사용하여, 폴리곤 내부에 픽셀의 색상을 결정한다.

    특징

    빠르다.

    부드럽게 음영 처리된 폴리곤 메시를 생성합니다.

    단점

    색상이 약간 불연속적이다. (약간 마하 밴드 : 검은색으로 흰색으로 갈때 끊겨서 보이는 것)

    내부 하이라이트가 표현이 안된다.

    Phong Shading

    Vertex normal을 가지고 보간을 한다. -> pixel normal을 사용한다.

    폴리곤에 대해 정규 분포를 선형으로 보간합니다.

    방법

    픽셀당 하나의 조명 계산
    Vertex에서 노멀의 이직선 보간법에 의한 폴리곤 내부 점의 대략적인 표면 normal

    Vertex을 이직선 보간법을 사용하여, 폴리곤 내부의 Pixel Normal을 구해서, 폴리곤 내부의 조명값을 계산한다.

    특징

    적은 Vertex를 가지고 선명한 하이라이트를 만들 수 있다.

    단점

    모든 픽셀에 대해서 Phong 조명 계산을 하기 때문에 느리다.

     

    '그래픽스' 카테고리의 다른 글

    Texture  (0) 2021.12.01
    illumination 조명  (0) 2021.11.17
    Rendering Pipeline  (0) 2021.11.15
    3D Object - Curve & Surface  (0) 2021.11.08
    3D Object  (0) 2021.11.01

    댓글

Designed by Tistory.