티스토리 뷰

Game/Graphics

Why do I have irradiance as pi?

newpolaris 2017. 12. 19. 15:19

여러 형태의 lighting equation의 PI 분석

https://seblagarde.wordpress.com/2012/01/08/pi-or-not-to-pi-in-game-lighting-equation/

Lambert lighting

각각 physically_based_shading_hoffman_a_notes 의 (1), (7) 번이다.

이걸 결합한게,

여기에 위의 링크에서는 다시 BRDF에 lambert를 적용했으니 당연히 날라간다;

애초에 저 식의 기원이 Diffuse BRDF에 의한건데; 저렇게 전개한다는게 근거가 되는건가;

Irradiance Environment Map

a_DstVal[k] = (float32)(dstAccum[k] / weightAccum);

위의 코드가 irradiance environment map 생성에 쓰인다고 pi 나눠주는 코드라고 하는데

저건 radiance map 생성하는 거다. 그 때문에 weightAcc도 반구만 취한거고

내가 머 잘못이해햇나; 윗부분도 멀쩡히 Blinn-phong BRDF로 나와있잖아

Diffuse spherical harmonic lighting

; 이건 또 왜 다시 나오는 건지

Why do I have irradiance as pi?

그냥 paper 내용 대로 구현할 경우 끝에 E가 나오고

이걸 어떻게 출력한다는 건지에 대한 설명은 없는데;

scene에 따라 scale하여 표시했다는 것 정도 기술되어 있다.

이는 HDR 이미지기 때문에 tone mapping 을 해서 exposure를 조정해야하기 때문이다.

10배 scale을 한다면,

이걸 그냥 LDR 이미지에 대해 IEM을 구해 그냥 뿌리면

우선 비슷한 걸 겪은 사람의 페이지, 코멘트 보면 수도 꽤 된다;

https://imdoingitwrong.wordpress.com/2011/04/14/spherical-harmonics-wtf/

우선 좀더 찾다 보면 cubemapgen 및 원본을 여러군대 form 만 바꿔서 복붙한 코드를 만날 수 있는데,

"irradiance is turned into exit radiance" (divid by Pi)

혹은,

// See Peter-Pike Sloan paper for these coefficients
static float64 SHBandFactor[NUM_SH_COEFFICIENT] = { 
    1.0, 2.0 / 3.0, 2.0 / 3.0
}

stupid 어쩌구인줄 알고 해맷는데, 아래를 말하는 거다.

http://www.realtimerendering.com/resources/shaderx/Tips_and_Tricks_with_DirectX_9.pdf

The hi are the convolution coefficients divided by 
(irradiance is turned into exit radiance), 
and the ni are the normalization coefficients of the basis functions. T

http://graphics.stanford.edu/papers/envmap/envmap.pdf 의 (9)을 pi로 나누면 위의 코드가 된다

결국 그냥, 반구 적분 cos 의 경우 Pi 이기 때문에, normalization 목적이라고 편하게 생각하기로 함.

pi로 나눠주면

cubemapgen 의 경우

The decimal numbers are from Ramamoorthi et al's paper - see that for the
detailed derivation. The fractions (2/3, 1/4) are because this is a
convolution over the hemisphere. Many many thanks to Peter-Pike for these
numbers - for ages I was using the ones direct from the paper and getting

https://sourceforge.net/p/gdalgorithms/mailman/message/16499922/

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

OpenGL  (0) 2017.12.20
Normalization term  (0) 2017.12.20
Punctual Light  (0) 2017.12.19
SH irradiance (2)  (0) 2017.12.18
SH irradiance (1)  (0) 2017.12.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크