Можно задать характеристики отражения закрашенных фигур и поверхностных объектов и тем самым повлиять на их внешний вид при применении света к сцене. Вероятно, вы скорректируете эти характеристики в комбинации, чтобы получить конкретные результаты.
Также см.
material
команда для удобного способа создать определенные подсветкой эффекты.
Можно контролировать количество зеркального и диффузного отражения от поверхности объекта путем установки SpecularStrength
и DiffuseStrength
свойства. Этот рисунок иллюстрирует различные настройки.
Окружающий свет является бессветным светом, который равномерно светит на всех объектах сцены. Окружающий свет видим только, когда в осях есть световые объекты. Существует два свойства, которые управляют окружающим светом - AmbientLightColor
- свойство оси, которое устанавливает цвет, и AmbientStrength
является свойством закрашенной фигуры и поверхностных объектов, которое определяет интенсивность окружающего света на конкретном объекте.
Этот рисунок показывает три различных цвета окружающего света при различной интенсивности. Сфера красная, и присутствует белый световой объект.
Зеленый [0 1 0] окружающий свет не влияет на сцену, потому что нет красного компонента в зеленом свете. Однако цвет, заданный значениями RGB [.5 0 1], имеет красный компонент, поэтому он способствует свету на сфере (но меньше, чем белый [1 1 1] окружающий свет).
Размер зеркального пятна подсветки зависит от значения закрашенной фигуры и поверхности объекта SpecularExponent
свойство. Типичные значения для этого свойства варьируются от 1 до 500, при этом нормальные объекты имеют значения в области значений от 5 до 20.
Этот рисунок показывает красную сферу, освещенную белым светом с тремя различными значениями для SpecularExponent
свойство.
Цвет зеркально отраженного света может варьироваться от комбинации цвета объекта и цвета источника света до цвета только источника света. Закрашенная фигура и поверхностные SpecularColorReflectance
свойство контролирует этот цвет. Этот рисунок показывает красную сферу, освещенную белым светом. Значения SpecularColorReflectance
свойство варьируется от 0 (объект и светлый цвет) до 1 (светлый цвет).
Подсветка задней грани полезно для отображения различия между внутренними и внешними гранями. Эти изображения вырезанных цилиндрических поверхностей иллюстрируют эффекты подсветки задней поверхности.
Значение по умолчанию для BackFaceLighting
является reverselit
. Эта настройка изменяет направление нормалей вершины, которые обращены в сторону от камеры, заставляя внутреннюю поверхность отражать свет в сторону камеры. Настройка BackFaceLighting
на unlit
отключает подсветку на гранях с нормалями, указывающими от камеры.
Можно также использовать BackFaceLighting
для удаления эффектов ребра для замкнутых объектов. Эти эффекты происходят, когда BackFaceLighting
установлено в reverselit
пиксели вдоль ребра замкнутого объекта освещаются так, как если бы их вершинные нормали обращались к камере. Это создает неправильно освещенный пиксель, потому что пиксель видим, но действительно обращен от камеры.
Чтобы проиллюстрировать этот эффект, на следующем рисунке показан взрыв ребра освещенной сферы. Настройка BackFaceLighting
на lit
предотвращает неправильную подсветку пикселей.
Этот пример создает сферу и кубик и освещается затем двумя источниками света. Световые объекты расположены в бесконечности, но в направлениях, заданных их векторами положения.
% Create a sphere sphere(36); axis([-3 3 -3 3 -3 3]) hold on % Create a cube fac = [1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8]; vert = [1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2]; patch('faces',fac,'vertices',vert,'FaceColor','y'); % Add lights light('Position',[1 3 2]); light('Position',[-3 -1 3]); hold off
The light
функции задают два световых объекта, расположенных в бесконечности в направлении, заданном Position
векторы. Эти векторы заданы в координатах осей [x, y, z].