25.12.2013 Views

Real-Time GPU Silhouette Refinement using adaptively blended ...

Real-Time GPU Silhouette Refinement using adaptively blended ...

Real-Time GPU Silhouette Refinement using adaptively blended ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

viewpoint<br />

Current<br />

Geometry<br />

<strong>Silhouette</strong>ness<br />

Triangle<br />

refinement<br />

Start new<br />

frame<br />

Calculate<br />

geometry<br />

Calculate<br />

silhouetteness<br />

Determine<br />

triangle<br />

refinement<br />

Render<br />

unrefined<br />

triangles<br />

Render<br />

patches<br />

Issue<br />

rendering<br />

of refined<br />

triangles<br />

Triangle data<br />

Extract<br />

triangle data<br />

Edge data<br />

Extract<br />

edge data<br />

Triangle<br />

histopyramid<br />

Draft<br />

Draft<br />

Build<br />

histopyramids<br />

Edge<br />

histopyramid<br />

Figure 7: Flowchart of the silhouette refinement algorithm. The white boxes are executed on the CPU, the blue boxes<br />

on the <strong>GPU</strong>, the green boxes are textures, and the red boxes are pixel buffer objects. The dashed lines and boxes are<br />

only necessary for dynamic geometry.<br />

S 2<br />

[<br />

S1 [F] ]<br />

S 1 [F]<br />

0.5 ⊕ 0.5<br />

S 2 [F]<br />

S 1.5 [F]<br />

Figure 5: To tessellate a patch at the non-integer refinement<br />

level s = 1.5, we create the tessellations S 1 [F] and<br />

S 2 [F], and refine S 1 [F] to S 2<br />

[<br />

S1 [F] ] such that the topological<br />

refinement levels match. Then, the two surfaces<br />

are weighted and combined to form S 1.5 [F].<br />

S 3<br />

[<br />

S0 [F] ] S 3<br />

[<br />

S1.5 [F] ] S 3 [F]<br />

s = 1.5<br />

F<br />

s = 0<br />

s = 3<br />

Figure 6: Composing multiple refinement levels for adaptive<br />

tessellation. Each edge have a geometric refinement<br />

level, and the topological refinement level is dictated by<br />

the edge with the largest refinement level.<br />

6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!