티스토리 뷰
우선 Learning OpenGL 의 결과
512x512 크기 cube map에 0.025 각도로 sampling 한다 spherical을 local direction 으로 바꾼다
한 면에 하나씩 처리
Time spent on the CPU Irradiance cubemap: 2.388765 ms Time spent on the GPU Irradiance cubemap: 121.087328 ms
0.25 도로 줄이니
Time spent on the CPU Irradiance cubemap: 0.859027 ms Time spent on the GPU Irradiance cubemap: 0.283808 ms
Etc
SH 구현으로 가려고 했는데 강한 빛 뒤에는 어두운 부분이 늘어난다고 한다
https://www.gamedev.net/forums/topic/675390-diffuse-ibl-importance-sampling-vs-spherical-harmonics/
MJP 아저씨 말이니 신뢰가 높다
In particular it has the problem where very intense lighting
will cause the SH representation to over-darken on the opposite
side of the sphere, which can lead to totally black
(or even negative!) values.
그리고 importance sampling 방법으로 하면,
태양을 제거하고 적은 cubemap에 8x8 cubemap에 32~64로 했다는 아저씨와
좀더 작은 cubemap에 12 sampling만 수행했다는 말이 있다
LOD
Learning의 방법에 LOD와 delta만 증가시켜 보았다
LOD를 높이면 어느정도 까지는 나아지지만 가까이서 보면 미세한 줄무늬가 보임
0.25 (12 * 24 loop), LOD 6
target 8x8x6, 0.25, LOD 7 (4x4 cube mip에서 가져온다)
거의 유사하다
Time spent on the CPU Irradiance cubemap: 1.038419 ms Time spent on the GPU Irradiance cubemap: 0.241664 ms
target 8x8x6, 0.4, LOD 7
오차가 눈에 보임
Importance sampling
seamless filtering을 켜야된다고 생각했는데 diffuse라 상관없다.
머 한면씩 처리하는 것도 그러니 compute shader 사용해서 이전 것처럼
https://github.com/cCharkes/AntonovSuit 의 AntonovSuitImportanceFrag 를 보자
우선, SamplingSphere, SamplingHemisphere, SampingHemisphereCosWeight
3가지가 제공된다
LOD를 각 sampling에 따라 결정하는데,
CosWeight가 irradiance에서는 효과가 별로 일 것 같았는데
샘플이 적으니 유효한 듯 하다.
'Game > Graphics' 카테고리의 다른 글
IBL (7) Baking Light probe (0) | 2018.02.13 |
---|---|
BakingLab (0) | 2018.02.13 |
IBL (5) specular optimize 2 (0) | 2018.02.12 |
Light Probe Interpolation (0) | 2018.02.12 |
Compute Shader memory sync (0) | 2018.02.12 |
- Total
- Today
- Yesterday