Можно задать характеристики коэффициента отражения закрашенной фигуры и объектов подложки и таким образом влиять на способ, которым они смотрят, когда световые сигналы применяются к сцене. Вероятно, что вы настроите эти характеристики в комбинации, чтобы привести к конкретным результатам.
Также смотрите
команду 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
Функции light
задают два световых объекта, расположенные в бесконечности в направлении, заданном векторами Position
. Эти векторы заданы в координатах осей [x, y, z].