Характеристики коэффициента отражения графических объектов

Зеркальное и рассеянное отражение

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

Также смотрите команду material для удобного способа произвести определенные эффекты освещения.

Можно управлять объемом зеркального и рассеянного отражения от поверхности объекта путем установки свойств SpecularStrength и DiffuseStrength. Это изображение иллюстрирует различные настройки.

Рассеянный свет

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

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

Зеленый [0 1 0] рассеянный свет не влияет на сцену, потому что нет никакого красного компонента в зеленом свете. Однако цвет, заданный значениями RGB [.5 0 1], действительно имеет красный компонент, таким образом, он способствует свету на сфере (но меньше, чем белый [1 1 1] рассеянный свет).

SpecularExponent

Размер пятна зеркальной подсветки зависит от значения закрашенной фигуры и свойства 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].

Была ли эта тема полезной?