Tipos de luzLight types

A propriedade do tipo de luz define qual o tipo de fonte de luz que você está usando.The light type property defines which type of light source you're using. Existem três tipos de luzes no Direct3D: pontos iluminados, destaques e luzes direcionais.There are three types of lights in Direct3D - point lights, spotlights, and directional lights. Cada tipo ilumina objetos em uma cena de forma diferente, com diferentes níveis de sobrecarga.Each type illuminates objects in a scene differently, with varying levels of computational overhead.

Ponto de luzPoint Light

As luzes pontuais têm cor e posição em uma cena, mas nenhum direção única.Point lights have color and position within a scene, but no single direction. Elas emitem luz igualmente em todas as direções, como mostrado na ilustração a seguir.They give off light equally in all directions, as shown in the following illustration.

Ilustração de luz pontual

Uma lâmpada é um bom exemplo de luz pontual.A light bulb is a good example of a point light. As luzes pontuais são afetadas pela atenuação e pelo intervalo, além de iluminarem uma malha com base em vértices.Point lights are affected by attenuation and range, and illuminate a mesh on a vertex-by-vertex basis. Durante a iluminação, o Direct3D usa a posição da luz pontual no espaço do mundo e as coordenadas do vértice iluminado para derivar um vetor de direção de luz e a distância que a luz já percorreu.During lighting, Direct3D uses the point light's position in world space and the coordinates of the vertex being lit to derive a vector for the direction of the light, and the distance that the light has traveled. Ambos são usados, juntamente com o vértice normal, para calcular a contribuição da luz para a iluminação da superfície.Both are used, along with the vertex normal, to calculate the contribution of the light to the illumination of the surface.

Luz direcionalDirectional Light

As luzes direcionais têm somente cor e direção, mas não têm posição.Directional lights have only color and direction, not position. Elas emitem luz paralela.They emit parallel light. Ou seja, todas as luzes geradas pelas luzes direcionais percorrem uma cena na mesma direção.This means that all light generated by directional lights travels through a scene in the same direction. Imagine uma luz direcional como uma fonte de luz a uma distância quase infinita, como o sol.Imagine a directional light as a light source at near infinite distance, such as the sun. As luzes direcionais não são afetadas por atenuação ou intervalos, portanto, a direção e a cor especificadas são fatores considerados somente quando o Direct3D calcula cores de vértice.Directional lights are not affected by attenuation or range, so the direction and color you specify are the only factors considered when Direct3D calculates vertex colors. Devido ao pequeno número de fatores de iluminação, essas são as luzes menos intensas para usar.Because of the small number of illumination factors, these are the least computationally intensive lights to use.

Em destaqueSpotLight

Os destaques têm cor, posição e direção para emissão de luz.Spotlights have color, position, and direction in which they emit light. A luz emitida de um destaque é composta por um cone interno brilhante e um cone externo maior, com a intensidade de luz entre os dois diminuindo conforme mostrado na ilustração a seguir.Light emitted from a spotlight is made up of a bright inner cone and a larger outer cone, with the light intensity diminishing between the two, as shown in the following illustration.

Ilustração de um destaque com um cone interno e cone um externo

Destaques são afetados por quedas, atenuação e intervalo.Spotlights are affected by falloff, attenuation, and range. Esses fatores, bem como a distância de deslocamento da luz em cada vértice, são elaborados ao calcular os efeitos de iluminação para objetos em uma cena.These factors, as well as the distance light travels to each vertex, are figured in when computing lighting effects for objects in a scene. Esses efeitos de cada vértice fazem dos destaques uma das luzes mais demoradas de calcular no Direct3D.Computing these effects for each vertex makes spotlights the most computationally time-consuming of all lights in Direct3D.

Valores de Queda, Teta e Phi são usados somente por destaques.Falloff, Theta, and Phi values are used only by spotlights. Esses valores controlam o tamanho dos cones internos e externos dos objetos do destaque, além da forma como a luz diminui entre eles.These values control how large or small a spotlight object's inner and outer cones are, and how light decreases between them.

Teta é o ângulo radiano do cone interno do destaque e o valor de Phi é o ângulo do cone de luz externo.Theta is the radian angle of the spotlight's inner cone, and the Phi value is the angle for the outer cone of light. A queda controla como a luz diminui a intensidade entre a borda externa de cone interno e a borda interna do cone externo.Falloff controls how light intensity decreases between the outer edge of the inner cone and the inner edge of the outer cone. A maioria dos apps define a Queda como 1,0 para criar uma queda uniforme entre os dois cones, mas você pode definir outros valores conforme necessário.Most applications set Falloff to 1.0 to create falloff that occurs evenly between the two cones, but you can set other values as needed.

A ilustração a seguir mostra a relação entre esses valores e como eles podem afetar os cones internos e externos do destaque da luz.The following illustration shows the relationship between these values and how they can affect a spotlight's inner and outer cones of light.

ilustração de como os valores de phi e teta se relacionam com os cones de destaque

Destaques emitem um cone de luz com duas partes: um cone interno brilhante e um cone externo.Spotlights emit a cone of light that has two parts: a bright inner cone and an outer cone. A luz é mais brilhante em de cone interno e não está presente fora do cone externo, com intensidade de luz atenuada entre as duas áreas.Light is brightest in the inner cone and isn't present outside the outer cone, with light intensity attenuating between the two areas. Em geral, esse tipo de atenuação é conhecido como queda.This type of attenuation is commonly referred to as falloff.

A quantidade de luz recebida por um vértice tem por base a localização do vértice nos cones internos ou externos.The amount of light a vertex receives is based on the vertex's location in the inner or outer cones. O Direct3D calcula o produto de pontos do vetor de direção do destaque (L) e o vetor de luz para o vértice (D).Direct3D computes the dot product of the spotlight's direction vector (L) and the vector from the light to the vertex (D). Esse valor é igual ao cosseno do ângulo entre os dois vetores e serve como um indicador de posição do vértice que pode ser comparado a ângulos de cone da luz para determinar onde o vértice pode estar nos cones internos ou externos.This value is equal to the cosine of the angle between the two vectors, and serves as an indicator of the vertex's position that can be compared to the light's cone angles to determine where the vertex might lie in the inner or outer cones. A ilustração a seguir fornece uma representação gráfica da associação entre esses dois vetores.The following illustration provides a graphical representation of the association between these two vectors.

ilustração do vetor de direção de destaque e o vetor do vértice de destaque

O sistema compara esse valor ao cosseno dos ângulos dos cones internos e externos do destaque.The system compares this value to the cosine of the spotlight's inner and outer cone angles. Os valores de Teta e Phi da luz representam os ângulos totais de cone para os cones internos e externos.The light's Theta and Phi values represent the total cone angles for the inner and outer cones. Como a atenuação ocorre à medida que o vértice fica mais distante do Centro de iluminação (em vez de entre o ângulo total do cone), o tempo de execução divide esses ângulos de cone na metade antes de calcular seus cossenos.Because the attenuation occurs as the vertex becomes more distant from the center of illumination (rather than across the total cone angle), the runtime divides these cone angles in half before calculating their cosines.

Se o produto de pontos dos vetores L e D for menor ou igual ao cosseno do ângulo cone externo, o vértice está além do cone externo e não recebe nenhuma luz.If the dot product of vectors L and D is less than or equal to the cosine of the outer cone angle, the vertex lies beyond the outer cone and receives no light. Se o produto de pontos de L e D for maior do que o cosseno do ângulo de cone interno, o vértice está dentro do cone interno e recebe a quantidade máxima de luz, considerando ainda a atenuação em vez da distância.If the dot product of L and D is greater than the cosine of the inner cone angle, then the vertex is within the inner cone and receives the maximum amount of light, still considering attenuation over distance. Se o vértice estiver em algum lugar entre duas regiões, a queda é calculada com a seguinte equação.If the vertex is somewhere between the two regions, then falloff is calculated with the following equation.

fórmula de intensidade da luz em vértices depois da queda

onde:where:

  • If é a intensidade da luz após a quedaIf is light intensity after falloff
  • Alfa é o ângulo entre os vetores L e DAlpha is the angle between vectors L and D
  • Teta é o ângulo do cone internoTheta is the inner cone angle
  • Phi é o ângulo do cone externoPhi is the outer cone angle
  • p é a quedap is the falloff

Essa fórmula gera um valor entre 0,0 e 1,0 que dimensiona a intensidade da luz no vértice para contabilizar a queda.This formula generates a value between 0.0 and 1.0 that scales the light's intensity at the vertex to account for falloff. A atenuação como um fator da distância do vértice para a luz também é aplicada.Attenuation as a factor of the vertex's distance from the light is also applied. O gráfico a seguir mostra como valores de queda diferentes podem afetar a curva de queda.The following graph shows how different falloff values can affect the falloff curve.

gráfico de intensidade de luz em comparação à distância do vértice para a luz

O efeito de diversos valores de queda sobre a iluminação real é sutil e uma penalidade de desempenho pequena é incorrida ao modelar a curva de queda com valores de queda diferentes de 1,0.The effect of various falloff values on the actual lighting is subtle, and a small performance penalty is incurred by shaping the falloff curve with falloff values other than 1.0. Por esses motivos, esse valor geralmente é definido como 1,0.For these reasons, this value is typically set to 1.0.

Tópicos relacionadosRelated topics

Materiais e luzesLights and materials