• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
KCGS11_실시간 피사계 심도 렌더링 개선 기법
 

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

on

  • 1,336 views

 

Statistics

Views

Total Views
1,336
Views on SlideShare
1,331
Embed Views
5

Actions

Likes
0
Downloads
9
Comments
0

2 Embeds 5

http://a0.twimg.com 4
http://twitter.com 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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