실시간 피사계 심도 렌더링 개선 기법Advanced realtimepostrendering techniques for depth of field<br />김성익<br />noerror@softnette.com<br />...
피사계 심도<br />피사계 심도 (Depth of Field)사진 렌즈로 어떤 거리의 피사체에 초점을 맞출 때 초점이 맞는 범위<br />피사계 심도 이외의 영역이 흐려지는 현상<br />http://en.wikipe...
피사계 심도<br />아웃-오프-포커스 (근경, 원경)<br />원경에는 인-포커스가 번지지 않음<br />근경은 인-포커스, 원경으로 번짐<br />인-포커스<br />선명한 이미지<br />Startcraft2 Ef...
피사계 심도<br />COC(Circle of Confusion)<br />흐려지는 범위<br />http://en.wikipedia.org/wiki/Circle_of_confusion<br />
포스트 랜더링 방식<br />포스트 프로세싱<br />랜더링된 이미지 기반으로 픽셀 단위 연산<br />추가적인 지오매트리패스없이렌더링된 결과만을 가지고 처리<br />http://software.intel.com/en...
실시간 피사계 심도<br />포스트 프로세싱<br />렌더링된 이미지를 블러링하고 합성하여 피사계 심도 근사<br />입력<br />렌더링 결과<br />깊이맵<br />
실시간 피사계 심도<br />깊이 기반으로 COC 구하기<br />최대 아웃-오프-포커스 이미지와 인-포커스 이미지의 블랜딩으로 근사<br />흐려지는 범위 => 흐려지는 정도<br />Tin-Tin Yu. Depth ...
실시간 피사계 심도<br />원경과 근경을 분리하여 처리<br />절차<br />1. 원경의 아웃-오프-포커스 블러 이미지 생성<br />2. 1번과 인-포커스 이미지 블랜딩<br />3. 근경의 아웃-오프-포커스 블러...
아웃-오프-포커스 블러<br />인-포커스 이미지 : 원본<br />아웃-오프-포커스 이미지 : 원본을 가우시안블러<br />깊이 맵을 이용 블랜드 가중치를 구함<br />가중치로아웃-오프-포커스 이미지와 합성<br /...
Bilateral Filtering<br />A Gentle Introduction to Bilateral Filtering and its Applications (Siggraph2008)<br />
Bilateral Filtering<br />A Gentle Introduction to Bilateral Filtering and its Applications (Siggraph2008)<br />
아웃-오브-포커스 원경 블러링<br />원경 블러링시 가중치(range)를 원경 블랜드 값으로 바이래터럴필터링<br />절차<br />1. 마스크 텍스처 준비원본의 rgb에 가중치를 곱하고, 가중치를 a 채널저장outp...
합성<br />블러링 된 원경과원본 합성<br />
장점<br />인-포커스 번짐 현상 제거<br />빠른 성능<br />두 번의 1D 가우시안필터링을 통한 빠른 블러링 가능<br />가로로 1d 가우시안블러, 결과를 세로로 1d 가우시간블러<br />12 tap 2패스...
아웃-오브-포커스 근경 블러링<br />원경과 유사한 절차로 합성<br />절차<br />1. 마스크 텍스처 준비output.rgb = input.rgb * near_defocus_weight;output.a = nea...
근경 합성<br />한계점<br />불투명한 특성으로 인한 근경의 아웃-오프-포커스 지점의시각적 불완전성<br />
실시간 피사계심도<br />기존 포스트 프로세싱 방식의 한계<br />Unreal 3 Tech Demo<br />
근경 반투명 구현 필요<br />실제 카메라의 피사계 심도<br />http://graphics.stanford.edu/projects/lightfield/<br />
근경 반투명 구현<br />가려지는 영역의 정보를 이미지에 삽입하여 반투명 구현<br />http://www.youtube.com/watch?v=OiUixBfJPfQ<br />
근경 이미지 제거<br />근경 픽셀은 인접 픽셀 셈플링<br />인접 비-근경의 평균값<br />비-근경을 가중치로 바이래터럴필터링<br />혹은, 비-근경이 있을 것으로 예상되는 위치의 픽셀값texuv = In.te...
합성<br />아웃-오프-포커스 근경<br />절차는 패턴 삽입 전과 동일<br />패턴 삽입으로 완전한 근경 영역도 ¼ 비 근경 이미지가 삽입되어 마스크가 흐려진 상태 => 4/3 을 곱해서 정규화<br />합성<br...
결과<br />
요약<br />실시간 피사계 심도를 개선<br />바이래터럴필터링을 사용<br />인-포커스 번짐 현상 제거<br />빠른 2D 가우시간필터링(1D 2패스)<br />축소 버퍼 사용 가능<br />근경 제외 패턴 처리<...
참고문헌<br />http://en.wikipedia.org/wiki/Depth_of_field<br />M.Potmesil. A lens and aperture camera model for synthetic imag...
KCGS11_실시간 피사계 심도 렌더링 개선 기법
Upcoming SlideShare
Loading in...5
×

KCGS11_실시간 피사계 심도 렌더링 개선 기법

1,317

Published on

Published in: Technology, Art & Photos
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,317
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

KCGS11_실시간 피사계 심도 렌더링 개선 기법

  1. 1. 실시간 피사계 심도 렌더링 개선 기법Advanced realtimepostrendering techniques for depth of field<br />김성익<br />noerror@softnette.com<br />소프트네트http://softnette.com<br />2011/7/6<br />
  2. 2. 피사계 심도<br />피사계 심도 (Depth of Field)사진 렌즈로 어떤 거리의 피사체에 초점을 맞출 때 초점이 맞는 범위<br />피사계 심도 이외의 영역이 흐려지는 현상<br />http://en.wikipedia.org/wiki/Depth_of_field<br />
  3. 3. 피사계 심도<br />아웃-오프-포커스 (근경, 원경)<br />원경에는 인-포커스가 번지지 않음<br />근경은 인-포커스, 원경으로 번짐<br />인-포커스<br />선명한 이미지<br />Startcraft2 Effects & techniques(SIGGRAPH 2008)<br />http://graphics.stanford.edu/projects/lightfield/<br />
  4. 4. 피사계 심도<br />COC(Circle of Confusion)<br />흐려지는 범위<br />http://en.wikipedia.org/wiki/Circle_of_confusion<br />
  5. 5. 포스트 랜더링 방식<br />포스트 프로세싱<br />랜더링된 이미지 기반으로 픽셀 단위 연산<br />추가적인 지오매트리패스없이렌더링된 결과만을 가지고 처리<br />http://software.intel.com/en-us/articles/iir-gaussian-blur-filter-implementation-using-intel-advanced-vector-extensions/<br />
  6. 6. 실시간 피사계 심도<br />포스트 프로세싱<br />렌더링된 이미지를 블러링하고 합성하여 피사계 심도 근사<br />입력<br />렌더링 결과<br />깊이맵<br />
  7. 7. 실시간 피사계 심도<br />깊이 기반으로 COC 구하기<br />최대 아웃-오프-포커스 이미지와 인-포커스 이미지의 블랜딩으로 근사<br />흐려지는 범위 => 흐려지는 정도<br />Tin-Tin Yu. Depth of field implementation with open gl<br />Startcraft2 Effects & techniques(SIGGRAPH 2008)<br />
  8. 8. 실시간 피사계 심도<br />원경과 근경을 분리하여 처리<br />절차<br />1. 원경의 아웃-오프-포커스 블러 이미지 생성<br />2. 1번과 인-포커스 이미지 블랜딩<br />3. 근경의 아웃-오프-포커스 블러 이미지<br />4. 2번과 3번 이미지를 블랜딩<br />
  9. 9. 아웃-오프-포커스 블러<br />인-포커스 이미지 : 원본<br />아웃-오프-포커스 이미지 : 원본을 가우시안블러<br />깊이 맵을 이용 블랜드 가중치를 구함<br />가중치로아웃-오프-포커스 이미지와 합성<br />인-포커스 번짐 현상 발생<br />
  10. 10. Bilateral Filtering<br />A Gentle Introduction to Bilateral Filtering and its Applications (Siggraph2008)<br />
  11. 11. Bilateral Filtering<br />A Gentle Introduction to Bilateral Filtering and its Applications (Siggraph2008)<br />
  12. 12. 아웃-오브-포커스 원경 블러링<br />원경 블러링시 가중치(range)를 원경 블랜드 값으로 바이래터럴필터링<br />절차<br />1. 마스크 텍스처 준비원본의 rgb에 가중치를 곱하고, 가중치를 a 채널저장output.rgb = input.rgb * far_defocus_weight;output.a = far_defocus_weight;<br />2. 가우시안블러<br />rgba블러링<br />다운 스케일한 후에 블러링해도 됨<br />3. 정규화 (a로 나눠줌)<br />
  13. 13. 합성<br />블러링 된 원경과원본 합성<br />
  14. 14. 장점<br />인-포커스 번짐 현상 제거<br />빠른 성능<br />두 번의 1D 가우시안필터링을 통한 빠른 블러링 가능<br />가로로 1d 가우시안블러, 결과를 세로로 1d 가우시간블러<br />12 tap 2패스 = 144 tap 1패스<br />축소하여 연산가능<br />빠른 속도로 큰 커널 사이즈 블러링 가능<br />축소해도 인-포커스 번짐 현상 없음<br />
  15. 15. 아웃-오브-포커스 근경 블러링<br />원경과 유사한 절차로 합성<br />절차<br />1. 마스크 텍스처 준비output.rgb = input.rgb * near_defocus_weight;output.a = near_defocus_weight;<br />2. 가우시안블러링<br />가중치가 곱해진 rgb와 블러링된 a<br />블러링한 원경과 합성한 이미지와 합성<br />근경 픽셀에 가중치가 곱해져 있으므로output = lerp(background, input.rgb, input.a);output = background * (1 - input.a) + input.rgb<br />
  16. 16. 근경 합성<br />한계점<br />불투명한 특성으로 인한 근경의 아웃-오프-포커스 지점의시각적 불완전성<br />
  17. 17. 실시간 피사계심도<br />기존 포스트 프로세싱 방식의 한계<br />Unreal 3 Tech Demo<br />
  18. 18. 근경 반투명 구현 필요<br />실제 카메라의 피사계 심도<br />http://graphics.stanford.edu/projects/lightfield/<br />
  19. 19. 근경 반투명 구현<br />가려지는 영역의 정보를 이미지에 삽입하여 반투명 구현<br />http://www.youtube.com/watch?v=OiUixBfJPfQ<br />
  20. 20. 근경 이미지 제거<br />패턴 처리<br />프레임 버퍼 렌더링시 근경 제외 (패턴)(ex. 4픽셀에 1픽셀 씩)float4 p(PS_IN In) : COLOR{ if (In.ViewDir.z < g_FocusDistance) { float2 pattern = fmod(floor(In.VPos.xy), 2); if (pattern.x == 0 && pattern.y == 0) discard; } .... <br />근경이 제외되면서 해당 위치에는 원래 깊이 버퍼에 의해가려질 픽셀이 찍힘<br />
  21. 21. 근경 이미지 제거<br />근경 픽셀은 인접 픽셀 셈플링<br />인접 비-근경의 평균값<br />비-근경을 가중치로 바이래터럴필터링<br />혹은, 비-근경이 있을 것으로 예상되는 위치의 픽셀값texuv = In.texuv–fmod(In.texuv, 2/g_ScreenSize.xy);<br />
  22. 22. 합성<br />아웃-오프-포커스 근경<br />절차는 패턴 삽입 전과 동일<br />패턴 삽입으로 완전한 근경 영역도 ¼ 비 근경 이미지가 삽입되어 마스크가 흐려진 상태 => 4/3 을 곱해서 정규화<br />합성<br />근경이 제거된 인-포커스, 근경 아웃-오프-포커스 합성 이미지<br />정규화된 아웃-오프-포커스 이미지<br />
  23. 23. 결과<br />
  24. 24. 요약<br />실시간 피사계 심도를 개선<br />바이래터럴필터링을 사용<br />인-포커스 번짐 현상 제거<br />빠른 2D 가우시간필터링(1D 2패스)<br />축소 버퍼 사용 가능<br />근경 제외 패턴 처리<br />추가적인 지오 매트리 패스 없이 반투명 처리<br />
  25. 25. 참고문헌<br />http://en.wikipedia.org/wiki/Depth_of_field<br />M.Potmesil. A lens and aperture camera model for synthetic image generation ACM SIGGRAPH Computer Graphics, 1981<br />GuennadiRiguer, Natalya Tatarchuk. Real-time depth of field simulation. In ShaderX2<br />M. Kraus, M. Strengert. Depth-of-Field Rendering by Pyramidal Image Processing. In Porceedings EG 2007<br />Tin-Tin Yu. Depth of field implementation with open gl, Journal of Computing Sciences in Colleges, 2004<br />T.Igarashi, et al. Real-Time Depth-of-Field Rendering Using Point Splatting on Per-Pixel Layers, Pacific Graphics 2008<br />C. Tomasi, et al. Bilateral Filtering for Gray and Color Images, 1998<br />Dominic Filion, Starcraft 2 Effects & techniques, Siggraph 2008<br />

×