next up previous notation contents
Next: 4.3.1 Optimization: Super-Pixel Rendering Up: 4 Graphs Previous: 4.2.8 Sequential Rendering

4.3 Optimization: Function Rendering

 

Rather than building up the rendering pixel by pixel, the rendering may be built up row by row, or column by column. Each row, or column, is visited once. Consider rendering y = g(x), where tex2html_wrap_inline32831 . An example rendering follows:

figure27236

  tex2html_wrap_inline38141 denotes a rendering produced using column, or row, testing. The function g is evaluated for each column. An example evaluation follows:

math27286

After tex2html_wrap_inline38151 is evaluated, pixels of R may be appropriately set. If tex2html_wrap_inline38151 spans a single pixel, that pixel may be set to tex2html_wrap_inline32719 ; pixels untouched by tex2html_wrap_inline38151 may be set to tex2html_wrap_inline32721 .

Another example rendering follows:

figure27314

Finer tests may be performed, as with pixel-based testing. Using sample testing, g is evaluated for a portion of each partially undetermined column. An example rendering follows:

figure27443

tex2html_wrap_inline38171 denotes a rendering produced using sub-column, or sub-row, sample testing. The portions chosen for the above rendering lay on the left side of each pixel column. Another pass, choosing portions on the right side of each pixel column, would set the remaining undetermined pixels to tex2html_wrap_inline32719 .

An example rendering, produced using sub-column continuity-based testing, follows:

figure27479

Continuity-based testing allows column based testing to set long columns of pixels to tex2html_wrap_inline32719 with a single test. With continuity-based testing, tex2html_wrap_inline38181 and tex2html_wrap_inline38183 are computed; if g is continuous over tex2html_wrap_inline38187 then g is known to smoothly pass from tex2html_wrap_inline38191 to tex2html_wrap_inline38193 if tex2html_wrap_inline38195 ; g is known to smoothly pass from tex2html_wrap_inline38199 to tex2html_wrap_inline38201 if tex2html_wrap_inline38203 . The following diagram illustrates a portion of a single column from the preceding rendering:

figure27530

Similar results may be obtained with linear interval arithmetic, without bothering with continuity-based testing. Continuity information is still quite important, however. The following diagram illustrates the information gained by a linear interval arithmetic evaluation of g, with and without continuity information:

figure27607

Without continuity information, pixels that completely enclose tex2html_wrap_inline38223 , for any tex2html_wrap_inline32761 , may be set to tex2html_wrap_inline32719 ; determining such pixels is straight-forward. Such determination mimics the rules behind determining tex2html_wrap_inline36287 ; see section gif. With continuity information, g must smoothly pass from tex2html_wrap_inline38233 to tex2html_wrap_inline38235 if tex2html_wrap_inline38237 ; g must smoothly pass from tex2html_wrap_inline38241 to tex2html_wrap_inline38243 if tex2html_wrap_inline38245 .

Of course, row and column testing may be used on specifications containing inequalities. Logical combinations of equations and relations are easily accommodated, by passing row or column descriptions along with evaluation results when evaluating the upper levels of S.


next up previous notation contents
Next: 4.3.1 Optimization: Super-Pixel Rendering Up: 4 Graphs Previous: 4.2.8 Sequential Rendering
Jeff TupperMarch 1996