Lighting

Легкие схемы 3D графики

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Сводные данные значения

НаследованныйAutomatic, Explicit, или None

Графические примитивы

ОбъектыПодсветка значений по умолчанию
plot::Scene3dAutomatic

Описание

Lighting решает, что легкая схема раньше освещала 3D сцену.

С Lighting = Automatic по умолчанию, несколько источников света собираются автоматически осветить 3D сцену. Во-первых, существует окружающий белый свет типа plot::AmbientLight:

  • Световой сигнал 0: LightIntensity = 0.25, LightColor = RGB::White

Кроме того, существует 6 направленных световых сигналов типа plot::DistantLight с LightColor = RGB::White. Их направления даны можно следующим образом: Думайте о графической сцене, как масштабируемой к стандартному расширению поля от - от 1 до 1 в каждом координатном направлении. В этих масштабированных координатах направленные световые сигналы сияют в направления, данные следующим Target атрибуты:

Пользовательские световые сигналы в сцене проигнорированы с 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”, которая предоставляет информацию о максимальном количестве световых сигналов.

Примеры

Пример 1

В нашей первой сцене не заданы никакие световые сигналы. Настройка по умолчанию 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:

Смотрите также

Функции MuPAD

MuPAD графические примитивы