Yozzang의 해킹일기 💻
article thumbnail
728x90

이번 포스트에서는 음영 처리 기법에 대해 다루겠다.

Constant Shading

  • 가장 간단함
  • 면단위로 처리함
  • 광원이 무한대인 경우에만 유효함
  • 시야가 무한대인 경우에만 유효함
  • 다각형이 모델링 되는 실제 표면을 나타내며 곡면에 대한 근사치가 아닌 경우에만 유효함

Interpolated Shading

  • 정점에 대해 결정된 값들로부터 삼각형을 가로질러 선형 보간함
  • Gouraud는 해당 기법을 임의의 다각형으로 일반화함
  • span의 끝점에 대해 계산된 보간된 z 값에서 span에 걸쳐 이미 z 값을 보간하는 스캔 라인 알고리즘에 특히 쉬움

Polygon-Mesh Shading

  • 각 다각형 면이 개별적으로 음영 처리되면 방향이 다른 이웃들과 쉽게 구별되며, 면모(faceted) 있는 모습을 만들어냄
  • 인접한 면들 사이의 음영에서 인식된 차이가 마하 밴드 효과에 의해 강조되기 때문에, 크기나 강도의 기울기가 불연속적인 가장자리에서 강도 변화가 더 큼
  • 즉, 두 면 사이의 경계에서 어두운 면은 더 어둡게 보이고 밝은 면은 더 밝게 보임

Polygon-Mesh Shading

  • 점선: 인식 강도, 실제로 우리 눈에 보이는 것
  • 실선: 실제 강도

따라서 보다 부드러운 면 묘사하기 위해서 다음과 같은 기법이 필요하다.

  1. Gouraud Shading
  2. Phong Shading

Gouraud Shading

Gouraud Shading

  • 강도의 불연속성 제공한다.

Gouraud 보간법

  • Ia와 Ib를 보간하여 Ip의 값을 도출해낼 수 있다.

Phong Shading

Phong Shading

  • 강도 대신 표면 법선 벡터를 보간한다.

Gouraud Shading vs Phong Shading

  • a, c: Gouraud Shading
  • b, d: Phong Shading
  • a, b: 왼쪽 정점에 강조 표시함
  • c, d: 다각형 내부에 강조 표시함

[그림 자료 출처: Introduction to Computer Graphics, Foley]

'Computer Graphics' 카테고리의 다른 글

Texture Mapping  (0) 2022.06.08
Specular Reflection (거울 반사)  (0) 2022.06.07
Illumination (조명)  (0) 2022.05.29
z-Buffer Algorithom  (0) 2022.05.24
Back-Face Culling  (0) 2022.05.23
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!