Перейти к основному содержимому

Ноды шейдеров

Нод: 95, категорий: 7. Из них собирают материалы. Как ими пользоваться, рассказано на странице Графы материалов.

У входов и выходов один из четырёх типов: float — одно число, а vec2, vec3 и vec4 — два, три и четыре числа. В vec3 хранится цвет или направление. Если соединить порты разного размера, это обработается само там, где это имеет смысл.

const​

Фиксированные значения, которые вы вводите сами.

НодаЧто делаетВходыВыходы
constFloatФиксированное число.—out:float
constVec3Три фиксированных числа.—out:vec3

input​

Исходные значения: текстурные координаты (UV), нормаль поверхности, время, текстуры и то, какая копия объекта сейчас рисуется.

НодаЧто делаетВходыВыходы
cameraDistanceКак далеко этот пиксель от камеры. Подходит, чтобы что-то растворялось с расстоянием.—out:float
chromaKey — Chroma keyУбирает цвет, например чтобы сделать зелёный фон прозрачным.color:vec3, key:vec3, similarity:float, smoothness:float, spill:floatrgba:vec4
instanceColor — Instance ColorОттенок копии, которая сейчас рисуется.—out:vec3
instanceId — Instance IDКакая копия объекта сейчас рисуется. Передайте его в хеш, чтобы все копии стали разными.—out:float
materialRef — MaterialБерёт другой материал за основу.—out:vec3
normalКуда смотрит поверхность.—out:vec3
normalMapПрименяет карту нормалей и добавляет детали поверхности без лишней геометрии.uv:vec2, strength:floatout:vec3
paramColor — Param (color)Цвет, который виден в настройках материала. Его можно менять, не трогая граф.—out:vec3
paramFloat — Param (float)Число, которое видно в настройках материала. Его можно менять, не трогая граф.—out:float
positionТочка на поверхности в собственных координатах объекта.—out:vec3
sampleLod — Sample Texture LODЧитает изображение с выбранной степенью размытия. Простой способ его смягчить.uv:vec2, lod:floatrgba:vec4
screenUvГде пиксель находится на экране, а не на поверхности.—out:vec2
texelFetch — Texel FetchЧитает ровно один пиксель, без сглаживания.texel:vec2rgba:vec4
texelSize — Texture SizeРазмер одного пикселя текстуры — для эффектов, которые читают соседние пиксели.—size:vec2, texel:vec2
textureЧитает изображение в заданных координатах.uv:vec2rgba:vec4
timeСекунды с запуска сцены. Подходит для всего, что движется.—out:float
triplanarНакладывает текстуру сразу с трёх сторон, чтобы правильно выглядели формы без текстурных координат или с растянутыми координатами.scale:float, blend:floatrgba:vec4
uvТекстурные координаты пикселя, который сейчас рисуется. С них начинается большинство узоров.—out:vec2
viewDirectionНаправление от поверхности к камере.—out:vec3
worldPositionТа же точка в мировых координатах. Подходит для эффектов, которые остаются на месте, когда объект движется.—out:vec3

light​

Освещение, которое можно настроить самому.

НодаЧто делаетВходыВыходы
fresnelСильнее по краям, где поверхность отворачивается. Подходит для контурного света, силовых полей или блеска на машине.power:float, normal:vec3out:float
lit — Lit (scene lights)Стандартное освещение, чтобы свой граф всё равно вписывался в сцену.color:vec3, roughness:float, specular:float, normal:vec3out:vec3
toonLit — Toon (scene lights)Освещение полосами для мультяшного вида.color:vec3, steps:float, normal:vec3out:vec3

math​

Вычисления с отдельными числами.

НодаЧто делаетВходыВыходы
absУбирает знак минус.x:floatout:float
addСкладывает.a:float, b:floatout:float
atan2Угол до точки. Подходит для круговых (радиальных) узоров.y:float, x:floatout:float
ceilОкругляет вверх.x:floatout:float
clampНе даёт значению выйти за пределы диапазона.x:float, min:float, max:floatout:float
cosКосинус.x:floatout:float
divideДелит.a:float, b:floatout:float
expe в степени входа.x:floatout:float
fbmШум в несколько слоёв — для облаков, дыма, ржавчины и рельефа.uv:vec2, scale:float, octaves:floatout:float
floorОкругляет вниз.x:floatout:float
fractОставляет только часть после запятой. Обычный способ сделать узор повторяющимся.x:floatout:float
logНатуральный логарифм.x:floatout:float
maxБольшее из двух.a:float, b:floatout:float
minМеньшее из двух.a:float, b:floatout:float
mixСмешивает два значения.a:float, b:float, t:floatout:float
modОстаток от деления. Ещё один способ пустить значение по кругу.x:float, y:floatout:float
multiplyУмножает.a:float, b:floatout:float
noiseПлавные случайные значения. Начните с неё для всего, что должно выглядеть естественно.uv:vec2, scale:floatout:float
oneMinusПереворачивает значение от 0 до 1: 0 становится 1, а 1 становится 0.x:floatout:float
posterizeСводит значения к заданному числу ступеней, чтобы получились полосы.x:float, steps:floatout:float
powВозводит в степень.x:float, e:floatout:float
remapПереводит значение из одного диапазона в другой.x:float, inMin:float, inMax:float, outMin:float, outMax:floatout:float
roundОкругляет до ближайшего.x:floatout:float
signДаёт −1, 0 или 1.x:floatout:float
sinСинус. Подходит для покачиваний, пульсации и ряби.x:floatout:float
smoothstepМягкая граница с плавным переходом между двумя порогами. Одна из самых нужных нод.from:float, to:float, x:floatout:float
sqrtКвадратный корень.x:floatout:float
stepРезкая граница: ниже порога 0, выше — 1.edge:float, x:floatout:float
subtractВычитает.a:float, b:floatout:float
tanТангенс.x:floatout:float
voronoiУзор из ячеек — для чешуи, потрескавшейся земли и витража.uv:vec2, scale:floatdist:float, cell:float

output​

Где граф заканчивается: как в итоге выглядит поверхность.

НодаЧто делаетВходыВыходы
mrtOutput — Output (MRT)Записывает несколько выходов сразу, для сложных схем.color:vec3, alpha:float, color1:vec3, alpha1:float, color2:vec3, alpha2:float, color3:vec3, alpha3:float—
outputГде граф заканчивается: итоговый вид поверхности.color:vec3, alpha:float, offset:vec3—
surfaceOutput — Output (surface)Описывает поверхность: основной цвет, металличность, шероховатость, нормаль, свечение и прозрачность.baseColor:vec3, metallic:float, roughness:float, emissive:vec3, normal:vec3, alpha:float, offset:vec3, clearcoat:float, clearcoatRoughness:float, ior:float, transmission:float, thickness:float—

post​

Ноды, которые читают готовый кадр. Если использовать такую ноду, граф станет эффектом на весь экран, а не материалом поверхности.

НодаЧто делаетВходыВыходы
chromaticAberrationРазводит цветовые каналы по краям, как настоящий объектив.uv:vec2, amount:floatout:vec3
contrastДелает светлое светлее, а тёмное темнее.color:vec3, amount:floatout:vec3
exposureДелает всё изображение светлее или темнее.color:vec3, amount:floatout:vec3
grainДобавляет плёночное зерно.color:vec3, intensity:floatout:vec3
invertИнвертирует цвета изображения.color:vec3out:vec3
saturationДелает цвета ярче или бледнее.color:vec3, amount:floatout:vec3
screenColorСцена в том виде, в каком она уже нарисована. С этой нодой граф становится эффектом на весь экран.—out:vec3
tintСдвигает изображение к заданному цвету.color:vec3, tint:vec3out:vec3
vignetteЗатемняет края кадра.color:vec3, offset:float, darkness:floatout:vec3

vector​

Собрать, разобрать и изменить векторы и цвета.

НодаЧто делаетВходыВыходы
addVec3Складывает два вектора из трёх чисел.a:vec3, b:vec3out:vec3
alphaДостаёт канал прозрачности.v:vec4out:float
combineVec2Собирает вектор из двух чисел.x:float, y:floatout:vec2
combineVec3Собирает вектор из трёх чисел.r:float, g:float, b:floatout:vec3
combineVec4Собирает вектор из четырёх чисел.rgb:vec3, a:floatout:vec4
crossНаправление под прямым углом к обоим.a:vec3, b:vec3out:vec3
distanceРасстояние между двумя точками.a:vec3, b:vec3out:float
dotСкалярное произведение: насколько совпадают два направления.a:vec3, b:vec3out:float
equirectUv — Equirect UVПереводит направление в точку на панорамном изображении.dir:vec3uv:vec2
flipbook — FlipbookПроигрывает как анимацию сетку кадров, собранную в одном изображении.uv:vec2, frame:float, tilesX:float, tilesY:floatuv:vec2
gammaПрименяет гамма-кривую.rgb:vec3, gamma:floatout:vec3
hsvToRgbСобирает цвет обратно из тона, насыщенности и яркости.hsv:vec3out:vec3
hueToRgbПревращает тон сразу в цвет.h:floatout:vec3
lengthДлина вектора.v:vec3out:float
luminanceНасколько ярким цвет кажется глазу.rgb:vec3out:float
mixVec3Смешивает два вектора из трёх чисел.a:vec3, b:vec3, t:floatout:vec3
multiplyVec3Умножает два вектора из трёх чисел.a:vec3, b:vec3out:vec3
normalizeСохраняет направление и делает длину равной 1.v:vec3out:vec3
pannerСдвигает координаты со временем — для текущей воды, конвейерных лент или энергетических лучей.uv:vec2, speed:vec2out:vec2
reflectОтражает направление от поверхности.v:vec3, normal:vec3out:vec3
rgbСобирает цвет из трёх чисел.v:vec4out:vec3
rgbToHsvРаскладывает цвет на тон, насыщенность и яркость. Так проще всего сдвинуть тон.rgb:vec3out:vec3
scaleVec2Умножает вектор из двух чисел на число.v:vec2, s:floatout:vec2
scaleVec3Умножает вектор из трёх чисел на число.v:vec3, s:floatout:vec3
splitVec2Разделяет два числа.v:vec2x:float, y:float
splitVec3Разделяет три числа.v:vec3x:float, y:float, z:float
uvTransformМасштабирует, поворачивает и сдвигает координаты, прежде чем читать изображение.uv:vec2, tiling:vec2, offset:vec2, rotation:float, center:vec2out:vec2