티스토리 뷰
여러 형태의 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