티스토리 뷰

Game/Graphics

SH irradiance (1)

newpolaris 2017. 12. 9. 15:14

"Spherical Harmonic Lighting: The Gritty Details"

기초 부터 응용까지, SH 수학 부분을 상세 설명

뒤에 예제는 먼소린가 이해를 못했는데, 다음 논문에서 하나는 다루더라;

"An Efficient Representation for Irradiance Environment Maps"

맨 처음 페이퍼의 42 페이지 예제의 원본 논문이다.

내용을 다 이해해보려고 이전 연구 까지 봐야하는데 수학 위주라서 이해 할 수 가 없었다.

홈페이지에 소스도 있는데, solid angle 부분 이해할려고 시간 썼는데 실패했다.

solid angle 관련 내용, 구위의 면적과 구에 접하는 면적을 보상하기 위한 것으로 생각된다.

아래와 같이 말하기도 한다.

it’s necessary to take into account the smaller area towards the polar region 

http://www.rorydriscoll.com/2009/01/25/energy-conservation-in-games/

  1. 한글 Wiki의 스테라디안
  2. https://en.wikipedia.org/wiki/Solid_angle
  3. https://nbertoa.wordpress.com/2017/07/16/lighting-series-part-3-radiance/
  4. http://www.rorydriscoll.com/2012/01/15/cubemap-texel-solid-angle/

Cube map에 대해선 solid angle을 아래와 같이 정하기도 한다.

이건 4번에 상세히 설명되어있다.

float32 SolidAngle = AreaElement(x0, y0) - AreaElement(x0, y1) - AreaElement(x1, y0) + AreaElement(x1, y1);

좀더 정확한? 다른 소스는 cubemapGen의 소스에 블럭 처리되어있다

이렇게 solid angle 안쓰고, 근사치를 사용하는 것은 "Stupid Spherical Harmonics (SH) tricks"에 존재한다.

이 것에 대한 python code 검증은 4번의 주석에 존재한다

Wolfram Alpha tells me that “integrate 1/(1+x^2+y^2)^(3/2) dx dy, x=-1..1, y=-1..1” equals 4Pi/6

http://www.pastebin.com/dHk7w9Rs

간략한 설명 (pi로 나누는걸 추가해야한다)

https://computergraphics.stackexchange.com/questions/4997/spherical-harmonics-diffuse-cubemap-how-to-get-coefficients

"Spherical Harmonics in Actual Games"

괜히 본 듯. 볼필요 없다.

굳이 본다면, 저자 홈피 이전한 곳에 수식에 대한 설명이 간략하게 있는데.

모르는 내용이라면 더 이해가 안될 거다.

이리 저리 시간 낭비한게 가슴이 아파온다

"Stupid Spherical Harmonics (SH) tricks"

수학적 증명과 개괄에 대해 다루었는데, 그냥 이런 저런 개괄 내용이다.

저자도 유명하고, 이리 저리 인용되길레 기를 쓰면서 봤는데, 시간만 낭비했다.

결국 이런 저런게 있다. 증명은 이렇다 인데, 증명이 이해도 안되고;

그냥 개괄이라 편히 ref로 넣어버리는 페이퍼 인듯.

얻은 건,

  1. P.8 IEM의 경우 HDR 쓰거나 특별히 밝은 부분 있으면, order 5 고려하세요.
  2. Appendix Projection from cube maps 의 weight 방법 (solid angle)
  3. P.22 그림.
  4. P.41 좀더 개선된 IEM 코드

artifacts 에 대한 선택

https://gamedev.stackexchange.com/questions/68698/reducing-spherical-harmonic-ringing

https://github.com/rlk/sht

그냥 Gaussian 하는게? CubeMapGen에 샘플이 있다.

stupid에도 방법에 대한 그림 비교는 있다.

그냥 자주 보이는 여신상, 버니의 원본 저장소

http://graphics.stanford.edu/data/3Dscanrep/

'Game > Graphics' 카테고리의 다른 글

Punctual Light  (0) 2017.12.19
SH irradiance (2)  (0) 2017.12.18
Cloth move  (0) 2017.12.09
디버거에서 같은 값이 보일때,  (0) 2017.12.06
Re:SSAO  (0) 2017.12.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크