Отображение рельефа со светлыми объектами

В этом примере показано, как создать светлый объект для имитации карты, произведенной в Цветном Поверхностном Затененном Рельефе, который использует затененные расчеты рельефа, а не световые объекты.

meshlsrm и surflsrm функции моделируют подсветку путем изменения палитры с полосами света и темноты. Затем матрица карты преобразуется в индексы для новой «затененной» палитры на основе вычисленных нормалей поверхности. Использование световых объектов позволяет получить широкую область значений подсветки эффектов. Тулбокс управляет световыми объектами с lightm функция, которая зависит от MATLAB® light функция. Источники света являются отдельными графическими объектами MATLAB.

Для получения дополнительной информации см. страницы с описанием для lightm, daspectm, material, lighting, и view, наряду с «Освещение», «Прозрачность» и «Затенение».

Освещение карты цвета 3-D рельефа световыми объектами

Добавьте источник света к окрашенной в поверхность сетке данных с помощью lightm. Во-первых, загрузите повышение данные и географические камеры ссылки объект для Корейского полуострова. Отображение данных без эффектов освещения с помощью meshm. Применить палитру, подходящую для данных о повышении, используя demcmap. Удалите дополнительное пустое пространство вокруг карты, используя tightmap.

load korea5c
axesm('miller','MapLatLimit',[30 45],'MapLonLimit',[115 135])
meshm(korea5c,korea5cR,size(korea5c),korea5c)
demcmap(korea5c)
tightmap

Figure contains an axes. The axes contains an object of type surface.

Разместите источник света в северо-западном углу сетки высотой в один градус, используя lightm. The lightm функция подобна функции MATLAB ® light, но принимает входы широты и долготы вместо x, y и z. Обратите внимание, что рисунок становится тёмный.

lightm(45,115,1)

Figure contains an axes. The axes contains an object of type surface.

Преувеличьте вертикальную размерность, чтобы сделать любой подрез видимым в перспективе. Обратите внимание, что рисунок становится тёмный все еще.

daspectm('meters',50)

Figure contains an axes. The axes contains an object of type surface.

Установите характеристики отражающей способности окружающей (прямой), рассеянной (skylight) и зеркальной (highlight) поверхностей, соответственно.

material([0.7 0.9 0.8])

Figure contains an axes. The axes contains an object of type surface.

По умолчанию подсветка плоское (плоские грани). Измените свет, чтобы использовать затенение Гуро (интерполированные нормальные векторы в углах граней).

lighting Gouraud

Figure contains an axes. The axes contains an object of type surface.

Удалите ребра ограничивающего прямоугольника. Измените вид, задав азимут -30 ° и высоту 30 °.

ax = gca;
ax.Box = 'off';
view(-30,30)

Figure contains an axes. The axes contains an object of type surface.

Если на текущей фигуре только один свет, можно удалить его с помощью clmo.

clmo(handlem('light'))

Figure contains an axes. The axes contains an object of type surface.