579 |
|
|
580 |
\subsection{Drawing the shape} |
\subsection{Drawing the shape} |
581 |
|
|
582 |
|
\label{secshape} |
583 |
|
|
584 |
XXX figs for all these shapes! |
XXX figs for all these shapes! |
585 |
|
|
586 |
The type of offsetting in Eq.(\ref{eqoffset}) is implemented |
The type of offsetting in Eq.(\ref{eqoffset}) is implemented |
725 |
able to approximate the shape well in a single pass. |
able to approximate the shape well in a single pass. |
726 |
|
|
727 |
The algorithm works by precalculating the displacement or offset |
The algorithm works by precalculating the displacement or offset |
728 |
of the outer edge of the black line, assuming that the shape algorithm |
of the outer edge of the black line, assuming that the inner |
729 |
draws the inner edge. |
edge is defined as the edge of the area drawn by the |
730 |
The precalculated edge shapes are different for different orientations, |
algorithms of Section~\ref{secshape}. |
731 |
but this can be approximated by storing the offsets at a discrete set |
The precalculated edge shapes are different |
732 |
|
for different angles, |
733 |
|
but can be approximated by storing the offsets at a discrete set |
734 |
of orientations in different components of a texture and interpolating |
of orientations in different components of a texture and interpolating |
735 |
by calculating dot products. |
by calculating dot products. |
736 |
This approximation is not completely free of artifacts (FIG), |
This approximation is not completely free of artifacts (FIG), |
738 |
|
|
739 |
Non-photorealistic line width scaling can be obtained by computing |
Non-photorealistic line width scaling can be obtained by computing |
740 |
each mip-map\cite{williams83pyramidal} |
each mip-map\cite{williams83pyramidal} |
741 |
level of the outer surface textures separately |
level of the outer edge textures separately |
742 |
with the desired line width for that scale. |
with the desired line width for that scale. |
743 |
This method of computing mip-maps is similar to the art maps used in |
This method of computing mip-maps is similar to the art maps used in |
744 |
\cite{klein00nonphotorealistic}. |
\cite{klein00nonphotorealistic}. |
745 |
Because the textures store displacement values, |
Because the textures store offset/displacement values, |
746 |
the mip-map levels interpolate seamlessly. |
the mip-map levels interpolate seamlessly. |
747 |
However, zooming above the highest level of detail in the mip-map |
However, zooming above the highest level of detail in the mip-map |
748 |
will fall back to the linear scaling. |
will fall back to the linear scaling. |
766 |
|
|
767 |
The advantage of image-space algorithms is that their performance |
The advantage of image-space algorithms is that their performance |
768 |
does not depend on the complexity of a scene; however, it appears |
does not depend on the complexity of a scene; however, it appears |
769 |
that NV30/R300 generation of graphics chips is flexible enough |
that only the NV30/R300 generation of graphics chips is flexible enough |
770 |
to support image-based operations well, due to the number of texture |
to support image-based operations well, due to the number of texture |
771 |
accesses and floating point operations needed. Also, it is more |
accesses and floating point operations needed. Also, it is more |
772 |
difficult (although possible) |
difficult (although possible) |