Chapter 15. Blueprint Rendering and “Sketchy Drawings”<br />GPU Gems 2<br />http://cafe.naver.com/shader<br />임용균 (guardin...
Introduction<br />image-space non-photorealistic rendering<br />Blueprint rendering<br />Sketchy drawing<br />
Basic Principles<br />To preserve images of intermediate renderings of the scene’s geometry<br />To implement an edge enha...
Intermediate Rendering Results<br />3D Geometry를 texture들에 렌더링하여2D 데이터로 나타내는 것을 Intermediate Rendering Results 라고 한다. (G-B...
Edge Enhancement<br />image-space edge enhancement technique<br />siluette, border, crease edge<br />normal buffer와 depth ...
Edge Enhancement<br />
Depth Sprite Rendering<br />depth testing을 위한 추가적인 z-value를 제공하는 2D이미지를 depth sprite라 한다.<br />z-value를 포함하고 있는 고해상도 텍스쳐에렌...
Blueprint Rendering<br />3D geometry의 visible/non-visible edge들을 추출한다.<br />visible edge는 카메라에 직접적으로 보이는 edge이다.<br />non-...
Sketchy Rendering<br />visually important edges and surface colors<br />3D geometry non-uniformly using uncertainty<br />
Sketchy Rendering<br />intermediate rendering results를 이용하여 edge와 surface color를 표현한다.<br />sketch에 image-space의무작위 값을 적용(...
Edges and Color Patches<br />edge enhancement technique을 이용하여 edge map을 생성한다.<br /> 3D geometry의 surface color를 강조되는 색으로 텍...
Applying Uncertainty<br />프레임과 프레임 사이의 일치성(coherence)을 위하여 uncertainty value를 나타내는 추가적인 텍스쳐가 필요하다.  (perlin noise)<br />no...
Applying Uncertainty<br />sketchiness effect의 효과를 향상시키기 위해서 edge map과 shade map의 perturbation 정도를 다르게 적용한다.<br />offs = tu...
Adjusting Depth<br />특히 uncertainty가 적용되었을때 original geometry의 z-values는 안쪽 지역에 존재 하지 않을 수 있다. 외부 지역의 original geometry에z-...
Variations of Sketchy Rendering<br />Roughened Profiles and Color Transitions (a) (b)<br />Repeated Edges (c)<br />
Controlling Uncertainty<br />image-space에서 “swim” 문제가 나타난다.(shower-door effect)<br />이 문제를 극복하기 위해서는? uncertainty value를 조...
Preserving Geometric Properties<br />uncertainty value를 계산하기 위해 surface position, normals, curvature(뒤틀림) 정보를 보존해 놓는다.<br ...
Enlarging the Geometry<br />mesh의 각각의 vertex들을 object space에서 normal 방향으로 약간 이동(shifting)하면 된다.<br />단 surface들이 모두 연결되어 있...
Reducing the Shower-door Effect<br />texture에 확장된 3D geometry의 object-space position을 렌더링 한다. -&gt; g(s, t)<br />g(s, t)를 ...
Sketchy Rendering<br />
Conclusion<br />
Upcoming SlideShare
Loading in …5
×

Gpu Gems 2 Chapter 15 Sketchy Rendering

1,479 views

Published on

  • Be the first to comment

  • Be the first to like this

Gpu Gems 2 Chapter 15 Sketchy Rendering

  1. 1. Chapter 15. Blueprint Rendering and “Sketchy Drawings”<br />GPU Gems 2<br />http://cafe.naver.com/shader<br />임용균 (guardin@naver.com)<br />
  2. 2. Introduction<br />image-space non-photorealistic rendering<br />Blueprint rendering<br />Sketchy drawing<br />
  3. 3. Basic Principles<br />To preserve images of intermediate renderings of the scene’s geometry<br />To implement an edge enhancement technique<br />To apply depth sprite rendering<br />
  4. 4. Intermediate Rendering Results<br />3D Geometry를 texture들에 렌더링하여2D 데이터로 나타내는 것을 Intermediate Rendering Results 라고 한다. (G-Buffer)<br />scene buffer, normal buffer, z-buffer<br />Intermediate Rendering Results를 한번 생성하고 뒤이은 렌더링 패스들에서 그것들을 이용한다.<br />
  5. 5. Edge Enhancement<br />image-space edge enhancement technique<br />siluette, border, crease edge<br />normal buffer와 depth buffer의 불연속성으로 edge들을 검출한다. <br />주위 텍셀을샘플링하여 불연속성을 검사할 수 있다.<br />검출된 edge들을 텍스쳐에렌더링 하여 edge map을 생성한다.<br />
  6. 6. Edge Enhancement<br />
  7. 7. Depth Sprite Rendering<br />depth testing을 위한 추가적인 z-value를 제공하는 2D이미지를 depth sprite라 한다.<br />z-value를 포함하고 있는 고해상도 텍스쳐에렌더링 한다.<br />fragment z-value를 변경하는 특수화된 fragment shader를 적용한다.<br />일반적인 depth-test 과정 후에 렌더링 한다.<br />depth sprite rendering은 image-based rendering의 가시성을 올바르게 해결한다.<br />
  8. 8. Blueprint Rendering<br />3D geometry의 visible/non-visible edge들을 추출한다.<br />visible edge는 카메라에 직접적으로 보이는 edge이다.<br />non-visible edge는 3D geometry에 가려지는 edge이다.<br />edge들을 추출하기 위해서 depth-peeling technique과 depth enhancement technique을 합쳐서 사용했다.<br />visible/non-visible edge들을 frame buffer에서 합친다.<br />
  9. 9. Sketchy Rendering<br />visually important edges and surface colors<br />3D geometry non-uniformly using uncertainty<br />
  10. 10. Sketchy Rendering<br />intermediate rendering results를 이용하여 edge와 surface color를 표현한다.<br />sketch에 image-space의무작위 값을 적용(uncertainty value)하여 이 텍스쳐들이 일정하지 않도록(non-uniformly) 한다.<br />
  11. 11. Edges and Color Patches<br />edge enhancement technique을 이용하여 edge map을 생성한다.<br /> 3D geometry의 surface color를 강조되는 색으로 텍스쳐에 평면적으로 렌더링한다. (cartoon-like style)<br />이 텍스쳐를shade map이라고 부른다.<br />
  12. 12. Applying Uncertainty<br />프레임과 프레임 사이의 일치성(coherence)을 위하여 uncertainty value를 나타내는 추가적인 텍스쳐가 필요하다. (perlin noise)<br />noise texture는 offset texture로 사용되며 edge, shade map을 교란(perturbation)시킨다.<br />uncertainty value값의 정도를 결정하기 위해 2x2 행렬을 사용한다.<br />
  13. 13. Applying Uncertainty<br />sketchiness effect의 효과를 향상시키기 위해서 edge map과 shade map의 perturbation 정도를 다르게 적용한다.<br />offs = turbulence(s, t); <br />offt = turbulence(1 - s, 1 - t);<br />
  14. 14. Adjusting Depth<br />특히 uncertainty가 적용되었을때 original geometry의 z-values는 안쪽 지역에 존재 하지 않을 수 있다. 외부 지역의 original geometry에z-values가 존재하지 않을 수 있다.<br />장면의 다른 오브젝트들과 올바르게 상호작용하지 못 한다.<br />edge map perturbation과 shade map perturbation을 적용한 값중 작은 depth값 depth map에 적용한다.<br />
  15. 15. Variations of Sketchy Rendering<br />Roughened Profiles and Color Transitions (a) (b)<br />Repeated Edges (c)<br />
  16. 16. Controlling Uncertainty<br />image-space에서 “swim” 문제가 나타난다.(shower-door effect)<br />이 문제를 극복하기 위해서는? uncertainty value를 조절할 필요가 있다.<br />uncertainty value를 측정하기 위해 geometric properties를 유지한다.<br />외부 지역의 uncertainty value를 적어도 3D geometry에 가깝게 유지한다.<br />
  17. 17. Preserving Geometric Properties<br />uncertainty value를 계산하기 위해 surface position, normals, curvature(뒤틀림) 정보를 보존해 놓는다.<br />G-Buffer에 추가로 geometric properties를 렌더링 한다.<br />화면에 정렬된 quad texture에 기록되며 텍스쳐 좌표 (s, t)로 geometric properties에 접근 가능하다.<br />uncertainty value를 계산할 때 parameters로 이용한다.<br />f: (s, t) &lt;- (s&apos;, t&apos;)<br />f (s, t) = p(s, t, g(s, t)),<br />
  18. 18. Enlarging the Geometry<br />mesh의 각각의 vertex들을 object space에서 normal 방향으로 약간 이동(shifting)하면 된다.<br />단 surface들이 모두 연결되어 있어야 하고 공유되는 vertex들은 interpolated normal값을 가져야 한다.<br />3D geometry를 확장함으로써 안쪽 지역뿐 아니라 바깥쪽 지역도(원본 이미지의 근처) geometric properties를 렌더링 할 수 있다.<br />안쪽 지역은 3d geometry의 경계를 넘어서 스케치 될 수 있고 바깥쪽 지역은 안쪽 지역을 뚫을수 있다.<br />
  19. 19. Reducing the Shower-door Effect<br />texture에 확장된 3D geometry의 object-space position을 렌더링 한다. -&gt; g(s, t)<br />g(s, t)를 기반으로 p()를 이용하여 왜곡된 텍스쳐 좌표인 f(s, t)를 계산할 수 있다. f(s, t) = p(s, t, g(s, t)) (perturbation)<br />Fedge(s, t)와 Fshade(s, t)를 다른 행렬들을 이용하여 계산한다.<br />
  20. 20. Sketchy Rendering<br />
  21. 21. Conclusion<br />

×