Как сделать голограмму в блендере

Обновлено: 14.05.2024

Шейдерные ноды (Shader Nodes) существенно расширяют возможности стандартных материалов Blender, позволяя представить освещение как серию базовых преобразований.

_images/node_materials_title.jpg

Стандартные ноды¶

Blend4Web поддерживает все стандартные ноды Blender, однако некоторые из них работают недостаточно быстро и не рекомендуются к использованию в приложениях реального времени. Не рекомендуется создавать сложные материалы, особенно использующие большое количество нод Geometry и Texture .

Движок также частично поддерживает некоторые ноды Cycles. Более подробно этот вопрос рассмотрен в соответствующей главе .

Производительность и степень поддержки движком стандартных нод описаны в таблице.

Используется для получения информации от активной камеры

Используется для генерации градиента

Типы интерполяции B-Spline , Cardinal и Ease не поддерживаются

Собирает цвет из заданных значений тона, насыщенности и яркости

Собирает цвет из заданных значений красного, зелёного и синего каналов

Подключает стандартный материал. Обладает большим количеством настроек по сравнению с нодой Material

Регулирует гамму заданного цвета

Используется для получения информации о геометрии объекта

Выход Vertex Alpha не поддерживается

Не рекомендуется использовать большое количество этих нод

Регулирует оттенок и насыщенность заданного цвета

Инвертирует заданный цвет

Используется для получения информации о заданном источнике света

Выход Shadow не поддерживается

Преобразует текстурные координаты

Используется для подключения стандартного материала

Производит математические операции с заданными значениями

Микширует два заданных цвета

Низкая в режимах Burn , Dodge , Value , Saturation , Hue и Color , высокая в остальных режимах

Генерирует нормальный вектор

Используется для подключения карты нормалей

Выводит результат работы нодового материала

Используется для получения информации о системе частиц

В материалах систем частиц типа Emitter

Генерирует цвет в формате RGB

Определяет кривую, по которой изменяется заданный цвет

Преобразует заданный цвет в формате RGB из цветного в чёрно-белый

Разделяет заданный цвет на тон, насыщенность и яркость

Разделяет заданный цвет на красный, зелёный и синий каналы

Сжимает заданное значение

Не рекомендуется использовать большое количество этих нод

Генерирует численное значение

Определяет кривую, по которой изменяется заданный вектор

Производит математические операции над двумя заданными векторами

Преобразует векторы, точки и нормали между пространствами координат мира, камеры и объекта.

Параметр Color Space карты нормалей, используемой с этой нодой, должен иметь значение Non-Color . В противном случае результаты могут быть непредсказуемыми (хотя это не приведёт к крэшу движка).

Если хотя бы один из внутренних параметров ( Space to convert from. или Space to convert to. ) имеет значение Object , любой объект, использующий данный материал, будет считаться динамическим .

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

Дополнительные ноды¶

Дополнительные ноды расширяют функционал стандартных с учётом специфики работы движка. Ноды оформляются в виде нодовых групп ( Node Groups или Node Tree ) со специально выбранным именем и форматом входов. Для удобства, все дополнительные ноды добавляются в blend-файл при его открытии.

_images/node_materials_nodes.jpg

Clamp (B4W_CLAMP)¶

Осуществить операцию ограничения над входом. В результате, все элементы вектора на выходе получают значения от 0 до 1 включительно.

_images/node_materials_clamp.jpg

Выходные параметры¶

Вектор после ограничения.

Glow Output (B4W_GLOW_OUTPUT)¶

Применяет эффект свечения (Glow) к нодовому материалу. Помимо ноды B4W_GLOW_OUTPUT в нодовом материале должна присутствовать нода Output.

_images/node_materials_glow_output.jpg

Степень свечения. Factor \(\in [0, 1]\) .

Factor = 0 - свечение отсутствует.

Factor \(\in (0, 1]\) - свечение цветом Glow Color.

Levels of Quality (B4W_LEVELS_OF_QUALITY)¶

Устанавливает значение выходного цвета в зависимости от установленного профиля качества изображения. Может применяться, например, для автоматической замены сложного материала более простым при запуске приложения на мобильном устройстве.

_images/node_materials_levels_of_quality.jpg

Значение, которое будет подано в выходной параметр Color при высоком и максимальном качестве изображения.

Значение, которое будет подано в выходной параметр Color при низком качестве изображения.

Значение, определяющее, какое из значений ( HIGH или LOW ) будет отображаться в Blender. Может принимать значения от 0 до 1. При значении параметра менее 0.5 будет виден вариант HIGH , при значении 0.5 и выше будет виден вариант LOW .

Parallax (B4W_PARALLAX)¶

Реализует смещение текстурных координат в соответствии с картой высот.

_images/node_materials_parallax.jpg

Исходные текстурные координаты.

RGBA текстура с картой высот в альфа канале.

Коэффициент смещения текстурных координат.

Количество шагов при генерации смещенных текстурных координат. Чем больше данное значение, тем выше качество получаемой текстуры.

Максимальное расстояние от камеры, на котором виден эффект.

Выходные параметры¶

Измененные текстурные координаты, которые используются как вход для текстурных нод.

Reflect (B4W_REFLECT)¶

Вычисляет отражение заданного вектора относительно заданной нормали. Может применяться для наложения кубической карты (cubemap) на объект.

_images/node_materials_reflect.jpg

Заданный вектор. Должен быть подключён ко входу View ноды Geometry .

Заданная нормаль. Для получения желаемого результата, вектор должен быть нормирован. Должен быть подключён ко входу Normal ноды Geometry .

Выходные параметры¶

Отражённый вектор. Следует подключать к входному параметру Vector ноды Texture , содержащего кубическую карту.

Refraction (B4W_REFRACTION)¶

Реализует эффект преломления. Этот эффект виден только в движке Blend4Web, но не в Blender.

_images/node_materials_refraction.jpg

Вектор нормали в пространстве камеры, по которому происходит возмущение (сдвиг).

Коэффициент возмущения (сдвига) текстуры сцены позади объекта.

Значение по умолчанию: 0.001.

Выходные параметры¶

Текстура сцены позади объекта с внесённым возмущением.

Для отображения эффекта необходимо переключить опцию Refractions на панели Render > Reflections and Refractions в состояние AUTO или ON . Объект должен быть с типом прозрачности Alpha Blend.

Replace (B4W_REPLACE)¶

Осуществляет замену входов в зависимости от того, в какой среде (viewport Blender’а или движок) в данный момент работает текущая сцена. При работе в Blender вход Color1 подключается к выходу Color , вход Color2 игнорируется. При работе в движке входы меняются местами ( Color1 игнорируется, Color2 подключается к выходу). Нода предназначена для отображения во viewport’e одной конструкции нодов, а в движке - другой.

_images/node_materials_replace.jpg

Используется, как правило, для подключения карт нормалей. Нодовые материалы Blender’а не поддерживают тангентное пространство координат, в связи с чем единственный способ корректного отображения карт нормалей во viewport’e - их подключение внутри нод Material .

Конструкция нод, видимая во вьюпорте Blender’а

Конструкция нод, видимая объекта в движке Blend4Web.

Выходные параметры¶

Следует подключать к выходу Color ноды Material или Extended Material .

Smoothstep (B4W_SMOOTHSTEP)¶

Осуществить мягкую интерполяцию двух значений, исходя из первого значения.

_images/node_materials_smoothstep.jpg

Значение, на основе которого осуществляется интерполяция.

Первое значениe для интерполяции.

Второе значениe для интерполяции.

Выходные параметры¶

Для корректной интерполяции входное значение Value должно лежать в диапазоне между Edge0 и Edge1 .

Time (B4W_TIME)¶

Осуществляет отсчет времени с момента старта движка в секундах. Может использоваться для анимации любых параметров в нодовых материалах - UV-координат, факторов смешивания, прозрачности и т.п.

_images/node_time.jpg

Выходные параметры¶

Время (в секундах), прошедшее с момента старта движка.

Translucency (B4W_TRANSLUCENCY)¶

Реализует эффект полупрозрачности (только по отношению к источникам света) для тонких объектов, таких как ткань, листва, бумага и др. Эффект состоит из двух частей: засвечивание обратной по отношению к источнику стороны объекта и появление светового пятна непосредственно в том месте, где должен был находится источник.

_images/node_materials_translucency.jpg

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

Коэффициент коррекции цвета материала на обратной от источника света стороне. Основан на визуальном эффекте большей насыщенности цвета при просвечивании.

Backside Factor 1 - коррекция в сторону затемнения

Значение по умолчанию: 1.

Коэффициент размытия светового пятна. При увеличении размеры пятна уменьшаются, края становятся более резкими. Значение по умолчанию: 1000.

Интенсивность светового пятна. При увеличении становится более ярким. Значение по умолчанию: 1.

Spot Diffuse Factor

Коэффициент влияния диффузного цвета материала на цвет светового пятна.

Spot Diffuse Factor = 0 - световое пятно имеет диффузный цвет

Spot Diffuse Factor = 1 - световое пятно имеет белый цвет

Значение по умолчанию: 1.

Выходные параметры¶

Выход должен быть подключен ко входу Translucency ноды Extended Material .

Возможно некорректное поведение ноды, если используются отредактированные нормали .

Vector View (B4W_VECTOR_VIEW)¶

Осуществить преобразование вектора в пространство камеры. Преобразование необходимо, поскольку при работе в движке большинство векторов определены в мировой системе координат (например нормали, направления источников освещения и т.д). Преобразованный таким образом вектор нормали используется только для различных эффектов и не должен подключаться к входу ноды Material или Extended Material .

_images/node_materials_vector_view.jpg

Вектор в мировой системе координат.

Выходные параметры¶

Вектор в системе координат камеры.

Linear to SRGB и SRGB to Linear (Deprecated)¶

Преобразование цвета из линейного цветового пространства в пространство sRGB и наоборот. Функционал объявлен устаревшим с версии 15.04. В более новых версиях для преобразования цвета из sRGB в линейное пространство следует использовать нативную ноду Gamma со значением 2.200, а для преобразования из линейного пространства в sRGB - ту же ноду со значением 0.455.

_images/node_materials_gamma.jpg

Ноды Сycles¶

Поддержка нод Cycles - экспериментальная возможность, которая на данный момент не рекомендуется к использованию при разработке серьёзных приложений.

Следует также заметить, что при использовании нод Cycles в Blend4Web конечный результат будет близок к изображению, созданному в самом Cycles, но всё же не идентичен ему.

Движок поддерживает следующие ноды Cycles :

Material Output (поддерживаются только входы Surface и Displacement );

BSDF Glossy (поддерживается только распределение GGX ; параметр Roughness не влияет на отражения);

Следующие ноды поддерживаются частично:

Texture Coordinates (параметр From Dupli не поддерживается);

UV Map (параметр From Dupli не поддерживается);

Geometry (параметры Pointness и Parametric не поддерживаются).

Emission (не влияет на освещённость сцены).

Ноды Cycles также поддерживаются для объекта World , однако на данный момент нодовые материалы не влияют на цвет окружающей среды.

Прочие ноды Cycles в большинстве случаев не будут работать в Blend4Web так же, как они работают в Blender. Кроме того, они могут не работать вообще или даже приводить к некорректной работе материала, в котором используются. Однако использование таких нод не вызовет нестабильности в работе приложения.

Ограничения¶

Нодовые материалы могут быть сложными, но их сложность ограничена возможностями системы, которую вы используете. Эти ограничения могут быть незаметны в большинстве случаев, однако если вы создаёте очень сложный материал, вы можете превысить количество текстур и переменных векторов (т.е., векторов, которые используются вершинным шейдером для передачи данных фрагментному шейдеру), которое система позволяет использовать в одном шейдере. Но даже если этого не произойдёт, некоторые пользователи могут запускать ваше приложение на менее мощных системах, чем ваша. В таких случаях чрезмерно сложные материалы могут вызывать проблемы в работе приложения.

Если вы хотите узнать, как ваша сцена поведёт себя на низкопроизводительном устройстве, но не располагаете таковым, вы можете использовать очень полезную опцию Min Capabilities Mode . Она находится в Просмотрщике сцен на панели Tools & Debug .

Количество текстур и переменных векторов, поддерживаемое вашей системой, можно узнать на веб-странице WebGL Report, перейти на которую можно с обзорной страницы SDK .

Ниже приводятся две таблицы, содержащие количество текстур и переменных векторов, выделяемых движком для различных нод материалов.

Переменные векторы

Нода/Эффект

Выделенные переменные векторы

Нода Input -> Texture (если используется выход Normal )

Нода Blend4Web -> Parallax

Нода Vector -> Normal Map

Нода Input -> Material (если для материала выставлена опция Shading -> Tangent Shading )

Нода Input -> Geometry (если используется выход UV )

Cycles-нода Input -> UV Map

Cycles-нода Input -> Texture Coordinate (если используется выход UV )

Нода Input -> Geometry (если используется выход Vertex Color )

Тени на объекте с Alpha Blend -материалом

(в зависимости от количества каскадов теней и источников света, генерирующих тени)

Введение в текстурирование

Звезда активна
Звезда активна
Звезда активна
Звезда активна
Звезда активна

Наверняка почти каждый знает как сделана бумажная коробка. Например если распечатать следующую картинку, вырезать, согнуть в нужных местах и склеить, то получится симпатичная подарочная коробочка.


Наш стандартный куб в Blender можно представить в виде этой самой коробочки и разобрать его в обратном порядке. Мы его разрежем, вернее сказать наметим те ребра, где Blender сам сделает разрезы, разогнет те ребра, где куб согнут и в итоге получим плоскую фигуру (как лист бумаги). Это называется UV развертка.

Итак открываем Blender, сцена по умолчанию, выделяем куб и переходим в режим редактирования и будем выделять ребра. Как раз те ребра, где нужно разрезать куб. Выделите ребра, указанные у меня на рисунке.



Самое главное это грамотно выбрать ребра, которые будут швами, поэкспериментируйте с другими ребрами и посмотрите на результаты.

Полученную развертку можно экспортировать во внешний файл, загрузить в графический редактор и там нарисовать текстуру. Для этого в заголовке окна UV/Image Editor в меню UVs выберите пункт Export UV Layout и сохраните файл. По умолчанию файл сохранится в растровом формате png , но можно выбрать и векторный формат в диалоговом окне сохранения.

Также рисованием текстуры можно заняться и в самом Blender. Это дает огромный плюс, ведь нарисовання текстура сразу отображается на объекте и вы моментально видите результат. Но ведь кто-то, например, шикарно управляется в фотошопе, поэтому рисование в Blender поможет сделать черновик текстуры (а затем в фотошопе уже доделать). Это мы сейчас и сделаем.

В окне UV/Image Editor нажмите кнопку New, появится всплывающее меню.


Name – имя новой текстуры. Назовите ее Num.

Width и Height – ширина и высота текстуры в пикселях. Для быстроты обработки текстуры эти числа должны быть одинаковыми и представлять собой степень двойки, т.е. 512 – это два в девятой степени (2 9 ), а 1024 = 2 10 и т.д.

Color – основной цвет текстуры. Выберите какой-нибудь, например, светло-зеленый.

Alpha – альфа-канал текстуры.

Generated Type:

Blank – создает чистую текстуру выбранного цвета.

UV Grid – создает текстуру с изображением черных и белых квадратиков чередующихся в шахматном порядке. Используется для настройки развертки объекта.

Color Grid – создает разноцветную текстуру.

Остановим свой выбор на чистой текстуре Blank и нажмите OK.


Включите в окне 3D вида метод отображения Rendered.


Как видите куб не стал зеленым, потому что ему еще не назначили материал. Сделаем это.

Выберите движок рендеринга Cycles.


Откройте где-нибудь окно Node Editor , в заголовке этого окна отметьте галочкой пункт Use Node. Это автоматически создаст материал для куба т.к. он выделен.


Далее работая в этом окне нажмите Shift+A и выберите нод Textures->ImageTexture. Свяжите его с имеющимся нодом Diffuse BSDF, нажмите на значок и выберите созданную нами текстуру Num.


Теперь наш куб окрасился в зеленый цвет и мы перейдем к рисованию текстуры в окне UV/Image Editor . Для этого в этом окне перейдите в режим рисования.



В данном режиме можно рисовать на самом объекте.

Теперь в окне UV/Image Editor перейдите обратно в режим View.



Т.к. картинка не соответствует необходимым параметрам, то развертка объекта немного исказилась. Не беда, можете как и обычно переместить вершины в нужные места и не забудьте в окне Node Editor в ноде Image Texture поменять текстуру на необходимую.


Ну вот самые минимальные знания по этой теме. Остальное будет встречаться в ходе выполнения других работ.

../../../_images/compositing_node-types_CompositorNodeValToRGB.jpg

Свойства

Контрол выбора цвета описан в разделе Color Ramp Widget .

Выходы

Стандартный выход изображения.

Стандартный выход альфа-канала.

Примеры

Создание маски альфа-канала

An often overlooked use case of the Color Ramp is to create an alpha mask, or a mask that is overlaid on top of another image. Such a mask allows you to select parts of the background to be shown through.

../../../_images/compositing_types_converter_color-ramp_create-alpha-mask.jpg

In the map above, a black-and-white swirl image, which is lacking an alpha channel, is fed into the Color Ramp node as a Factor.

The Color Ramp node is set to a purely transparent color on the left end of the gradient, and a fully red color on the right. As you can see in the Viewer node, the Color Ramp node puts out a mask that is fully transparent where the image is black. Black is zero, so Color Ramp outputs the color at the left end of the gradient, which is set to transparent. The Color Ramp image is fully red and opaque where the image is white (which is 1).

You can verify that the output image mask is indeed transparent by overlaying it on top of another image.

Раскрашивание изображения

In this example multiple colors are added to the color gradient converting a black-and-white image into a flaming swirl.

../../../_images/compositing_types_converter_color-ramp_colorizing-image.jpg

The shades of gray in the input image are mapped to three colors: blue, yellow, and red, all fully opaque (alpha of 1). Where the image is black, Color Ramp substitutes blue (the first color stop). Where it is some shade of gray, Color Ramp outputs a corresponding color from the gradient (bluish, yellow, to reddish). Where the image is fully white, the Color Ramp outputs red.

© Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License. Обновлено: 12/05/2021.

Это создаст ребро или несколько граней, в зависимости от вашего выделения. Смотреть также Создать Ребро/Грань.

Fill (Заполнение)¶

Опция Заполнить создаст треугольные грани из любой группы выбранных ребер или вершин, до тех пор пока они образуют один или более заполненных периметров.

../../../_images/Fill1.jpg

Замкнутый периметр ребер

../../../_images/Fill2.jpg

Заполненные с помощью сочетания клавиш [F]. Создан N-угольника

../../../_images/Fill3.jpg

Заполнено с помощью Заполнения [Alt][F]

обратите внимание, в отличие от создания N-угольников, заполнение отверстий поддерживается.

../../../_images/Fill1_holes.jpg

Замкнутый периметр ребер с отверстиями

../../../_images/Fill2_holes.jpg

Заполнено с помощью Заполнения [Alt][F]

Улучшить разбиение¶

Улучшить разбиение работает только на отдельных существующих гранях. Это перестановка выбранных треугольников, чтобы получить более “сбалансированные” те (т. е. менее длинные и тонкие треугольники).

../../../_images/mesh_beauty_fill_before.jpg

Текст, преобразованный в полисетку

../../../_images/mesh_beauty_fill_after.jpg

Результат Улучшить разбиение, Alt-Shift-F

Заполнить сеткой¶

Заполнить сеткой используется пара связанных петлей ребер, чтобы заполнить сетку, которая следует за окружающей геометрии.

Читайте также: