GameMath-Chapter 07 조명

1,461 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,461
On SlideShare
0
From Embeds
0
Number of Embeds
82
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

GameMath-Chapter 07 조명

  1. 1. Chapter 07 조명 작성자 허 창 오 [email_address]
  2. 2. 조명 <ul><li>목적 </li></ul><ul><ul><li>물체가 입체감을 갖기 위해선 조명이 필요 </li></ul></ul><ul><ul><li>3D 환경에서 조명이 어떻게 구현되는지 안다 </li></ul></ul><ul><ul><li>완벽한 세미나 </li></ul></ul>
  3. 3. 01. 광원 <ul><li>물체가 보이는 원리? </li></ul><ul><ul><li>광원에서 발사된 빛이 물체에 반사되어 눈이 인식 </li></ul></ul><ul><li>3D에서 광원의 종류 </li></ul><ul><ul><li>Directional Light </li></ul></ul><ul><ul><li>Point Light </li></ul></ul><ul><ul><li>Spot Light </li></ul></ul>
  4. 4. 01. 광원 <ul><li>Directional Light - 무한 거리에 위치한 광원 </li></ul><ul><li>표현 - (x, y, z, 0) </li></ul>
  5. 5. 01. 광원 <ul><li>Point Light – 한 점에서 골고루 분산된 광원 </li></ul><ul><li>표현 - (x, y, z, 1) </li></ul>
  6. 6. 01. 광원 <ul><li>Spot Light – 방향광과 점광의 조합 </li></ul><ul><li>표현 - 방향 벡터 , Cut-off angle( 조명 범위각 ) </li></ul>
  7. 7. 02. 재질 <ul><li>물체의 색은 빛이 표면에서 반사 될때 물체 표면의 재질에 따라 결정 </li></ul><ul><li>색상의 표현 </li></ul><ul><ul><li>RGBA 색상 벡터 </li></ul></ul><ul><ul><li>(Red, Green, Blue, Alpha) </li></ul></ul><ul><ul><li>0.0 ~ 1.0 or 0 ~ 255 </li></ul></ul>
  8. 8. 02. 재질
  9. 9. 02. 재질 <ul><li>Ambient Material(주변 재질 색상) </li></ul><ul><ul><li>다른 물체에 의해 반사되어 나타나는 주변 반사광의 색상 </li></ul></ul><ul><li>Diffuse Material(난반사 재질 색상) </li></ul><ul><ul><li>물체 표면 자체의 색상 표현 </li></ul></ul>
  10. 10. 02. 재질 <ul><li>Specular Material(전반사 재질색상) </li></ul><ul><ul><li>광원이 반사되어 가장 밝게 빛나는 부분의 색상 </li></ul></ul><ul><ul><li>Shininess(반사도) 상수값 필요 </li></ul></ul><ul><li>Emissive Material(방사 재질 색상) </li></ul><ul><ul><li>발광체 물체를 표현 </li></ul></ul><ul><ul><li>Ex) 전구 </li></ul></ul>
  11. 11. 03. Illumination(조명) <ul><li>Lighting Model( 조명 모델 ) </li></ul><ul><ul><li>재질 뿐만 아니라 물체의 모양에 따라 효과가 달라짐 </li></ul></ul><ul><ul><li>모양과의 상호 작용을 모델링 한 것 </li></ul></ul><ul><ul><li>계산이 단순해야 함 </li></ul></ul><ul><li>조명 결정은 3 가지 성분의 합으로 </li></ul><ul><ul><li>Diffuse Component ( 분산 성분 ) </li></ul></ul><ul><ul><li>Specular Component ( 전반사 성분 ) </li></ul></ul><ul><ul><li>Ambient Component ( 주변 성분 ) </li></ul></ul>
  12. 12. 03.1 Diffuse Component Surface Normal Vector Light Vector Incident Angle Diffuse Reflection Incident Light
  13. 13. 03.1 Diffuse Component <ul><li>난반사 (Diffuse Reflection) </li></ul><ul><ul><li>Lambert’s law </li></ul></ul><ul><ul><ul><li>관측자가 보는 빛의 양은 관측자의 위치에는 상관 없고 오직 빛의 입사각에 의존한다 </li></ul></ul></ul>
  14. 14. 03.1 Diffuse Component <ul><li>Rd = cos = N • L </li></ul><ul><li>N – 평면 법선 벡터 </li></ul><ul><li>L – 광원 법선 벡터 </li></ul>N L
  15. 15. 03.1 Diffuse Component <ul><li>diffuse = (Kd ⊗ Ld) ∗ max(N • L, 0) </li></ul><ul><ul><li>Kd – 표면 난반사 재질 </li></ul></ul><ul><ul><li>Ld – 광원 난반사 재질 </li></ul></ul><ul><ul><li>Kd ⊗ Ld – 벡터 요소간의 곱 </li></ul></ul><ul><ul><li>max(N • L, 0) </li></ul></ul><ul><ul><li>최종 diffuse는 4 * 1 RGBA 색상벡터 </li></ul></ul>
  16. 16. 03.2 Specular Component <ul><li>Highlight – 가장 밝은 부분 </li></ul><ul><li>눈의 위치에 따라 영향을 받음 </li></ul><ul><li>Specular Material Color & Shininess 에 영향 </li></ul>
  17. 17. 03.2 Specular Component <ul><li>Shininess 3 6 9 25 200 </li></ul><ul><li>0.25 </li></ul><ul><li>0.5 </li></ul><ul><li>0.75 </li></ul>
  18. 18. 03.2 Specular Component <ul><li>R – 반사 벡터 </li></ul><ul><li>S – 시점 방향 벡터 </li></ul><ul><li>N – 표면 법선 벡터 </li></ul><ul><li>L – 광원 방향 벡터 </li></ul>
  19. 19. 03.2 Specular Component < 반사 벡터 R 연산 > N L R = 2(N • L)N - L N • L 2(N • L)N
  20. 20. 03.2 Specular Component <ul><li>좀 더 빠른 계산이 필요  Blinn 방정식 </li></ul><ul><li>광원의 위치가 고정되어 있을 경우, 조명 계산을 매우 빠르게 수행 가능 </li></ul>< 반사각 벡터 H>
  21. 21. 03.2 Specular Component <ul><li>Specular = </li></ul><ul><li>visibility * (Ks ⊗ Ls) * (max(N•H, 0))^shin </li></ul><ul><ul><li>Visibility – 표면의 조명여부 </li></ul></ul><ul><ul><li>Ks – 전반사 재질 색상 </li></ul></ul><ul><ul><li>Ls – 광원의 전반사 색상 </li></ul></ul><ul><ul><li>N – 표면의 단위 법선벡터 </li></ul></ul><ul><ul><li>H – 표면상의 P로 부터 반각벡터 </li></ul></ul><ul><ul><li>Shininess – 표면의 반사도 </li></ul></ul>
  22. 22. 03.3 Ambient Component <ul><li>다른 물체를 한 번 거쳐 반사된 간접 조명 </li></ul><ul><li>Ambient = Ka ⊗ La </li></ul><ul><ul><li>Ka = 주변광 재질 색상 </li></ul></ul><ul><ul><li>La = 광원의 주변광 색상 </li></ul></ul><ul><li>Ray Tracing 기법을 이용 </li></ul>
  23. 23. 03.4 Total Illumination <ul><li>Total Illumination </li></ul><ul><ul><li>= Ambient + Diffuse + Specular </li></ul></ul>
  24. 24. 04. Shading(음영) <ul><li>삼각형 메쉬 모델링 </li></ul><ul><ul><li>181p [그림 7 -1 5] 참조 </li></ul></ul><ul><ul><li>182p [그림 7 -1 6] 참조 </li></ul></ul><ul><li>삼각형의 면을 채우는 과정 </li></ul><ul><ul><li>182p [그림 7 -1 7] 참조 </li></ul></ul>
  25. 25. 04.1 Flat Shading(평면 음영) <ul><li>법선 벡터 한 개만을 사용 </li></ul><ul><li>다각형의 첫번째 정점 사용 </li></ul><ul><li>glShadeModel(GL_FLAT) </li></ul>
  26. 26. 04.2 Gouraud Shading <ul><li>세개의 꼭지점에서 조명결과를 이용 후 색상을 보간 </li></ul><ul><li>glShadeModel(GL_SMOOTH) </li></ul><ul><li>모서리 부분 어색 </li></ul>
  27. 27. 04.3 Phong Shading <ul><li>각 꼭지점에 지정된 법선 벡터를 보간 </li></ul><ul><li>연산 수행 시간이 오래 걸림 </li></ul>
  28. 28. 04. 기타 <ul><li>Programmable Shader </li></ul><ul><ul><li>Shader – 하드웨어에서 렌더링 담당 부분 </li></ul></ul><ul><li>CG(C for Graphics) </li></ul><ul><ul><li>NVIDIA에서 발표한 셰이딩 언어 </li></ul></ul><ul><ul><li>C와 유사 </li></ul></ul>

×