티스토리 뷰
간단하게 Crytek 방법 유사한 걸 테스트
http://john-chapman-graphics.blogspot.kr/2013/01/ssao-tutorial.html
4x4 random noise를 사용해서 noise pattern 이 보인다.
일부로 작은 random으로 큰 주파수 노이즈를 만들고, blur로 저주파수 대역만 남긴다고 하네
괜찬던게 뿌옇게 변한다
noise scale을 w,h / 1
Bilateral Filter
0.5, 0.5 box filtering
half size 3x3 으로는 bluring이 안되서 5x5로 늘렸음
bilateral filter를 다른 걸로 바꿔보기로 했다.
우선,
https://people.csail.mit.edu/sparis/bf_course/slides/08_applications_advanced.ppt
‘Joint Bilateral’ or ‘Cross Bilateral’ (2004) (Digital photography with flash and no-flash image pairs 04)
Spatial smoothing of pixels in image A, with
WEIGHTED by intensity similarities in image B
어케했나 했는데, 우선 EA 마지막 슬라이드에 수식 weight는 나와있다.
대충 구현하니 5x5 에 (3x3 은 블록이 보인다)
Depth 쪽 scale 변화도 안먹는 걸 디버깅해봤는데;
분포가 이래서 1칸 옆에 있는 pixel도 d 가 같은 걸로 나온다
d0 0.027038990 float
d1 0.027046620 float
d scale을 높여도 별 변화가 없다; 씹히는듯
유사한게 Nvidia의 옛날 HBAO 에 CS로 구현되어있다.
Nvidia Blur_COmmon.hlsl 부분이다
float CrossBilateralWeight(float r, float d, float d0)
{
// The exp2(-r*r*g_BlurFalloff) expression below is pre-computed by fxc.
// On GF100, this ||d-d0||<threshold test is significantly faster than an exp weight.
return exp2(-r*r*g_BlurFalloff) * (abs(d - d0) < g_BlurDepthThreshold);
}
여기서
m_SceneScale = (SceneScale != 0.0f) ? SceneScale : min(ZNear, ZFar);
BlurDepthThreshold = 2.0f * SQRT_LN2 * (m_SceneScale / m_BlurSharpness);
m_BlurSharpness (8.0 default)
7x7 커널에서 0.1 ms 빨라졌나;
d는 0.0001 / 100 을 사용하니 머리카락과 같은 부분에서 좀더 또렸해진다
bilateral upsampling
http://developer.amd.com/wordpress/media/2012/10/ShopfMixedResolutionRendering.pdf
대충 이때 resolution mix 가 나왔고 방법은 bilateral upsamping
...쓰...블
http://c0de517e.blogspot.kr/2016/02/downsampled-effects-with-depth-aware.html
'Game > Graphics' 카테고리의 다른 글
Cloth move (0) | 2017.12.09 |
---|---|
디버거에서 같은 값이 보일때, (0) | 2017.12.06 |
Upsampler and downsampler (0) | 2017.12.02 |
MSAAO (2) (0) | 2017.12.02 |
LSAO (0) | 2017.12.02 |
- Total
- Today
- Yesterday