Обзор подсветки

Команды подсветки

MATLAB® графическое окружение предоставляет команды, которые позволяют вам позиционировать источники света и корректировать характеристики объектов, которые отражают источники света. Эти команды включают следующие.

Команда

Цель

camlight

Создайте или переместите свет относительно положения камеры

lightangle

Создайте или расположите свет в сферических координатах

light

Создайте световой объект

lighting

Выберите метод подсветки

material

Установите отражательные свойства освещаемых объектов

Можно задать свойства света и объекта освещения для достижения определенных результатов. В дополнение к материалу в этой тематической области можно исследовать примеры подсветки как введение в подсветку для визуализации.

Световые объекты

Вы создаете световой объект, используя light функция. Три важных свойства светового объекта:

  • Color - Цвет света, отбрасываемого световым объектом

  • Style - Либо бесконечно далеко (по умолчанию), либо локально

  • Position - Направление (для бесконечных источников света) или местоположение (для местных источников света)

The Color свойство определяет цвет направленного света от источника света. Цвет объекта в сцене определяется цветом объекта и источника света.

The Style свойство определяет, является ли источник света точечным источником (Style установлено на local), который излучается из заданного положения во всех направлениях, или источник света, помещенный в бесконечность (Style установлено на infinite), который светит от направления заданного положения параллельными лучами.

The Position свойство задает местоположение источника света в единицах данных осей. В случае источника света в бесконечности, Position задает направление к источнику света.

Освещает влияние поверхность и закрашенная фигура объектов, которые находятся в тех же осях, что и свет. Эти объекты имеют ряд свойств, которые изменяют их внешний вид при освещении огнями.

Свойства, которые влияют на подсветку

Вы не можете увидеть сами световые объекты, но можете увидеть их эффекты на любой закрашенной фигуре и объектах поверхности, присутствующих в осях, содержащих свет. Ряд функций создают эти объекты, включая surf, mesh, pcolor, fill, и fill3 а также surface и patch функций.

Вы управляете эффектами подсветки, задавая различные свойства осей, света, закрашенной фигуры и объекта поверхности. Все свойства имеют значения по умолчанию, которые обычно дают желаемые результаты. Однако можно достичь нужного эффекта, скорректировав значения этих свойств.

Свойство

Эффект

AmbientLightColor

Свойство axes, которое задает цвет фонового света в сцене, который не имеет направления и равномерно влияет на все объекты. Эффекты окружающего света возникают только, когда в осях есть видимый объект света.

AmbientStrength

Свойство закрашенной фигуры и поверхности, которое определяет интенсивность окружающего компонента света, отраженного от объекта.

DiffuseStrength

Закрашенная фигура и свойство поверхности, которое определяет интенсивность диффузного компонента света, отраженного от объекта.

SpecularStrength

Закрашенная фигура и свойство поверхности, которое определяет интенсивность зеркального компонента света, отраженного от объекта.

SpecularExponent

Свойство закрашенной фигуры и поверхности, которое определяет размер зеркального выделения.

SpecularColorReflectance

Свойство закрашенной фигуры и поверхности, которое определяет степень, до которой зеркально отраженный свет окрашен цветом объекта или цветом источника света.

FaceLighting

Свойство закрашенной фигуры и поверхности, которое определяет метод, используемый для вычисления эффекта света на гранях объекта. Выбор не является либо подсветкой, либо алгоритмом плоского освещения, либо алгоритмом Гуро.

EdgeLighting

Свойство закрашенной фигуры и поверхности, которое определяет метод, используемый для вычисления эффекта света на ребра объекта. Выбор не является либо подсветкой, либо алгоритмом плоской подсветки, либо алгоритмом Гуро.

BackFaceLighting

Свойство patch и surface, которое определяет, как грани освещаются, когда их вершинные нормали указывают от камеры. Это свойство полезно для различения внутренних и внешних поверхностей объекта.

FaceColor

Свойство закрашенной фигуры и поверхности, которое задает цвет граней объекта.

EdgeColor

Свойство patch и surface, которое задает цвет ребер объекта.

VertexNormals

Свойство patch и surface, которое содержит нормальные векторы для каждой вершины объекта. MATLAB использует вершинные нормальные векторы для вычисления подсветки. В то время как MATLAB автоматически генерирует эти данные, можно также задать свои собственные вершинные нормали.

NormalMode

Свойство закрашенной фигуры и поверхности, которое определяет, пересчитывает ли MATLAB нормали вершин, если вы изменяете данные объекта (auto) или использует текущие значения VertexNormals свойство (manual). Если вы задаете значения для VertexNormalsMATLAB устанавливает это свойство на manual.

Для получения дополнительной информации см. Свойства осей графика, Свойства поверхности и Закрашенной фигуры Свойств.

Примеры управления подсветкой

Подсветка - это метод добавления реализма в графическую сцену. Он делает это путем симуляции светлых и темных областей, которые происходят на объектах под естественной подсветкой (например, направленный свет, который приходит от солнца). Чтобы создать эффекты подсветки, MATLAB задает графический объект, называемый светом. MATLAB применяет подсветку к объектам поверхности и патча.

Пример - Добавление источников света к сцене

Этот пример отображает поверхность мембраны и освещает ее источником света, исходящим из положения справа от положения камеры.

membrane
camlight

Создание света активирует ряд связанных с освещением свойств, управляющих характеристиками, такими как свойства окружающего света и отражающей способности объектов.

Пример - Подсветка математических функций

Подсветка может улучшить поверхностные графики математических функций. Для примера используйте ezsurf команда для вычисления выражения

sin(x2+y2)÷(x2+y2)

по области -6 π до 6 π.

h = ezsurf('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)',[-6*pi,6*pi]);

Теперь добавьте подсветку, используя lightangle функция, которая принимает положение света с точки зрения азимута и повышения.

view(0,75)
shading interp
lightangle(-45,30)
h.FaceLighting = 'gouraud';
h.AmbientStrength = 0.3;
h.DiffuseStrength = 0.8;
h.SpecularStrength = 0.9;
h.SpecularExponent = 25;
h.BackFaceLighting = 'unlit';

После получения указателя на поверхность объекта используя findobjможно задать свойства, влияющие на отражение света с поверхности. Более подробное описание этих свойств см. в разделе «Свойства, влияющие на подсветку».