Типы светаLight types

Свойство типа освещения определяет, какой тип источника света вы используете.The light type property defines which type of light source you're using. В Direct3D существует три типа источников света — точечные, прожекторные и направленные.There are three types of lights in Direct3D - point lights, spotlights, and directional lights. Каждый тип по-разному освещает объекты в сцене и вносит различные объемы вычислительной нагрузки.Each type illuminates objects in a scene differently, with varying levels of computational overhead.

Точечный светPoint Light

Точечные источники света имеют цвет и расположение в сцене, но не имеют определенного направления.Point lights have color and position within a scene, but no single direction. Они излучают свет равномерно во всех направлениях, как показано на следующем рисунке.They give off light equally in all directions, as shown in the following illustration.

иллюстрация точечного источника света

Хорошим примером точечного источника света является лампа накаливания.A light bulb is a good example of a point light. Точечные источники света обладают свойствами затухания и дальности действия и освещают сетку по принципу вершина за вершиной.Point lights are affected by attenuation and range, and illuminate a mesh on a vertex-by-vertex basis. Во время освещения Direct3D использует расположение точечного источника света в пространстве и координаты освещаемых вершин, чтобы рассчитать вектор направленности освещения и расстояние, которое свет преодолевает.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. Оба этих параметра используются вместе с нормалью вершины, чтобы вычислить вклад этого источника света в освещенность определенной поверхности.Both are used, along with the vertex normal, to calculate the contribution of the light to the illumination of the surface.

Направленный светDirectional Light

Направленные источники света имеют только цвет и направление и не имеют расположения.Directional lights have only color and direction, not position. Они излучают параллельный свет.They emit parallel light. Это означает, что весь излучаемый направленными источниками свет проходит через сцену в одном направлении.This means that all light generated by directional lights travels through a scene in the same direction. Представить себе направленный источник света можно как очень сильно удаленный источник света, такой как солнце.Imagine a directional light as a light source at near infinite distance, such as the sun. Направленные источники света не имеют свойств затухания и дальности действия, поэтому при расчете цветов вершин в качестве коэффициентов Direct3D использует только заданные вами свойства направления и цвета.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. Из-за небольшого количества коэффициентов освещения эти источники света являются наименее сложными в вычислениях.Because of the small number of illumination factors, these are the least computationally intensive lights to use.

SpotLightSpotLight

Прожекторные источники света имеют свойства цвета, расположения и направления, в котором они светят.Spotlights have color, position, and direction in which they emit light. Свет, излучаемый прожекторным источником, состоит из яркого внутреннего конуса и более крупного внешнего конуса, а интенсивность света уменьшается от одного к другому, как показано на следующем рисунке.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.

иллюстрация прожектора с внутренним конусом и внешним конусом

Прожекторы имеют свойства ослабления, затухания и дальности действия.Spotlights are affected by falloff, attenuation, and range. Эти факторы, а также расстояние, которое свет преодолевает до каждой вершины, учитываются при расчете эффектов освещения для объектов в сцене.These factors, as well as the distance light travels to each vertex, are figured in when computing lighting effects for objects in a scene. Вычисление этих эффектов для каждой вершины делает прожекторы наиболее сложными из всех источников света в Direct3D.Computing these effects for each vertex makes spotlights the most computationally time-consuming of all lights in Direct3D.

Значения ослабления, тета и фи используются только прожекторными источниками.Falloff, Theta, and Phi values are used only by spotlights. Эти значения определяют размер внутренних и внешних конусов света на объекте, а также то, как свет ослабляется при переходе от одного к другому.These values control how large or small a spotlight object's inner and outer cones are, and how light decreases between them.

Тета — это угол для внутреннего конуса освещения в радианах, а фи — это угол для внешнего конуса освещения прожектора.Theta is the radian angle of the spotlight's inner cone, and the Phi value is the angle for the outer cone of light. Ослабление определяет, как снижается интенсивность освещения при переходе от внешнего края внутреннего конуса к внутреннему краю внешнего конуса.Falloff controls how light intensity decreases between the outer edge of the inner cone and the inner edge of the outer cone. В большинстве приложений задается значение ослабления 1,0 для создания равномерного ослабления на переходе между двумя конусами, но при необходимости можно задать другие значения.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.

На следующем рисунке показана связь между этими значения и тем, как они влияют на внутренние и внешние конусы прожектора.The following illustration shows the relationship between these values and how they can affect a spotlight's inner and outer cones of light.

иллюстрация связи значений фи и тета с конусами прожектора

Прожекторы излучают свет, состоящий из двух частей: яркий внутренний конус и внешний конус.Spotlights emit a cone of light that has two parts: a bright inner cone and an outer cone. Самый яркий свет попадает во внутренний конус, а за пределами внешнего конуса свет отсутствует; между этими двумя областями интенсивность света ослабляется.Light is brightest in the inner cone and isn't present outside the outer cone, with light intensity attenuating between the two areas. Этот тип снижения интенсивности обычно называется ослаблением.This type of attenuation is commonly referred to as falloff.

Количество света, который получает вершина, основано на расположении вершины во внутреннем или внешнем конусе.The amount of light a vertex receives is based on the vertex's location in the inner or outer cones. Direct3D вычисляет скалярное произведение вектора направления прожектора (L) и вектора от источника света до вершины (D).Direct3D computes the dot product of the spotlight's direction vector (L) and the vector from the light to the vertex (D). Это значение равно косинусу угла между двумя векторами и служит индикатором расположения вершины, его можно сравнить с углами конуса света, чтобы определить, находится ли вершина во внутреннем или внешнем конусе.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. На иллюстрации ниже представлено графическое изображение отношения между этими двумя векторами.The following illustration provides a graphical representation of the association between these two vectors.

изображение вектора направления прожектора и вектора от вершины до прожектора

Система сравнивает это значение с косинусом углов внутреннего и внешнего конусов прожектора.The system compares this value to the cosine of the spotlight's inner and outer cone angles. Значения тета и фи источника света представляют суммарные значения углов конуса для внутреннего и внешнего конусов.The light's Theta and Phi values represent the total cone angles for the inner and outer cones. Поскольку ослабление происходит по мере удаления вершины от центра освещенности (а не по всему углу конуса), среда выполнения делит эти углы конуса пополам перед расчетом их косинусов.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.

Если скалярное произведение векторов L и D меньше либо равно косинусу угла внешнего конуса, вершина находится за пределами внешнего конуса и не получает света.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. Если скалярное произведение векторов L и D больше косинуса угла внутреннего конуса, значит, вершина находится в пределах внутреннего конуса и получает максимальное количество света с учетом затухания по мере удаления.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. Если вершина находится где-то между двумя этими областями, ослабление рассчитывается по следующему уравнению.If the vertex is somewhere between the two regions, then falloff is calculated with the following equation.

формула интенсивности света на вершине после ослабления

Где:where:

  • If — интенсивность света после ослабленияIf is light intensity after falloff
  • Альфа — это угол между векторами L и DAlpha is the angle between vectors L and D
  • Тета — это угол внутреннего конусаTheta is the inner cone angle
  • Фи — это угол внешнего конусаPhi is the outer cone angle
  • p — значение ослабленияp is the falloff

Эта формула выдает значение от 0,0 до 1,0, которое определяет интенсивность света на вершине с учетом ослабления.This formula generates a value between 0.0 and 1.0 that scales the light's intensity at the vertex to account for falloff. Также применяется значение затухания, которое зависит от расстояния между вершиной и источником света.Attenuation as a factor of the vertex's distance from the light is also applied. На следующем графике показано, как различные значения ослабления могут влиять на кривую ослабления.The following graph shows how different falloff values can affect the falloff curve.

график интенсивности света в зависимости от расстояние между вершиной и источником света

Влияние различных значений ослабления на фактическое освещение довольно умеренное, и небольшое снижение производительности вызывается при расчете кривой для значений ослабления, отличных от 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. По этим причинам это значение обычно устанавливается равным 1,0.For these reasons, this value is typically set to 1.0.

Связанные разделыRelated topics

Источники света и материалыLights and materials