LightingЛегкие схемы 3D графики
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
| Наследованный | Automatic, Explicit, или None |
| Объекты | Подсветка значений по умолчанию |
|---|---|
plot::Scene3d | Automatic |
Lighting решает, что легкая схема раньше освещала 3D сцену.
С Lighting = Automatic по умолчанию, несколько источников света собираются автоматически осветить 3D сцену. Во-первых, существует окружающий белый свет типа plot::AmbientLight:
Световой сигнал 0: LightIntensity = 0.25, LightColor = RGB::White
Кроме того, существует 6 направленных световых сигналов типа plot::DistantLight с LightColor = RGB::White. Их направления даны можно следующим образом: Думайте о графической сцене, как масштабируемой к стандартному расширению поля от - от 1 до 1 в каждом координатном направлении. В этих масштабированных координатах направленные световые сигналы сияют в направления, данные следующим Target атрибуты:
Световой сигнал 1: Target= [-5, -6, -8] , LightIntensity= 0.50 ,
Световой сигнал 2: Target= [ 5, 6, 8] , LightIntensity= 0.60 ,
Световой сигнал 3: Target= [ 5, -6, -8] , LightIntensity= 0.20 ,
Световой сигнал 4: Target= [-5, 6, 8] , LightIntensity= 0.25 ,
Световой сигнал 5: Target= [-5, 6, -8] , LightIntensity= 0.20 ,
Световой сигнал 6: Target= [ 5, -6, 8] , LightIntensity= 0.25 .
Пользовательские световые сигналы в сцене проигнорированы с Lighting = Automatic.
С Lighting = Explicit, источники света установлены через Lighting = Automatic выключены и включаются пользовательские источники света.
plot команда ищет световые объекты, установленные пользователем. Если Lighting не задан и любой вид пользовательского светового объекта найден в сцене, Lighting = Explicit установлен автоматически.
Переключение между Lighting = Automatic и Lighting = Explicit в инспекторе можно легко сравнить эффект автоматических световых сигналов с эффектом из единиц собственные световые сигналы.
С Lighting = None, 3D алгоритм штриховки на основе отражений света, излучаемого от источников света в графической сцене, выключен. Это не означает, что графическая сцена становится черной: все объекты окрашены цветом, с которым они заданы. Однако сцена будет казаться плоской, потому что глубина 3D сцены создается через штриховку, вызванную различными отражениями света в различных точках сцены.
Максимальное количество световых сигналов, которые могут использоваться, чтобы осветить 3D сцену, зависит от драйвера OpenGL®, установленного на компьютере.
Некоторые драйверы OpenGL не позволяют больше чем 6 источников света. Если существует больше источников света в сцене, избыточные световые сигналы проигнорированы. Световые сигналы, которые выключены через Visible = FALSE не считаются.
После активации 3D графика (путем нажатия на него), меню “Help” содержит элемент “Информация о OpenGL”, которая предоставляет информацию о максимальном количестве световых сигналов.
В нашей первой сцене не заданы никакие световые сигналы. Настройка по умолчанию Lighting = Automatic используется:
f := plot::Function3d(sin(x^2 + y^2), x = -2..2, y = -2..2): plot(f):

При определении Lighting = Explicit, световые сигналы, установленные пользователем, используются. Поскольку сцена не содержит световых сигналов, сцена становится темной:
plot(f, Lighting = Explicit):

Световые сигналы заданы в следующей сцене. Установка Lighting = Explicit используется автоматически:
Light0 := plot::AmbientLight(0.25): Light1 := plot::DistantLight([ 1, 0, 1], [0, 0, 0], 0.3): Light2 := plot::DistantLight([-1, 0, 1], [0, 0, 0], 0.3): Light3 := plot::DistantLight([ 0, 1, 1], [0, 0, 0], 0.3): Light4 := plot::DistantLight([ 0, -1, 1], [0, 0, 0], 0.3): plot(f, Light0, Light1, Light2, Light3, Light4):

Мы выключаем линии параметра:
plot(f, Light0, Light1, Light2, Light3, Light4,
XLinesVisible = FALSE, YLinesVisible = FALSE,
Axes = None):
В следующей сцене 3D модель штриховки выключена через Lighting = None:
plot(f, Lighting = None):

В предыдущем изображении поле осей и линии mesh включаются и создают определенный 3D эффект. После выключения поля и линий mesh, сцена кажется плоской, когда представлено без штриховки:
plot(f, Lighting = None, Axes = None,
XLinesVisible = FALSE, YLinesVisible = FALSE):
delete f, Light0, Light1, Light2, Light3, Light4: