공부/Graphics, DirectX, 포트폴리오 구조

Lighting

sudo 2022. 9. 13. 05:43

Lighting 

- 빛과 Object간의 상호 작용

 

Direction Light Source 

- 아주 멀리서 오는 Sun()라고 생각하면 됨.

- 이제부터 설명하는 모든 Light의 종류는 Direction Light Source라고 가정하고 설명할 것임 

- 아주 멀리서 오는 빛이기 때문에 오브젝트의 모든 점에 들어오는 빛은 같은 방향과 입사각으로 들어온다고 가정

 

Phong Light Model

- 대표적 Lighting Model 
- Phong Model
4가지 Term으로 이루어짐


1. Diffuse(
난반사, = Lambert)

- 온갖 방향으로 동일한 양의 빛을 반사

- 온갖 방향으로 동일한 양으로 반사된다는 것은 우리가 카메라를 어디 두던간에 같은 색으로 보인다는 의미.

- 우리가 "어떤 물체를 보고 어떤 색이다" 라고 하는 것은 바로  Diffuse Light를 보고 말하는 것

Diffuse Light
  점에 들어온다고 가정할    (p) 들어오는 빛의 강도(Intensity) 계산 하는 것은 
 (p)에서 Ligth Source까지의 벡터를 l 벡터라고 하고 (p)에서 수직으로 나오는 벡터를 벡터라고   max(n.Dot(l), 0)    p에서 받는 빛의 강도 계산한 

 

 빛이   p를 수직으로 내리    p에서 가장 빛을 많이 받는다 
 


Diffuse Light의 최종 결과는

 

$$ max(n \cdot l, 0)s_{d}\bigotimes m_{d} $$

 

(sd는 light source의 색상, md는 Material의 Diffuse Color)

2. Specular(정반사)

- Specular 빛이 입사각과 반사각이 같도록 반사되는 즉, 카메라가 어느 위치에 있는지에 따라 정반사된 결과를  수도 있고  볼수도 있다.

- Specular Material Color 보통 Gray-Scale Color(gray-scale r,g,b 모두 같은 경우를 말. ( ex (r,g,b) = (0.3, 0.3, 0.3) )

- Diffuse에서 Material Color 빛의 색상에서 필터링해서 특정 rgb값중 특정값만 난반사해서 물체의 색상을 표현하지만
Specular
 빛의 색상을 그대로 보여주되어디가  매끈하고 반짝거릴지어디가  매끈하고 반짝거릴지 정도만 표현하는것 뿐이므로 rgb값이 gray-scale이다

 

$$ (max(r\cdot v, 0))^{sh}s_{s}\bigotimes m_{s} $$

 

3. Ambient(환경광)

- 어디서 반사돼서 들어오는지는 모르지만 주변에서 온갖 방향에서부터 들어오는 빛이 있다고 대략적으로 가정해서 있다고 생각하는 Light
-
 p 온갖 방향으로 빛이 들어와서 반사도 마찬가지로 p에서 온갖 방향으로 반사됨
- 온갖 방향으로 들어오니 빛의 방향 벡터(l) 필요없음빛의 반사 벡터도 Normal vector 기준으로 계산했는데 온갖 방향으로 반사되니 Normal vector 의미 없음. 계산 공식은

 

$$ s_{a}\bigotimes m_{a} $$

-> Ambient 빛의 rgb(sa) x Material rgb 성분곱(ma)

4. Emissive
-> 
스스로 빛을 내는 물체에 주는  위의 3개와 달리 반사가 아니므로 성분별 곱이 아니라 그냥 Material의 개별적인 Emmisive값만 독립적으로 존재 

따라서 Phong Model 위의 Diffuse + Specular + Ambient + Emmisive 모두 더하는 

 

 

Reference

https://www.youtube.com/watch?v=_uIjVpAM9l8&list=WL&index=1&t=1877s