stringtranslate.com

Borde de silueta

En gráficos por computadora, un borde de silueta en un cuerpo 3D proyectado sobre un plano 2D (plano de visualización) es la colección de puntos cuya superficie normal hacia afuera es perpendicular al vector de vista . Debido a las discontinuidades en la superficie normal, un borde de silueta es también un borde que separa una cara frontal de una cara posterior. Sin pérdida de generalidad , este borde se suele elegir para que sea el más cercano en una cara, de modo que en una vista paralela este borde corresponda al mismo en una vista en perspectiva. Por lo tanto, si hay un borde entre una cara frontal y una cara lateral, y otro borde 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 borde de silueta a veces resulta problemático de manejar porque no necesariamente corresponde a un borde físico en el modelo CAD. La razón por la que esto puede ser un problema es que un programador podría corromper el modelo original al introducir el nuevo borde de silueta en el problema. Además, dado que el borde depende en gran medida de la orientación del modelo y del vector de vista, esto puede introducir inestabilidades numéricas en el algoritmo (como cuando se considera un truco como la dilución de la precisión ).

Cálculo

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

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

Los bordes de la silueta constan de 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 frente/atrás es usar la unidad normal del avión (que comúnmente se precalcula previamente para efectos de iluminación), luego simplemente aplicar el producto escalar de la posición de la luz a la unidad normal del avión y agregar la D componente de la ecuación plana (un valor escalar):

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

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

Después de hacer este cálculo, podrá notar que el indicador es en realidad la distancia con signo desde el avión hasta la posición de la luz. Este indicador de distancia será negativo si está detrás de la cara y positivo si está delante de la cara.

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

enlaces externos