illumination : 조명 & 음영
Basic shading methods
flat : OpenGL
gouraud : OpenGL
phong : GLSL
PBRT : 물리기반 렌더링 기술
Local illumination : 1차인 직접 조명만 반영
-> 사실성 떨어짐
Global illumination : 2차인 직접 조명 + 간접 조명을 반영
-> 사실성 증가
보통 실시간으로 해결 되는 광원
ex) Point light, Directional light, Spot light
-> 직접 조명만을 지원
Point light : 위치값이 존재 -> 위치와 위치의 거리차이를 이용하여 빛의 감쇄를 표현
Directional light : 방향값만 존재 -> 플레이어가 바라보는 방향과 Directional light의 방향을 내적하여 나오는 cos값을 이용하여 빛의 감쇄를 표현
Spot light : radius가 2개 존재 1.light 범위 2.화이트존(가장 밝은 부분)
unreal, unity에서의 2차 간접조명은 baked 기법을 이용해 표현 (실시간X)
Attenuation of Light Intensity
Kc : 거리를 신경쓰지 않고 감소
Kl : 거리에 따른 선형
Kq : 거리에 따른 이차식
-> Quadratic 이 조금 더 현실성 있다.
Global illumination
- Phong model
1. Ambient lighting : 물체 자체가 가지고 이는 색
2. Diffuse lighting : 음영을 계산(난반사)
3. Specular lighting : 반짝임을 표현(입사각으로 들어오면 반사각이 생긴다 : 이 때, 반사각이 Specular lighting)
-> 이를 모두 합친다.
analytic : 정확한 식이 있는 것 ex) f=a+b+c이다.
Emission : 자체 발광(객체가 가진 머테리얼)
Ambient reflection : 자체 발광은 같지만 간접광을 이용하여 사용자가 색 조절 가능
Diffuse Reflection : 사용자 시점이 들어가지 않는다.
- Lambert's law
Specular Reflection : 사용자의 시점 변화가 들어감.
shading : 음영
1. Flat shading : GL -> 저퀄리티 (평면을 통하여 색을 찾음)
-> N값을 통하여 각각의 픽셀의 색을 구함(각각의 삼각형 N값 사용)
2. Gouraud shading : GL -> 버텍스의 N값 사용 -> 버텍스 N은 해당 버텍스와 인접한 삼각형들의 N값의 평균
-> 모든 삼각형들이 같은 크기, 모양이 아니기 때문에 각도나, 너비등의 방식을 선택하여 가중치를 다르게 준다.
=> Flat shading보다는 정확하지만 전체적으로 정확하지 않음 -> 조명을 계산하는 방법이 아니기 때문
-> 버텍스만 조명을 계산하고 나머지를 보간법을 통해 채우는 방식이기 때문
3. Phong shading : GLSL
모든 부분에 있어서 N값을 interpolate(보간)한다. 연산량이 많아지지만 하이 퀄리티를 얻을 수 있다.
'학교수업' 카테고리의 다른 글
UNIX 9주차 (0) | 2022.05.10 |
---|---|
게임공학개론 10주차 (0) | 2022.05.09 |
게임공학개론 9주차 (0) | 2022.05.04 |
컴퓨터구조 7주차 (0) | 2022.04.23 |
UNIX 서버 7주차 (0) | 2022.04.23 |