reckfellENGINE

Материалы и Shader Graph

VisualShader, выходы поверхности и материалы постобработки.

На этой странице

Материал, шейдер и граф

Материал назначает поверхности её параметры. ShaderMaterial использует текстовый Shader или визуальный VisualShader. Shader Graph создаёт шейдер, а не игровую логику; для поведения объектов используйте SharpGraph или C#.

Выбирайте назначение до создания графа: поверхность 3D, Canvas или собственный эффект постобработки. У них разные выходы и доступные данные. Профили постобработки применяют эффекты к изображению камеры, а обычный материал — к объекту.

Назначьте граф поверхности

  1. Выберите MeshInstance3D с видимым мешем.
  2. В нужном слоте материала создайте ShaderMaterial и назначьте ему VisualShader.
  3. Откройте ресурс шейдера. Для цвета поверхности используйте этап Fragment, а не Vertex.
  4. Подключите цветовую константу к Albedo выходного блока. Задайте шероховатость отдельным значением.
  5. Убедитесь, что материал назначен той поверхности, которую показывает камера.
  6. Сохраните шейдер и материал в проекте, затем проверьте объект в игре.

Несоединённый блок не меняет итоговый материал. Ошибка типов порта или компиляции может остановить построение нужного варианта шейдера; начните с одного корректного выхода.

Какие параметры использовать

ВходСмысл
AlbedoБазовый цвет поверхности
MetallicМеталлическое поведение материала
RoughnessШирина и характер блика
NormalНаправление нормали для освещения
EmissionСобственное излучение поверхности

Текстура albedo содержит цвет. Карта нормалей — данные направлений, её нужно импортировать соответствующим образом. Маски roughness/metallic также нельзя автоматически трактовать как цветную фотографию. Учитывайте UV и масштаб модели, прежде чем исправлять растяжение текстуры самим шейдером.

Emission может давать яркий пиксель и свечение при включённом Bloom, но не гарантирует освещение соседних объектов: перенос света зависит от используемого GI.

Сравните с текстовым шейдером

Минимальный текстовый материал с теми же основными параметрами:

Шейдер
shader_type spatial;

void fragment() {
    ALBEDO = vec3(0.18, 0.32, 0.40);
    METALLIC = 0.2;
    ROUGHNESS = 0.65;
}

Сохраните его как .rshader и назначьте ShaderMaterial. Это альтернативный ресурс, а не обещание обратного преобразования произвольного текста в визуальный граф.

Пользовательская постобработка

Полноэкранному эффекту нужен контекст камеры и подходящая точка включения. До тонального преобразования данные могут быть HDR; после него диапазон и смысл цвета отличаются. Для эффектов с глубиной или данными поверхности выберите этап, где эти входы доступны.

В Canvas нельзя запрашивать нормали, скорость объектов и глубину 3D как будто они всегда существуют. Проверяйте предупреждения доступности. Для собственного многошагового эффекта используйте именованные промежуточные текстуры и явные зависимости; не читайте выход, который ещё не сформирован.

ПроблемаПервая проверка
Объект не изменилсяМатериал назначен нужной поверхности; активен правильный ресурс
Граф есть, результата нетЭтап Fragment, соединение с Output, ошибки компиляции
Неверные бликиИмпорт normal/roughness, UV и освещение
Эффект отличается в игреКамера, рендерер, профиль и точка включения

API: VisualShader, ShaderMaterial.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.