Новое:Talanto осенью: фильтры с числами, отклик по шагам и каталог компаний

+1 199новых вакансий за сутки·93 838вакансий открыто сейчас·Новое:Talanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании7 273
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: фильтры с числами, отклик по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 409 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python17 222
  • Облачные технологии14 171
  • QA вакансии3 456
  • Backend вакансии2 114
  • Инженер данных1 801
  • Продакт-менеджер1 247

Разработка

  • Android1 858
  • iOS1 698
  • Fullstack вакансии997
  • AI вакансии955
  • Frontend вакансии755
  • Mobile вакансии44

По стеку

  • Go8 752
  • Java6 593
  • Node.js2 036
  • .NET1 739
  • Kotlin1 618
  • Rust1 472
  • C#717
  • PHP690
  • C++579

DevOps и инфраструктура

  • Kubernetes7 787
  • DevOps вакансии6 095
  • Linux-инфраструктура5 508
  • Terraform / IaC4 287
  • CI/CD3 272
  • Мониторинг и Observability1 792
  • SRE566
  • Кибербезопасность454

Аналитика и данные

  • Data Scientist1 138
  • Бизнес-аналитик921
  • Аналитик данных858
  • Системный аналитик154

Другие направления

  • Проджект-менеджер624
  • UI/UX дизайн149
  • Ручное тестирование14

По регионам

  • Вакансии в США44 166
  • Вакансии в Европе24 014
  • Вакансии в Канаде4 535
  • Работа в России3 867

По формату

  • Удалённые вакансии75 005
  • Релокация в США44 166
  • Гибридная работа12 485
  • Офисная работа7 090

По уровню

  • Senior вакансии42 643
  • Middle вакансии20 960
  • Junior вакансии6 708

Сейчас нанимают

Все компании
  • Wise190 вакансий
  • Rakuten189 вакансий
  • ASML166 вакансий
  • Grab137 вакансий
  • Celonis38 вакансий
  • Spotify37 вакансий
  • Adyen29 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме Unreal EngineВсе вопросы
Unreal EngineMiddleТеория

Что такое Material Graph и как работает PBR-модель материалов?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Material Graph — нод-ориентированный редактор шейдеров в UE. PBR-модель описывает материал через Base Color, Metallic, Roughness, Normal и Specular; движок использует Disney-based physically based модель для корректного расчёта освещения.

Типичная структура графа (горная порода)

// Псевдокод порядка нод в Material Graph

// 1. Текстуры
TextureSample(T_Rock_BaseColor)  --> Base Color
TextureSample(T_Rock_Normal)     --> Normal (через UnpackNormalMap)
TextureSample(T_Rock_ORM)        // ORM-атлас
  .R --> Ambient Occlusion
  .G --> Roughness
  .B --> Metallic

// 2. Параметры (для Material Instances)
ScalarParameter("RoughnessMultiplier", 1.0) * Roughness --> Roughness
VectorParameter("Tint", 1,1,1) * Base Color            --> Base Color

Material Graph: общая концепция

Material Graph — визуальный редактор шейдеров в Unreal Engine. Каждый материал компилируется в HLSL-шейдер; граф — это лишь удобный способ собрать математику без ручного написания кода. Конечный результат подаётся на входы Material Output Node, который имеет слоты для всех PBR-параметров.

PBR-модель Unreal Engine

UE использует Disney Principled BRDF (адаптированный Epic): физически корректную модель отражения, где свет вычисляется через уравнение рендеринга с разделением на диффузный (Lambertian) и зеркальный (GGX Trowbridge-Reitz) компоненты.

Основные входы Material Output Node

  • Base Color (RGB, 0–1) — альбедо поверхности. Для диэлектриков: цвет материала (дерево, камень, кожа). Для металлов: цвет отражения. Не должен содержать информацию об освещении.
  • Metallic (0 или 1, бинарный) — 0 = диэлектрик, 1 = металл. Промежуточные значения допустимы только для смешанных поверхностей (ржавчина, окалина).
  • Roughness (0–1) — микрорельеф поверхности. 0 = идеальное зеркало, 1 = матовая диффузная поверхность. Управляет шириной зеркального блика через параметр α = Roughness².
  • Specular (0–1, по умолчанию 0.5) — F0 диэлектрика (индекс преломления). Менять нужно редко: 0.5 = ~4% отражения, что соответствует большинству пластиков/камней.
  • Normal (RGB, tangent-space) — карта нормалей для микродетализации без добавления геометрии. Подаётся через ноду Texture Sample + Normal Map.
  • Emissive Color (RGB, HDR) — самосвечение. При включённом Lumen становится источником GI.
  • Ambient Occlusion (0–1) — затенение впадин; умножается на диффузный вклад.
  • Opacity / Opacity Mask — прозрачность (только для Translucent/Masked Blend Mode).

Material Instances и параметры

Вместо создания N копий материала создаётся один Master Material с нодами ScalarParameter и VectorParameter, а затем дочерние Material Instances, которые переопределяют только параметры. Это исключает перекомпиляцию шейдера при смене значений.

// Смена параметра Material Instance в C++
UMaterialInstanceDynamic* MID =
    UMaterialInstanceDynamic::Create(BaseMaterial, this);
MeshComponent->SetMaterial(0, MID);
MID->SetScalarParameterValue(TEXT("Roughness"), 0.3f);
MID->SetVectorParameterValue(TEXT("Tint"), FLinearColor(1, 0.5f, 0));

Blend Mode и Shading Model

  • Opaque — непрозрачный, самый дешёвый. Участвует в Lumen GI.
  • Masked — бинарная прозрачность по Opacity Mask; подходит для листвы, решёток.
  • Translucent — полупрозрачность; не поддерживает Deferred Lighting без специальных настроек.
  • Shading Model: Default Lit, Unlit, Subsurface (кожа, воск), Clear Coat (лак), Hair, Eye — выбирается в свойствах материала.

Подводные камни

  • Base Color не должен содержать тени — запечённые тени в текстуре нарушают физическую корректность и конфликтуют с динамическим GI (Lumen/SSGI).
  • Metallic = 0.5 (серый) в большинстве случаев физически некорректен — используйте маску ржавчины/перехода, а не промежуточное значение для всей поверхности.
  • Нода Texture Sample без явного указания Sampler Type (Color/LinearColor/Normal) может дать неправильную гамма-коррекцию. Карты Normal/ORM/Roughness должны быть LinearColor (без sRGB).
  • Слишком тёмный Base Color для металлов (ниже 50–70 sRGB) нарушает уравнение Fresnel и даёт неправдоподобно поглощающий металл.
  • Emissive Color без ограничения: значения выше 1 правильные для HDR, но без Bloom и Exposure Compensation выглядят как белые пятна — всегда проверяйте в Scene с Tone Mapping.
  • Material с Translucent Blend Mode по умолчанию не получает GI от Lumen — нужно включить Translucency Type = Ray Tracing в свойствах материала (только HWRT).
  • Избыточное количество нод Texture Sample увеличивает число samplers; лимит на DX11 — 16 на шейдер. Используйте ORM-упаковку (O=R, G=Roughness, B=Metallic) вместо трёх отдельных текстур.
  • Изменение Blend Mode или Shading Model в Master Material перекомпилирует все дочерние Material Instances — делайте это на ранних этапах разработки.

Частые вопросы на собеседовании

  • В каких проектах Unreal Engine оправдан, а где он становится источником лишней сложности?
  • Что такое макросы UPROPERTY и UFUNCTION и какие параметры они поддерживают?
  • Что такое сборщик мусора (garbage collector) в Unreal Engine и как предотвратить уничтожение объектов?
  • В чём разница между GameMode, GameState, PlayerController и PlayerState?

Типичные ошибки

  • Объяснять Material Graph и PBR только по синтаксису, без жизненного цикла и стоимости.
  • Игнорировать ошибки, null/empty состояния, порядок инициализации или режим сборки.
  • Давать пример, который работает в демо, но ломается при изменении владельца ресурса.
  • Использовать макросы или specifier-и наугад и забывать про UObject GC.

Что проверяет интервьюер

  • Кандидат формулирует точную модель для Material Graph и PBR, а не только определение.
  • Пример компилируем, безопасен по lifetime и соответствует версии технологии.
  • Названы trade-off, ограничения и диагностируемые симптомы ошибки.
  • Понимает границу между C++ кодом, runtime/framework metadata и editor/UI слоем.

Как вы знаете этот вопрос?

Проверить себя по теме Unreal Engine →

Источники

  • https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-materials

Связанные темы

Unreal Engineasset-pipelinegameplay-architectureperformance-debugging