337 |
fashion\cite{widrow60adaptive,rosenblatt62neurodynamics}. |
fashion\cite{widrow60adaptive,rosenblatt62neurodynamics}. |
338 |
|
|
339 |
From this picture, we can formulate the following points: |
From this picture, we can formulate the following points: |
340 |
To be distinguishable, |
To be distinguishable, \label{secfeaturevec} |
341 |
\begin{itemize} |
\begin{itemize} |
342 |
\item A feature vector for a given texture should be always the |
\item A feature vector for a given texture should be always the |
343 |
same, and not a smudged distribution; |
same, and not a smudged distribution; |
449 |
|
|
450 |
In this section, we discuss our hardware-accelerated implementation |
In this section, we discuss our hardware-accelerated implementation |
451 |
of unique backgrounds . |
of unique backgrounds . |
452 |
Our main platforms are NV10, i.e. OpenGL 1.3 + GL\_NV\_register\_combiners, |
Our main platforms are NV10, i.e. OpenGL 1.3 + |
453 |
and NV25, i.e. NV10 + GL\_NV\_texture\_shader2. |
\url{GL\_\hyp NV\_\hyp register\_\hyp combiners}, |
454 |
|
and NV25, i.e. NV10 + \url{GL\_\hyp NV\_\hyp texture\_\hyp shader2}. |
455 |
|
|
456 |
One important goal for the implementation is that it should be easily |
One important goal for the implementation is that it should be easily |
457 |
applicable in a variety of situations. |
applicable in a variety of situations. |
458 |
For example, mapping between paper and screen can be complicated, |
For example, mapping between paper and screen can be complicated, |
459 |
e.g.~fisheye. |
e.g.~fisheye. |
460 |
Because of this, we have |
Because of this, we have |
461 |
adapted the OpenGL model: the background ``texture coordinate'' is set |
adapted the OpenGL model: |
462 |
and then a vertex is rendered using glvertex. If a vertex program |
the background ``texture coordinate'' is set |
463 |
extension is available, it is used to allow the use of vertex and texture |
and then a vertex is rendered using glvertex. |
464 |
|
If a vertex program |
465 |
|
extension is available, |
466 |
|
it is used to allow the use of vertex and texture |
467 |
coordinate arrays. |
coordinate arrays. |
468 |
|
To achieve this, all processing to obtain shapes on the paper |
469 |
|
must be done after the texture accesses, i.e. we cannot use |
470 |
|
procedural geometry. |
471 |
% XXX |
% XXX |
472 |
|
|
473 |
This enables the use of distortion inside the nodes. |
|
474 |
|
%Performance: zoomability, memory, speed |
475 |
|
|
476 |
\subsection{Resource usage} |
\subsection{Resource usage} |
477 |
|
|
478 |
In hardware rendering, the use of resources is critical |
In hardware rendering, the use of resources is critical. |
479 |
The two relevant types of resources here are texture memory |
The two relevant types of resources here are texture memory |
480 |
and rendering time. |
and rendering time. |
481 |
|
|
482 |
Performance: zoomability, memory, speed |
We have two rendering modes which make different |
483 |
|
tradeoffs between these goals: direct, where |
484 |
|
the same small basis textures are used, which takes 2-3 passes |
485 |
|
with all texture units enabled, and |
486 |
|
pre-rendered, where the repeating unit of the texture |
487 |
|
is pre-rendered into a larger texture of its own, where rendering |
488 |
|
takes 1 pass with one texture unit. |
489 |
|
To achieve a satisfactory image quality in zooming |
490 |
|
with the latter approach, |
491 |
|
a relatively large texture has to be used. |
492 |
|
|
493 |
|
|
494 |
\subsection{Colors} |
\subsection{Colors} |
495 |
|
|
497 |
Therefore, it is essential that the overall colors of the |
Therefore, it is essential that the overall colors of the |
498 |
backgrounds are maximally diverse with respect to color perception. |
backgrounds are maximally diverse with respect to color perception. |
499 |
|
|
500 |
|
However, we come again to the entropy arguments |
501 |
|
in Section~\ref{secfeaturevec}: |
502 |
|
too many different colors in one background are perceived just |
503 |
|
as a mix of many colors, making all such backgrounds look the same. |
504 |
|
The backgrounds of random texels discussed earlier are an |
505 |
|
extreme example of this. |
506 |
|
|
507 |
%In addition to choosing perceptually diverse colors, |
%In addition to choosing perceptually diverse colors, |
508 |
%there is the the question of how many colors to use. |
%there is the the question of how many colors to use. |
509 |
% |
% |
510 |
Using multiple different colors in a background allows |
% Using multiple different colors in a background allows |
511 |
a multitude of different combinations |
% a multitude of different combinations |
|
but too many different colors in one background are perceived just |
|
|
as a mix of many colors, making all such backgrounds look the same. |
|
|
As an extreme case, consider the example of random texels discussed earlier. |
|
512 |
|
|
513 |
To maintain color balance, |
To maintain color balance, |
514 |
we use a small palette of carefully chosen colors for each background, |
we use a small palette |
515 |
independent of the basis textures producing the shapes of the background. |
of carefully chosen colors for each background, |
516 |
Register combiners are used to combine the shape with the colors |
|
517 |
as explained in the following sections. |
% independent of the basis textures producing |
518 |
|
% the shapes of the background. |
519 |
|
% Register combiners are used to combine the shape with the colors |
520 |
|
% as explained in the following sections. |
521 |
|
|
522 |
%The most important constraint for the colors is readability: |
%The most important constraint for the colors is readability: |
523 |
%% XXX This is our CHOICE for a goal, not an absolute one. |
%% XXX This is our CHOICE for a goal, not an absolute one. |