[shader study]shadow map silhouette revectorization(2014.01.06)

Post on 11-Jul-2015

280 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Shadow Map Silhouette Revectorization (SMSR)

- Vladimir Bondarev

Shader Study

해강

제 영어실력상 잘못된 오역이 있을 수 있습니다 제 기술실력상 잘못된 이해가 있을 수 있습니다

뭔가 좀 이상하다 싶으면

원문을 보세요 http://bondarev.nl

1. SMSR 2. 1PASS 3. 2PASS 4. Timings 5. Issue 6. Conclusion

기본적으로 shadow map은

1. 호환성이 좋고, 2. 구현 난이도가 낮으며,

3. 여러 종류의 지형 처리에 용이

하다고 알려져 있다

Johnson, G. S., Mark, W. R., Burns, C. A., & Lee, J. (2005). The Irregular Z-Buffer and its Application to Shadow Mapping. ACM Transactions on Graphics, 24(4), 1462-1482. Retrieved from ftp://ftp.cs.utexas.edu/pub/techreports/tr04-09.pdf

Lloyd, B., Govindaraju, N., & Quammen, C. (2007). Logarithmic Shadow Maps. Retrieved November 27, 2013, from http://gamma.cs.unc.edu/LOGPSM/

그러나 일반적으로 앨리어싱 문제가 존재 완전히 앨리어싱을 제거하기 위한 기술은

(LogPSM, Irregular Z-Buffer Technique) 현 아키택처상 실시간에서는 불가능

Stamminger, M., & Drettakis, G. (2002). Perspective shadow maps. ACM Transactions on Graphics, 21(3), 557-562. Retrieved from http://www.cs.berkeley.edu/~ravir/6160- fall04/papers/p557-stamminger.pdf

Martin, T., & Tan, T. (2004). Anti-aliasing and Continuity with Trapezoidal Shadow Maps. Retrieved December 27, 2013, from http://www.comp.nus.edu.sg/~tants/tsm.html

1. 샘플 재분배 최적화 (PSM, TSM, LiSPSM, CSM)

2. 필터링 기술 (VSM, PCF, BFSM)

따라서 현재 실시간 기술은 위 두가지에 초점을 두고 있다

Wimmer, M., Scherzer, D., & Purgathofer, W. (2004). Light Space Perspective Shadow Maps, Institut fur Computergraphik und Algorithmen – Arbeitsgruppefur Computergraphik. Retrieved 27, 2013, from http://www.cg.tuwien.ac.at/research/vr/lispsm/

Dimitrov, R. (2007). Cascaded Shadow Maps. Retrieved 27, 2013, from http://developer.download.nvidia.com/SDK/10/openg l/screenshots/samples/cascaded_shadow_maps.html

Donnelly, W., & Lauritzen, A. (2006). Variance Shadow Maps. Retrieved December 27, 2013, from http://www.punkuser.net/vsm/

Reeves, W. T., Salesin, D. H., & Cook, R. L. (1987). Rendering antialiased shadows with depth maps. ACM SIGGRAPH Computer Graphics, 24(4), 283- 291. Retrieved from http://maverick.inria.fr/Members/Cyril.Soler/DEA/O mbres/Papers/Reeves.Sig87.pdf

Kim, J., & Kim, S. (2009). Bilateral Filtered Shadow Maps. ISVC ’09 Proceedings of the 5th International Symposium on Advances in Visual Computing: Part II, 49-58.

SMSR은 MLAA 구현을 기반으로 GPU에서 그림자를 다시 근사 필터링 하는 기술

대부분의 undersampling 영역에서 속도 향상의 이점은 있지만,

그림자의 퀄리티가 떨어지게 된다

SMSR은 언더샘플링 영역에서 그림자 영역의 근사치를 구해서 shadowmap의 퀄리티를 높이기 위해 고안

1. SMSR 2. 1PASS 3. 2PASS 4. Timings 5. Issue 6. Conclusion

첫번째 패스에서는 그림자의 불연속 부분을 찾아내고, 위치 정보를 압축해 출력 한다

불연속에는 두가지 유형이 있는데, 조각난 샘플의 위치는 다음과 같다

1. 불연속이 종료 됐을때(Exiting) UMBRA(직접광을 완전히 가리는 폐쇄 영역) 안쪽

다음 인접 샘플은 UMBRA의 바깥에

2. 불연속이 입력 됐을때(Entering) UMBRA 바깥

다음 인접 샘플은 UMBRA의 안쪽에

CASE 2

shadowmap 사각형 바깥을 모두 잘라내는 부분은

최적화의 여지가 남아있다

shadowmap 크기와 bias 오프셋은 상수값으로 처리할 수 있다

스크린 공간에서 그림자 맵 샘플을 가지고 오프셋 설정을 해준다

4방향으로 불연속을 찾아 단편화된 샘플로부터의 방향(투영좌표) 도출

R에는 수평 정보 G에는 수직 정보

2가지 출력 벡터로 테두리의 불연속된 부분의 위치를 압축

값에 따라 각각 4가지 상태를 가진다

현재는 입력 상태에서 불연속이 검출되는 경우

1. SMSR 2. 1PASS 3. 2PASS 4. Timings 5. Issue 6. Conclusion

두번째 패스에서는 그림자의 불연속 공간을 보간해 새롭게 그림자를 생성하도록

0과 1사이의 XY 좌표를 생성한다

1패스에서 넘겨받은 데이터를 기반으로 불연속된 공간 X를 찾는다

4. 만약 축의 양 방향이 불연속이라면 기입

1. 불연속의 길이를 가져온다 발견하지 못할 경우 음수를 리턴

2. 서브 샘플을 통해 정규화된 불연속 좌표를 만든다

3. 불연속 방향에 따라 새로운 가장자리 클립

4. 생성 좌표 정규화

1. 방향 가장자리를 검색 각 방향에 1.0f를 추가

2. 양의 방향으로 추가 하위 샘플 자료 계산

3. 한 방향 / 양 방향 불연속에 대해서 각각 처리 올바른 방향일 경우 하위 샘플 자료만 추가

정규화 공간에서 만들어진 새로운 실루엣 영역을 보간 한다

왼쪽은 1패스 결과 오른쪽은 정규화 공간에서 계산한 채워넣을 영역

Undersampled area에서 조명 또는 이미지 버퍼에

새로운 실루엣의 정보를 통합

근사값이 근거해 그림자를 생성

그림자 퀄리티 상승 특히 undersampled area에서 잘 수행

NO SMSR SMSR NO SMSR SMSR

1. SMSR 2. 1PASS 3. 2PASS 4. Timings 5. Issue 6. Conclusion

성능 테스트는 좀 더 필요한 것 같아서 패스

스크린 공간에서 반복 수행해 불연속의 길이를 대략적으로 구할 수 있다

검색은 속도 / 품질에 영향

Light-to-view matrix를 매번 계산하는데 이것은 낭비 행렬 계산을 CPU에 넘겨 최적화할 수 있을 듯

어디에 사용하더라도 적은 채우기 비용으로 최종 품질을 향상

1. SMSR 2. 1PASS 3. 2PASS 4. Timings 5. Issue 6. Conclusion

SMSR은 아직 연구중인 기술

낮은 해상도의 그림자 맵에서도 품질을 향상시키지만,

몇가지 결함을 가지고 있다

1. 불충분한 데이터를 일반화할 경우

예외처리를 할 수는 있지만 구현을 느리게 하고, 오히려 악화시킬 수도 있다

상단 SMSR 하단 NO SMSR

2. 필요한 데이터 부재

그림자 공간이 차폐될 경우 검색 기능이 버퍼의 끝에 도달할 수 있다 후처리 효과처럼 높은 해상도의 뷰포트로 해결

그러나 완벽하지는 않은듯

상단 SMSR 하단 NO SMSR

3. 실루엣 부분 짓이겨짐

일반적인 MLAA 방법은 L, Z, U 모양 패턴으로 불연속을 구분 모양 패턴으로 체크하는 것은 더 높은 정밀도의 결과를 얻는데 도움

현재 SMSR은 모양 패턴을 구별 할 수 없고 L형상으로 모두 처리

모양 패턴을 제대로 구별하지 못 하기 때문에 때때로 잘못된 근사치를 도출해 낼 경우가 있다

1. SMSR 2. 1PASS 3. 2PASS 4. Timings 5. Issue 6. Conclusion

SMSR은 undersampled area에서 그림자 맵을 부드럽게 하는 필터링 기술

이 기술은 특히 큰 씬을 빨리 채워야 할 때 유용하다 맵 샘플링 밀도는 감소하면서 그림자 실루엣을 부드럽게 유지하기 때문

아직 초기 단계

모양 패턴 추가, 부드러운 그림자, temporal aliasing, Cascade Shadow Maps

더 연구 예정

sigraph03 shadow silhouette map 유사한 발상

http://www.ece.ucsb.edu/~psen/Papers/SIGGRAPH03_ShadowSilmaps.pdf

SMSR과 차이는

작은 커널, 바이어스 문제 감소

원 논문 자료 Vladimir Bondarev http://bondarev.nl

top related