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: