Your SlideShare is downloading. ×

SH & PRT (Kasastudy)

1,375

Published on

Spherical Harmonics Lighting에 관한 간단한 소개, PRT Diffuse 기법에 대한 소개를 다룬 발표.

Spherical Harmonics Lighting에 관한 간단한 소개, PRT Diffuse 기법에 대한 소개를 다룬 발표.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,375
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Spherical Harmonics & Precomputed Radiance Transfer 소개 김혁 Kasastudy 1Friday, February 3, 12
  • 2. Global Illumination 개요 Spherical Harmonics Lighting PRT Diffuse 간략한 구현 소개 2Friday, February 3, 12
  • 3. Global Illumination 개요 3Friday, February 3, 12
  • 4. 직접 조명 (direct illumination) 4Friday, February 3, 12
  • 5. 간접 조명 (indirect illumination) 5Friday, February 3, 12
  • 6. 전역 조명 (global illumination) 6Friday, February 3, 12
  • 7. =+ 7Friday, February 3, 12
  • 8. 8Friday, February 3, 12
  • 9. 9Friday, February 3, 12
  • 10. 10Friday, February 3, 12
  • 11. 11Friday, February 3, 12
  • 12. vs 12Friday, February 3, 12
  • 13. PRT DEMO 13Friday, February 3, 12
  • 14. Instant Radiosity 정적 물체정적 조명 동적 물체 동적 조명 동적 물체 동적 물체 Irradiance Volume RSM 정적 물체 정적 물체 PRT Realtime Radiosity 정적 물체정적 조명 정적 물체 SH Light Map Light Map 14Friday, February 3, 12
  • 15. Instant Radiosity Irradiance Volume RSM PRT Realtime Radiosity SH Light Map Light Map Battlefield 3 Crysis 2 Half-life 2Ambient Cube Spherical Harmonics(SH) Irradiance SH Light Propagation Volume Halo 3 SH 15Friday, February 3, 12
  • 16. Spherical Harmonics Lighting 16Friday, February 3, 12
  • 17. 3차원 공간 SH 공간 (무한차원) |0 >, |1 >, . . . 1 < 0|, < 1|, . . . 1 ~x, ~y, ~z ~x = 0 @ 1 0 0 1 A ~xT = (1, 0, 0) |0 >= 0 B @ 1 0 ... 1 C A < 1| = (0, 1, · · · ) 벡터(VECTOR) 17Friday, February 3, 12
  • 18. 3차원 공간 SH 공간 (무한차원) 기저 벡터(BASIS VECTOR) ˆx, ˆy, ˆz |0 >, |1 >, |2 >, . . . 1 18Friday, February 3, 12
  • 19. 3차원 공간 SH 공간 (무한차원) 임의의 벡터 |f >= f0|0 > +f1|1 > +f2|2 > + · · · ~p = px ˆx + py ˆy + pz ˆz 19Friday, February 3, 12
  • 20. 3차원 공간 SH 공간 (무한차원) 내적(INNER PRODUCT) ~v0 · ~v1 = |v0||v1|cos✓ < f|g >= Z ! f(✓, )g(✓, )d! 20Friday, February 3, 12
  • 21. 3차원 공간 SH 공간 (무한차원) 내적(INNER PRODUCT) ˆx · ˆx = 1 ˆx · ˆy = 0 < i|j > = 1, i = j = 0, i 6= j < 0|0 >=< 1|1 >= · · · = 1 < 0|1 >=< 2|3 >= · · · = 0 21Friday, February 3, 12
  • 22. |1 > |2 > |3 > |4 > |0 > 22Friday, February 3, 12
  • 23. 3차원 공간 SH 공간 (무한차원) 투영(PROJECTION) px = ~x · ~p < 0|f > =< 0|f0|0 > + < 0|f0|1 > + · · · = f0 < 0|0 > +f1 < 0|1 > + · · · = f0 23Friday, February 3, 12
  • 24. SH 공간 (무한차원) < 0|f > =< 0|f0|0 > + < 0|f0|1 > + · · · = f0 < 0|0 > +f1 < 0|1 > + · · · = f0 < 0|f >= Z ! Y0(✓, )f(✓, )d! = f0 적분으로 각 상수를 구함 24Friday, February 3, 12
  • 25. LOW FREQUENCY HIGH FREQUENCY 25Friday, February 3, 12
  • 26. 무한대 0개 4개 16개 36개 64개 100개 26Friday, February 3, 12
  • 27. SH 사용 예 - RAMAMOORTHI 의 기법 반구 적분 입사 조명 (INCIDENT LIGHT) 이라디언스 (IRRADIANCE) 27Friday, February 3, 12
  • 28. NO SHADOW!! NO INTERREFLECTIONS!! N NORMAL N을 위한 적분 영역 28Friday, February 3, 12
  • 29. |f > < 0|f >= f0 < 1|f >= f1 < 2|f >= f2 < 3|f >= f3 ... 적분 SPHERICAL HARMONICS 계수 계산하기 29Friday, February 3, 12
  • 30. |f > SPHERICAL HARMONICS 계수 계산하기 < gN | N X = NORMAL N에 해당하는 이라디언스 30Friday, February 3, 12
  • 31. < gn| |f > < gN |f > = gN 0 · f0+ gN 1 · f1+ gN 2 · f2+ ... X 31Friday, February 3, 12
  • 32. Z ! g(✓, )f(✓, )d! =< g|f > < g|f >= (< 0|g0+ < 1|g1+ < 2|g2 + · · · ) · (f0|0 > +f1|1 > +f2|2 > + · · · ) = g0 · f0 + g1 · f1 + g2 · f2 + · · · 증명 32Friday, February 3, 12
  • 33. SH이라디언스 맵 앰비언트 큐브 9개(9x3=37)텍스쳐 크기 6개 (6x3=18) 이라디언스 연산자 생성텍스쳐 읽기 방향 계산 용량(RGB) 실시간 계산 33Friday, February 3, 12
  • 34. Spherical Harmonics WebGL Demo 34Friday, February 3, 12
  • 35. 요약 1. 배경에 해당하는 SH 상수를 미리 구함(적분) 2. Vertex Shader 안에서 normal N에 해당하는 g_n 을 구함 3. Pixel Shader 에서는 g_n이 보간되서 들어오고, 이 값을 내적 계산 예시에서는 RGB에 대해 각각 9개, 총 27개 RGB가 서로 다르지 않기 때문에, 9개 35Friday, February 3, 12
  • 36. Spherical Harmonics Lighting의 특징 저주파수(low frequency) 대역의 색깔을 적은 계수로 사용 실시간 적분! SH 회전이 가능함 하지만 회전은 연산량이 너무 많음 -_-ㅋ 보간 계산이 가능! 36Friday, February 3, 12
  • 37. 활용 예 SH 를 미리 계산 해두고 공간에 배치 시킨 후(SH Prob) 실시간 렌더링 시 에 사용 일반적으로 물체 하나에 SH 세트 한개만을 일괄적으로 사용함 Halo 3 에서는 SH 맵을 구워서 Normal Map 대신(함께) 사용 (Battlefield3에도 사용된) Enlighten 엔진은 기본적으로 실시간 Radiosity 를 계산하고, 공중에 배치 되어 있는 SH Prob에도 결과를 넘겨줌 37Friday, February 3, 12
  • 38. 38Friday, February 3, 12
  • 39. 39Friday, February 3, 12
  • 40. 40Friday, February 3, 12
  • 41. 41Friday, February 3, 12
  • 42. 이미지 출처(순서대로) The Irradiance Volume, Gene Greger, et al (1998) Lighting and Material of Halo 3, Hao Chen and Xinguo Liu (2008) Radiosity Architecture, Sam Martin and Per Einarsson (2010) 소닉 월드 어드벤쳐 그래픽스 강좌 - http://jacking.tistory.com/330 42Friday, February 3, 12
  • 43. PRT Diffuse 43Friday, February 3, 12
  • 44. 이곳으로 들어올 수 있는 빛의 방향과 양! 44Friday, February 3, 12
  • 45. 이런 모양을 어떤 위치(VERTEX 혹은 TEXEL)마다 가지고 있는 것! PRT의 기본은 SHADOWED!! NO INTERREFLECTIONS!! 45Friday, February 3, 12
  • 46. SHADOWED!! 46Friday, February 3, 12
  • 47. FIRST PASS! 47Friday, February 3, 12
  • 48. SECOND PASS! 끌어옴 48Friday, February 3, 12
  • 49. RENDERING! 빛 49Friday, February 3, 12
  • 50. PRT Glossy는 생략 -ㅅ-; 50Friday, February 3, 12
  • 51. 구현 사항 & 기타 51Friday, February 3, 12
  • 52. 사용한 방법 다른 방법 SH 계산 Raytracing 실시간 렌더링 Raytracing (CPU) Direct3D Raytracing (CPU) OptiX (GPU Raytracing Library) 쉐이더만 되면 상관 없음쉐이더만 되면 상관 없음 52Friday, February 3, 12
  • 53. 1. 각 Vertex에 대해 반구 적분. 광선은 충돌/비충돌만 검사 모든 Vertex에 대해 9개의 SH 상수를 계산해서 저장함 N POSITION, NORMAL, TEXTURE COORDS, ...., SH 상수(FLOAT) 9개 V 53Friday, February 3, 12
  • 54. 2. 각 Vertex에 대해 주변의 SH 상수들을 모아옴 광선의 충돌 지점에서 보간 된 SH상수 9개를 가져온 후, 해당 물체의 색깔(텍스쳐)와 곱해서 SH상수 27개로 만듦 N V 이 과정은 수학적으로 올바른 적분식을 통해 계산 됨 POSITION, NORMAL, TEXTURE COORDS, ...., SH 색깔 9개(FLOAT 27개) 54Friday, February 3, 12
  • 55. 3. 미리 SH Light를 만들어 둠 Area Light를 쉽게 사용할 수 있음 (오히려 Point Light는 흉내내기 어려움) 역시 적분을 통해 SH로 만들어 둠 SH 27개를 만들어도 되고, SH 9개와 Light 색깔을 사용해도 됨 55Friday, February 3, 12
  • 56. 3. 실시간에서는 조명을 회전 회전에 대한 연산은 어마어마함 상황에 따라 최소화하여 사용 샘플에서는 조명만 CPU에서 한번 회전 Vertex Normal 은 World Normal 56Friday, February 3, 12
  • 57. References An efficient representation for irradiance environment maps, Ramamoorthi, Ravi and Hanrahan, Pat (2001) Spherical Harmonics, Sch''onefeld, Volker Precomputed radiance transfer for real-time rendering in dynamic, low-frequency lighting environments, Peter-Pike Sloan,Jan Kautz and John Snyder (2002) Spherical Harmonic Lighting: The Gritty Details, Robin Green Lighting and Material of Halo 3, Hao Chen and Xinguo Liu (2008) 57Friday, February 3, 12

×