<aside> <img src="/icons/reorder_blue.svg" alt="/icons/reorder_blue.svg" width="40px" /> 목차
</aside>

**플랫 셰이딩(Flat Shading)**은 3D 모델링에서 가장 기본적인 셰이딩 방식입니다.

복잡한 모델에서도 각 면은 하나의 노말 벡터만을 사용하기 때문에 계산이 단순하고 렌더링 속도가 빠른 장점이 있습니다. 반면, 부드러운 표현이 필요한 곡면에서는 **스무스 셰이딩(Smooth Shading)**을 활용하는 것이 더 적합할 수 있습니다.

스무스 셰이딩(Smooth Shading)은 3D 컴퓨터 그래픽스에서 서페이스를 부드럽게 표현하는 기법으로, 각진 폴리곤 토폴로지를 자연스럽고 부드러운 곡면처럼 보이게 만듭니다.

역사
| 시기 | 주요 사건 및 발전 |
|---|---|
| 1960년대 | 초기 ****컴퓨터 그래픽스 셰이딩 기법, 플랫 셰이딩 등장 |
| 1970년대 | 구로 셰이딩(Gouraud Shading) 등장, 스무스 셰이딩의 기초 |
| 1980년대 | 퐁 셰이딩(Phong Shading) 등장, 현대 스무스 셰이딩 모델 정립 |
| 2000년대 | DirectX, OpenGL의 등장, 스무스 셰이딩 모델의 렌더링 파이프라인 통합 |
구로 셰이딩(Gouraud Shading)
구로 셰이딩은 버텍스 단위로 조명을 계산하고 그 결과를 폴리곤 내부에 선형 보간하는 기법입니다.
버텍스별 조명 계산
$$
I_v = \underset{\underset{\text{Ambient}}{\rule{2cm}{0.4pt}}}{k_a I_a} + \underset{\underset{\text{Diffuse}}{\rule{2cm}{1pt}}}{k_d I_d (\mathbf{n}_v \cdot \mathbf{l})} + \underset{\underset{\text{Specular}}{\rule{2cm}{1pt}}}{k_s I_s (\mathbf{r} \cdot \mathbf{v})^n}
$$
| 파라미터 | 설명 |
|---|---|
| $I_v$ | 버텍스 - 최종 라이팅 강도 |
| $k_a, k_d, k_s$ | 앰비언트/디퓨즈/스펙큘러 계수 |
| $I_a, I_d, I_s$ | 앰비언트/디퓨즈/스펙큘러 강도 |
| $\mathbf{n}_v$ | 버텍스 노말 벡터 |
| $\mathbf{l}$ | 라이트 방향 벡터 |
| $\mathbf{r} = 2(\mathbf{n} \cdot \mathbf{l})\mathbf{n} - \mathbf{l}$ | 반사 벡터 |
| $\mathbf{v}$ | 뷰 방향 벡터 |
| $n$ | 스펙큘러 지수 |
색상 보간
트라이 폴리곤 내부의 픽셀 컬러는 버텍스 컬러를 중심 좌표(Barycentric Coordinates)를 사용하여 선형 보간합니다.
$$
I_p = \alpha I_1 + \beta I_2 + \gamma I_3
$$
| 파라미터 | 설명 |
|---|---|
| $I_p$ | 픽셀 - 최종 라이팅 강도 |
| $I_1,I_2,I_3$ | 트라이 폴리곤 버텍스에서 계산된 일루미네이션 강도 |
| $α,β,γ$ | 중심 좌표로 표현된 보간 계수 ($α+β+γ=1$) |
퐁 셰이딩(Phong Shading)

퐁 셰이딩은 픽셀 단위로 조명을 계산하는 기법으로, 버텍스 노말을 보간한 후 각 픽셀에서 조명을 재계산합니다.
버텍스 노말 보간
트라이 폴리곤의 버텍스 노말 벡터 $\mathbf{n}_1, \mathbf{n}_2, \mathbf{n}_3$을 중심 좌표(Barycentric Coordinates)를 사용하여 선형 보간합니다.
$$ \mathbf n_p=α\mathbf n_1+β \mathbf n_2+γ\mathbf n_3 $$
| 파라미터 | 설명 |
|---|---|
| $α,β,γ$ | 중심 좌표로 표현된 보간 계수 ($α+β+γ=1$) |
노말라이즈
픽셀별 조명 계산
정규화된 노말 벡터를 사용하여 각 픽셀에서 조명을 계산합니다.
$$ I=I_a+I_d+I_s $$
Ambient
$I_a=k_aI_{global}$
| 파라미터 | 설명 |
|---|---|
| $k_a$ | 앰비언트 계수 |
| $I_{\text{global}}$ | 앰비언트 라이트 강도 |
Diffuse
Specular
셰이딩 모델의 차이

| --- | --- | --- |