Tipos de luz

La propiedad de tipo de luz define qué tipo de fuente de luz está usando. Hay tres tipos de luces en Direct3D: luces puntuales, focos de foco y luces direccionales. Cada tipo ilumina los objetos de una escena de forma diferente, con distintos niveles de sobrecarga computacional.

Luz de punto

Las luces de punto tienen color y posición dentro de una escena, pero no una sola dirección. Dan luz igualmente en todas las direcciones, como se muestra en la ilustración siguiente.

ilustración de la luz puntual

Una bombilla es un buen ejemplo de una luz puntual. Las luces de punto se ven afectadas por la atenuación y el intervalo, e iluminan una malla en una base de vértice por vértice. Durante la iluminación, Direct3D usa la posición de la luz de punto en el espacio mundial y las coordenadas del vértice que se iluminan para derivar un vector para la dirección de la luz y la distancia que ha recorrido la luz. Ambos se utilizan, junto con el vértice normal, para calcular la contribución de la luz a la iluminación de la superficie.

Luz direccional

Las luces direccionales solo tienen color y dirección, no posición. Emiten luz paralela. Esto significa que toda la luz generada por las luces direccionales viaja por una escena en la misma dirección. Imagine una luz direccional como una fuente de luz a poca distancia infinita, como el sol. Las luces direccionales no se ven afectadas por la atenuación o el intervalo, por lo que la dirección y el color especificados son los únicos factores que se tienen en cuenta cuando Direct3D calcula los colores del vértice. Debido al pequeño número de factores de iluminación, estas son las luces menos intensivas computacionalmente que se van a usar.

Foco

Los focos de luz tienen color, posición y dirección en la que emiten luz. La luz emitida a partir de un foco se compone de un cono interno brillante y un cono exterior más grande, con la intensidad de la luz disminuyendo entre los dos, como se muestra en la ilustración siguiente.

ilustración de un foco con un cono interno y un cono externo

Los focos de atención se ven afectados por caídas, atenuaciones y rangos. Estos factores, así como la distancia de desplazamiento de luz a cada vértice, se ilustran en cuando se calculan efectos de iluminación para objetos de una escena. La computación de estos efectos para cada vértice hace que los focos más lentos de cálculo de todas las luces en Direct3D.

Los valores falloff, Theta y Phi solo los usan los elementos destacados. Estos valores controlan el tamaño o el tamaño de los conos internos y externos de un objeto de foco y cómo disminuye la luz entre ellos.

Theta es el ángulo radian del cono interno del foco, y el valor Phi es el ángulo para el cono exterior de la luz. La caída controla cómo disminuye la intensidad de la luz entre el borde exterior del cono interno y el borde interno del cono exterior. La mayoría de las aplicaciones establecen Falloff en 1.0 para crear la caída que se produce uniformemente entre los dos conos, pero puede establecer otros valores según sea necesario.

En la ilustración siguiente se muestra la relación entre estos valores y cómo pueden afectar a los conos internos y externos de un foco de luz.

ilustración de cómo los valores phi y theta se relacionan con los conos destacados

Los focos emiten un cono de luz que tiene dos partes: un cono interno brillante y un cono exterior. La luz es más brillante en el cono interno y no está presente fuera del cono exterior, con intensidad de luz atenuada entre las dos áreas. Este tipo de atenuación se conoce normalmente como caída.

La cantidad de luz que recibe un vértice se basa en la ubicación del vértice en los conos internos o externos. Direct3D calcula el producto de punto del vector de dirección (L) del foco y el vector de la luz al vértice (D). Este valor es igual al coseno del ángulo entre los dos vectores y actúa como indicador de la posición del vértice que se puede comparar con los ángulos de cono de la luz para determinar dónde podría estar el vértice en los conos internos o externos. En la ilustración siguiente se proporciona una representación gráfica de la asociación entre estos dos vectores.

ilustración del vector de dirección del foco de foco y el vector del vértice al contenido destacado

El sistema compara este valor con el coseno de los ángulos de cono interior y exterior del foco. Los valores Theta y Phi de la luz representan los ángulos de cono total para los conos internos y externos. Dado que la atenuación se produce a medida que el vértice se aleja del centro de iluminación (en lugar de a través del ángulo total de cono), el tiempo de ejecución divide estos ángulos de cono en la mitad antes de calcular sus cosines.

Si el producto de punto de los vectores L y D es menor o igual que el coseno del ángulo del cono exterior, el vértice se encuentra más allá del cono exterior y no recibe ninguna luz. Si el producto de punto de L y D es mayor que el coseno del ángulo de cono interno, el vértice está dentro del cono interno y recibe la cantidad máxima de luz, considerando la atenuación a lo largo de la distancia. Si el vértice está en algún lugar entre las dos regiones, la caída se calcula con la siguiente ecuación.

fórmula para la intensidad de la luz en el vértice, después de la caída

donde:

  • If es la intensidad de la luz después de la caída
  • Alpha es el ángulo entre los vectores L y D.
  • Theta es el ángulo de cono interno.
  • Phi es el ángulo del cono exterior.
  • p es la caída

Esta fórmula genera un valor entre 0,0 y 1,0 que escala la intensidad de la luz en el vértice para tener en cuenta la caída. También se aplica la atenuación como factor de la distancia del vértice desde la luz. En el gráfico siguiente se muestra cómo pueden afectar los distintos valores de caída a la curva de caída.

gráfico de intensidad de la luz frente a la distancia del vértice desde la luz

El efecto de varios valores de caída en la iluminación real es sutil y se incurre en una pequeña penalización de rendimiento al dar forma a la curva de caída con valores de caída distintos de 1,0. Por estas razones, este valor se establece normalmente en 1.0.

Luces y materiales