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: