우리는 물체의 곡선을 나타내기 위해서 polygon mesh라는 기법을 사용하고, 이 polygon mesh는 여러개의 폴리곤으로 이루어져 있다. 이러한 폴리곤 mesh는 각각의 폴리곤을 색칠해야하는데, 이때 사용하는기법이 두가지가 존재한다.
- constant shading
- interpolated shading
constant shading
: faceted shading, 혹은 flat shading이라고 하며, 하나의 물체 표면을 구성하고 있는 면(하나의 폴리곤)에 전부 동일한 밝기 값을 부여하는 음영처리 기법이다.
interpolated shading(보간음영처리)
: vetex intensities를 계산하여, 보간 법으로 단일 폴리곤 내부에서 빛의 밝기를 다르게 주는 방법이다. 즉 가장자리와 중심부분의 빛의 밝기가 달라진다.
mach band effect
하지만 위에 두개의 방식으로 음영을 처리하더라도, 폴리곤끼리 연결된다면, 그 밝기 차이로 인해서 면이 딱딱하게 보인다.(feceted appearance) 부드러운 음영이 처리가 안된다. 딱딱한 폴리곤끼리의 선이 명확하게 보이게 된다. 또한 이러한 점은 constant shading에서 더욱 두드러지게 나타난다.
더욱이 서로 다른 밝기값을 가진 면이 만나면, 사람이 그 면과 면이 만나는 음영값의 불연속성을 더 크게 느낀다.
불연속성을 더욱 크게 느끼는 효과를 mach band effect라고한다.
이러한 효과로 인해서 폴리곤에 대해 음영처리를 경계에서 불연속성을 가능하게 느껴지지 않도록 하는게 중요하다.
이러한 mach band effect를 지우는 방법이 두가지가 존재한다.
- gouraud shading
- pong shading
gouraud shading
고러드 쉐이딩은, 면과 면이 닿는 부분을 보간방법으로 불연속성을 제거 하는 방법이다. 하지만 여전히 음영값의 불연속성을 느끼게 된다. 즉, 면과 면이 닿는 부분의 색의 차이를 계산해서, 그 닿는 엣지에 보간법을이용한 음영값을 처리해주는 방법이다.
면과 면이 만나는 꼭짓점에서의 법선벡터를 만나는 면들의 법선 벡터를 다 합한것의 평균값을 통해서 계산한다.
하지만 고러드 쉐이딩의 경우, 엣지에서만 음영값을 계산해 주기 때문에, 물체 내부의 음영을 처리해줄수가 없다.
phong shading
퐁 쉐이딩은 고러드 쉐이딩의 기법을 발전시킨 방식이다.
고러드 쉐이딩과 다른 점은 꼭짓점 뿐만 아니라 나머지 엣지에서의 법선벡터또한 계산하게 된다.
- 고러드에서는 n1과 n0로만 계산하고(꼭짓점에서
- 퐁쉐이딩은 n0 na nb nc n1인 모든 값도 계산하게 된다.
즉, 고러드 쉐이딩에서는 꼭짓점이 아닌 폴리곤 내부에서 거울반사 현상을 표현할수가 없다. 왜냐면 꼭짓점이 아니면 노멀백터를 계산할수 없기 때문임.
총정리, 모델링의 순서
123
456 순의 그림.
- 스캐치
- 보이는부분과 안보이는 부분을 차이 (visiaulization)
- 확산반사까지 확인
- 고러드 쉐이딩 한 부분
- 퐁쉐이딩 한 음영방법 >> 정반사 현상이 훨신 잘 보임
- 반사점이 3개나 보인다. 단일광원이 아닌 다광원을 보여줌.
이처럼 퐁쉐이딩과 고러드 쉐이딩에서의 음영처리는 물체 내부의 전반사 효과가 존재하는지 안하는지를 통해 알수있다.
Uploaded by
N2T