Articulo de referencia

Borde de la silueta

En gráficos por computadora, una arista de silueta de un cuerpo 3D proyectado sobre un plano 2D (plano de visualización) es el conjunto de puntos cuya normal de superficie exter...

En gráficos por computadora, una arista de silueta de un cuerpo 3D proyectado sobre un plano 2D (plano de visualización) es el conjunto de puntos cuya normal de superficie exterior es perpendicular al vector de vista . [ 1 ] Debido a las discontinuidades en la normal de superficie , una arista de silueta es también una arista que separa una cara frontal de una cara posterior. Sin pérdida de generalidad , esta arista se suele elegir como la más cercana en una cara, de modo que en vista paralela esta arista corresponda a la misma en una vista en perspectiva. Por lo tanto, si hay una arista entre una cara frontal y una cara lateral, y otra arista entre una cara lateral y una cara posterior, se elige la más cercana. El ejemplo sencillo es mirar un cubo en la dirección donde la normal de la cara es colineal con el vector de vista.

El primer tipo de arista de silueta a veces resulta problemático porque no necesariamente se corresponde con una arista física en el modelo CAD . Esto puede ser un problema porque un programador podría corromper el modelo original al introducir la nueva arista de silueta. Además, dado que la arista depende en gran medida de la orientación del modelo y del vector de vista, esto puede generar inestabilidades numéricas en el algoritmo (por ejemplo, al considerar técnicas como la dilución de precisión ).

Cálculo

Para determinar el borde de la silueta de un objeto, primero debemos conocer la ecuación del plano de todas las caras. Luego, examinando el signo de la distancia punto-plano desde la fuente de luz a cada cara

aincógnita+by+doz+d={>0Orientación frontal=0paralelo<0mirando hacia atrás{\displaystyle ax+by+cz+d={\begin{cases}>0&{\text{orientación frontal}}\\=0&{\text{paralelo}}\\<0&{\text{orientación posterior}}\end{cases}}}

Utilizando este resultado, podemos determinar si la cara está orientada hacia adelante o hacia atrás.

El/los borde(s) de la silueta consisten en todos los bordes que separan una cara frontal de una cara posterior .

Técnica similar

Una implementación conveniente y práctica de la detección de orientación frontal/posterior consiste en utilizar la normal unitaria del plano (que de todos modos suele estar precalculada para los efectos de iluminación), y luego simplemente aplicar el producto escalar de la posición de la luz a la normal unitaria del plano y añadir el componente D de la ecuación del plano (un valor escalar):

normal(posición de la luz)+aviónD=a,b,do,dLincógnita,Ly,Lz,Lw+aviónD{\displaystyle {\textbf {normal}}\cdot ({\textbf {posición de luz}})+{\text{plano}}_{D}=\langle a,b,c,d\rangle \cdot \langle L_{x},L_{y},L_{z},L_{w}\rangle +{\text{plano}}_{D}}
aLincógnita+bLy+doLz+dLw+aviónD=indicador{\displaystyle aL_{x}+bL_{y}+cL_{z}+dL_{w}+{\text{plane}}_{D}={\text{indicador}}}

Donde plane_D se calcula fácilmente como el producto escalar de un punto en el plano con la normal unitaria del plano:

aviónD=Punto en el plano(normal){\displaystyle {\text{avión}}_{D}={\text{PointOnPlane}}\cdot ({\textbf {normal}})}

Nota: Las coordenadas homogéneas , L_w y d, no siempre son necesarias para este cálculo.

Tras realizar este cálculo, podrá observar que el indicador representa la distancia con signo desde el plano hasta la posición de la luz. Este indicador de distancia será negativo si se encuentra detrás de la cara y positivo si se encuentra delante de ella.

indicador={>0de frente=0paralelo<0mirando hacia atrás{\displaystyle {\text{indicator}}={\begin{cases}>0&{\text{frontal}}\\=0&{\text{paralelo}}\\<0&{\text{posterior}}\end{cases}}}

Esta es también la técnica utilizada en el artículo de SIGGRAPH de 2002 , "Volúmenes de sombras con plantillas prácticas y robustas para renderizado acelerado por hardware".

Referencias

  1. Raskar, Ramesh; Cohen, Michael (1999). "Image Precision Silhouette Edges". Actas del Simposio ACM SIGGRAPH de 1999 sobre Gráficos 3D Interactivos . Simposio ACM SIGGRAPH de 1999 sobre Gráficos 3D Interactivos. Atlanta, Georgia, Estados Unidos: Association for Computing Machinery (ACM). págs. 135–140 . doi : 10.1145/300523.300539 . ISBN  1-58113-082-1.
  • Invisibilidad cuantitativa fraccionaria en Wayback Machine (archivado el 25/07/2001)