Visão geral de iluminaçãoLighting overview

Ao usar a iluminação do Direct3D, você permite que o Direct3D processe os detalhes de iluminação para você.When you use Direct3D lighting, you allow Direct3D to handle the details of illumination for you. Os usuários avançados podem executar a iluminação por conta própria, se desejado.Advanced users can perform lighting on their own, if desired.

Quando a iluminação está habilitada, o Direct3D calcula a cor de cada vértice de objeto com base em uma combinação das seguintes opções:When lighting is enabled, Direct3D calculates the color of each object vertex based on a combination of the following:

  • Os texels em um mapa de textura associado.The texels in an associated texture map.
  • As cores difusas e especulares do vértice, se especificado.The diffuse and specular colors at the vertex, if specified.
  • A cor e a intensidade da luz produzida por fontes de iluminação de cena ou o nível de luz ambiente da cena.The color and intensity of light produced by light sources in the scene or the scene's ambient light level.

A forma como você trabalha com a iluminação e os materiais faz uma grande diferença na aparência da cena renderizada.How you work with lighting and materials makes a big difference in the appearance of the rendered scene. Os materiais definem como a luz é refletida por uma superfície.Materials define how light reflects off a surface. Níveis de luz direta e ambiente definem a luz refletida.Direct light and ambient light levels define the light that is reflected. Você deve usar materiais para renderizar uma cena se a iluminação estiver habilitada.You must use materials to render a scene if lighting is enabled.

As luzes não são necessárias para renderizar uma cena, mas os detalhes em uma cena renderizada sem luz não estão visíveis.Lights are not required to render a scene, but details in a scene rendered without light are not visible. Na melhor das hipóteses, a renderização de uma cena apagada resulta em uma silhueta dos objetos nela.At best, rendering an unlit scene results in a silhouette of the objects in the scene. Isso não fornece detalhes suficientes para a maioria das finalidades.This is not enough detail for most purposes.

Luz direta versus luz ambienteDirect light vs. ambient light

Embora as luzes direta e ambiente iluminem objetos em uma cena, elas são independentes uma da outra, têm efeitos muito diferentes e exigem que você trabalhe com elas de formas completamente diferentes.Although both direct and ambient light illuminate objects in a scene, they are independent of one another, they have very different effects, and they require that you work with them in completely different ways.

Luz direta atinge o objeto diretamente.Direct light strikes the object directly. A luz direta sempre tem direção e cor, além de ser um fator para algoritmos de sombreamento, como sombreamento de Gouraud.Direct light always has direction and color, and it is a factor for shading algorithms, such as Gouraud shading. Diferentes tipos de luzes emitem luz direta de formas diferentes, o que cria efeitos especiais de atenuação.Different types of lights emit direct light in different ways, creating special attenuation effects.

Luz ambiente está efetivamente em qualquer lugar em uma cena.Ambient light is effectively everywhere in a scene. A luz ambiente é um nível geral de luz que preenche uma cena inteira, independentemente dos objetos e suas localizações nela.Ambient light is a general level of light that fills an entire scene, regardless of the objects and their locations in that scene. A luz ambiente não tem posição ou direção, somente cor e intensidade.Ambient light has no position or direction, only color and intensity. Cada luz adiciona detalhes à luz ambiente geral em uma cena.Each light adds to the overall ambient light in a scene.

A cor de luz ambiente assume a forma de um valor RGBA, onde cada componente é um valor inteiro de 0 a 255.Ambient light color takes the form of an RGBA value, where each component is an integer value from 0 to 255. Isso é diferente da maioria dos valores de cores no Direct3D.This is unlike most color values in Direct3D.

Os componentes vermelhos, verdes e azuis são combinados para formar a cor final da luz ambiente.The red, green, and blue components combine to make the final color of the ambient light. O componente alfa controla a transparência da cor.The alpha component controls the transparency of the color. Ao usar a aceleração de hardware ou a emulação de RGB, o componente alfa é ignorado.When using hardware acceleration or RGB emulation, the alpha component is ignored.

Modelo de luz Direct3D versus naturezaDirect3D light model vs. nature

Na natureza, quando a luz é emitida de uma fonte, ela é refletido por centenas, se não milhares ou milhões de objetos antes de chegar aos olhos do usuário.In nature, when light is emitted from a source, it is reflected off of hundreds, if not thousands or millions of objects before reaching the user's eye. Cada vez que ele é refletido, uma luz é absorvida por uma superfície, algumas estão espalhados em direções aleatórias e o restante prossegue para outra superfície ou a atenção do usuário.Each time it is reflected, some light is absorbed by a surface, some is scattered in random directions, and the rest goes on to another surface or to the user's eye. Esse processo continua até que a luz seja reduzida a nada ou um usuário perceba a luz.This process continues until the light is reduced to nothing or a user perceives the light.

Obviamente, os cálculos necessários para simular perfeitamente o comportamento natural de luz são muito demorados para uso em elementos gráficos de tempo real do Direct3D.Obviously, the calculations required to perfectly simulate the natural behavior of light are too time-consuming to use for real-time Direct3D graphics. Portanto, pensando na velocidade, o modelo de luz do Direct3D se aproxima da maneira como a luz funciona no mundo natural.Therefore, with speed in mind, the Direct3D light model approximates the way light works in the natural world. O Direct3D descreve a luz em termos de componentes de vermelhos, verdes e azuis que são combinados para criar uma cor final.Direct3D describes light in terms of red, green, and blue components that combine to create a final color.

No Direct3D, quando a luz é refletida por uma superfície, a cor da luz interage matematicamente com a superfície para criar a cor eventualmente exibida na tela.In Direct3D, when light reflects off a surface, the light color interacts mathematically with the surface itself to create the color eventually displayed on the screen. Para obter informações específicas sobre os algoritmos que o Direct3D usa, consulte Matemática da iluminação.For specific information about the algorithms Direct3D uses, see Mathematics of lighting.

O modelo de luz do Direct3D generaliza a luz em dois tipos: luzes ambiente e direta.The Direct3D light model generalizes light into two types: ambient light and direct light. Cada uma tem atributos diferentes e interage com o material de uma superfície de maneiras diferentes.Each has different attributes, and each interacts with the material of a surface in different ways. A luz ambiente é muito espalhada, portanto, sua direção e fonte são indeterminadas: ela mantém um nível baixo de intensidade em todos os lugares.Ambient light is light that has been scattered so much that its direction and source are indeterminate: it maintains a low level of intensity everywhere. A iluminação indireta usada por fotógrafos é um bom exemplo de luz ambiente.The indirect lighting used by photographers is a good example of ambient light.

Assim como na natureza, a luz ambiente no Direct3D não tem direção real ou fonte, apenas uma cor e uma intensidade.Ambient light in Direct3D, as in nature, has no real direction or source, only a color and intensity. Na verdade, o nível de luz ambiente é independente de qualquer objeto em uma cena que gera luz.In fact, the ambient light level is completely independent of any objects in a scene that generate light. A luz ambiente não contribui para a reflexão especular.Ambient light does not contribute to specular reflection.

A luz direta é gerada por uma fonte em uma cena; sempre tem cor e a intensidade, além de se deslocar em uma direção especificada.Direct light is the light generated by a source within a scene; it always has color and intensity, and it travels in a specified direction. A luz direta interage com o material de uma superfície para criar realces especulares e sua direção é usada como um fator em algoritmos de sombreamento, incluindo sombreamento de Gouraud.Direct light interacts with the material of a surface to create specular highlights, and its direction is used as a factor in shading algorithms, including Gouraud shading. Quando a luz direta é refletida, ela não contribui para o nível de luz ambiente em uma cena.When direct light is reflected, it does not contribute to the ambient light level in a scene. As fontes em uma cena que geram luz direta têm características diferentes que afetam como iluminam uma cena.The sources in a scene that generate direct light have different characteristics that affect how they illuminate a scene.

Além disso, o material do polígono tem propriedades que afetam como ele reflete a luz recebida.Additionally, a polygon's material has properties that affect how that polygon reflects the light it receives. Você define uma única característica de reflexão que descreve como o material reflete a luz ambiente, além de definir características individuais para determinar a reflexão especulares e difusa do material.You set a single reflectance trait that describes how the material reflects ambient light, and you set individual traits to determine the material's specular and diffuse reflectance.

Valores de cor para materiais e luzesColor values for lights and materials

O Direct3D descreve as cores em termos de quatro componentes (vermelho, verde, azul e alfa), que são combinadas para compor uma cor final.Direct3D describes color in terms of four components (red, green, blue, and alpha), that combine to make a final color. Cada componente varia de 0,0 a 1,0.Each component ranges from 0.0 to 1.0. Embora as luzes e os materiais usem a mesma estrutura para descrever a cor, os valores são usados de modo um pouco diferente pelas luzes e pelos materiais.Although both lights and materials use the same structure to describe color, the values are used a little differently by lights versus materials.

Os valores de cor para fontes de iluminação representam a quantidade de um componente de luz específico emitido.Color values for light sources represent the amount of a particular light component it emits. Como as luzes não usam um componente alfa, apenas os componentes de vermelhos, verdes e azuis da cor são relevantes.Because lights don't use an alpha component, only the red, green, and blue components of the color are relevant. Você pode visualizar os três componentes como lentes vermelhas, verdes e azuis em uma televisão de projeção.You can visualize the three components as the red, green, and blue lenses on a projection television. Cada lente pode estar deslocada (por um valor de 0,0 no membro apropriado), poderá ser o mais brilhante possível (um valor de 1,0) ou pode estão em algum nível no meio.Each lens might be off (a 0.0 value in the appropriate member), it might be as bright as possible (a 1.0 value), or it might be some level in between.

As cores das lentes são combinadas para criar a cor da luz final.The colors coming through the lenses combine to make the light's final color. Uma combinação como R(1,0), G(1,0), B(1,0) cria uma luz branca, onde R(0,0) G(0,0), B(0,0), não emite luz.A combination like R(1.0), G(1.0), B(1.0) creates a white light, where R(0.0), G(0.0), B(0.0) doesn't emit light at all. Você pode fazer uma luz que emite um único componente, resultando em uma luz de vermelha, verde ou azul pura; ou, a luz pode usar combinações para emitir cores como amarelo ou roxo.You can make a light that emits only one component, resulting in a pure red, green, or blue light; or, the light could use combinations to emit colors like yellow or purple. Você pode até mesmo definir valores de componentes negativos para criar uma "luz escura" que remove a luz de uma cena.You can even set negative color component values to create a "dark light" that actually removes light from a scene. Ou, você pode definir os componentes com algum valor maior do que 1,0 para criar uma luz muito clara.Or, you might set the components to some value larger than 1.0 to create an extremely bright light.

Por outro lado, com os materiais, os valores de cor representam o quanto um componente de luz é refletido por uma superfície renderizada com esse material.With materials, on the other hand, color values represent how much of a light component is reflected by a surface that is rendered with that material. Um material cujos componentes de cor são R(1,0), G(1,0), B(1,0), A(1,0) reflete a luz recebida.A material whose color components are R(1.0), G(1.0), B(1.0), A(1.0) reflects all the light that comes its way. Da mesma forma, um material com R(0,0), G(1,0), B(0,0), A(1,0) reflete toda a luz verde direcionada a ele.Likewise, a material with R(0.0), G(1.0), B(0.0), A(1.0) reflects all the green light that is directed at it. Os materiais têm diversos valores de reflexão para criar vários tipos de efeitos.Materials have multiple reflectance values to create various types of effects.

Consulte Tipos de luzes e Propriedades de luzes.See Light types and Light properties.

Tópicos relacionadosRelated topics

Materiais e luzesLights and materials