reckfellENGINE

Shader

Ресурс программы шейдера и общих настроек.

На этой странице
class ShaderReckfellSharpНаследует Resource

У текстового Shader Code хранит исходный текст, а shader_type определяет режим и доступные этапы. GetMode не является проверкой компиляции. Shader может разделяться материалами; default-текстуры общие, а индивидуальные значения задаются на ShaderMaterial.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

ShaderКонструктор
# Shader
C#
public Shader();

Создаёт пустой текстовый Shader с режимом Spatial по умолчанию. Назначьте Code с shader_type перед использованием. GetMode у пустого ресурса не доказывает, что задан работоспособный шейдер.

Свойства1

CodeСвойство
# Code
C#
public string Code { get; set; }

Исходный текст shader-ресурса на shading language Reckfell. Указывает shader_type и функции стадий; это не C# и не полный OpenGL/Vulkan shader-файл. Чтение строки или GetMode не подтверждает успешную компиляцию: проверяйте диагностику и реальный кадр.

Методы9

GetCodestring
# GetCode
C#
public string GetCode();

Возвращает исходный текст шейдера с директивами препроцессора. Это не развёрнутый исходник backend и не байткод GPU.

Возвращает string

Исходный текст, присвоенный ресурсу Shader.

GetDefaultTextureParameterTexture
# GetDefaultTextureParameter
C#
public Texture GetDefaultTextureParameter(StringName name, int index = 0);

Читает текстуру по умолчанию, назначенную ресурсу Shader для имени и индекса. Это не значение конкретного ShaderMaterial и не встроенная fallback-текстура hint_default_white. Метод не подтверждает наличие uniform в текущем коде.

Параметры
ИмяТипПо умолчанию
nameStringName—
indexint0
name

Имя sampler uniform без префикса shader_parameter/.

index

Индекс элемента sampler-массива; для одиночного sampler обычно 0.

Возвращает Texture

Назначенный Texture либо null, если записи с данным именем/индексом нет.

GetModeShader.Mode
# GetMode
C#
public Shader.Mode GetMode();

Возвращает выбранный тип shader-ресурса: например Spatial для 3D, CanvasItem для 2D или Fog для объёмного тумана. Тип определяется по shader_type после preprocessing; сам результат не является проверкой отсутствия ошибок.

Возвращает Shader.Mode

Значение Shader.Mode. Для Terrain.reckfellshader с shader_type spatial проверено Spatial.

GetShaderUniformListReckfell.Collections.Array
# GetShaderUniformList
C#
public Reckfell.Collections.Array GetShaderUniformList(bool getGroups = false);

Возвращает метаданные обычных material uniform для проверки имён и типов. В текущем пути рендеринга instance/global uniform не входят в этот список; это не чтение текущих значений материала.

Параметры
ИмяТипПо умолчанию
getGroupsboolfalse
getGroups

Если true, включает записи групп и подгрупп. По умолчанию false: они пропускаются. Не считайте запись группы обычным uniform.

Возвращает Reckfell.Collections.Array

Array записей Dictionary с метаданными PropertyInfo, включая name и type. В примере имя читается через entry.AsReckfellDictionary()["name"].AsString(). Значения uniform читайте отдельно.

InspectNativeShaderCodevoid
# InspectNativeShaderCode
C#
public void InspectNativeShaderCode();

Запрашивает просмотр кода драйвера через отложенный вызов редакторского просмотрщика, если он доступен. Не возвращает строку и не заменяет GetCode: GetCode содержит текст ресурса, а не native-код. Не рассчитывайте на открытие окна в обычном игровом запуске без просмотрщика.

SetCodevoid
# SetCode
C#
public void SetCode(string code);

Заменяет исходник и запускает обработку директив и зависимостей include. Для относительных путей у ресурса без ResourcePath задайте SetIncludePath до этого вызова; смена исходника затрагивает материалы, использующие общий Shader.

Параметры
ИмяТипПо умолчанию
codestring—
code

Полный исходник языка шейдеров движка с подходящим shader_type, не произвольный raw GLSL compute.

SetDefaultTextureParameter2 перегрузки
# SetDefaultTextureParameter · 1/2
C#
public void SetDefaultTextureParameter(StringName name, Texture texture, int index = 0);

Назначает общую текстуру по умолчанию на Shader. Используется материалами без собственного значения. null снимает запись данного индекса, не переопределения материалов. Текущий GetShaderUniformList скрывает uniform при наличии хотя бы одного такого назначения. Для универсального Texture используйте соответствующую перегрузку.

Параметры
ИмяТипПо умолчанию
nameStringName—
textureTexture—
indexint0
name

Точное имя sampler uniform, например source_texture.

texture

Подходящая текстура или null для снятия назначения. Это настройка Shader, не отдельного материала.

index

Существующий элемент sampler-массива; 0 для обычного sampler.

# SetDefaultTextureParameter · 2/2
C#
public void SetDefaultTextureParameter(StringName name, Texture2D texture, int index);

Вариант назначения общей текстуры с параметром Texture2D; передаёт её в ту же реализацию. Используется материалами без собственного значения. null снимает запись данного индекса, не переопределения материалов. Текущий GetShaderUniformList скрывает uniform при наличии хотя бы одного такого назначения. Для универсального Texture используйте соответствующую перегрузку.

Параметры
ИмяТипПо умолчанию
nameStringName—
textureTexture2D—
indexint—
name

Точное имя sampler uniform, например source_texture.

texture

Подходящая текстура или null для снятия назначения. Это настройка Shader, не отдельного материала.

index

Существующий элемент sampler-массива; 0 для обычного sampler.

SetIncludePathvoid
# SetIncludePath
C#
public void SetIncludePath(string path);

Задаёт запасное имя базового файла для разрешения относительных include, если у Shader ещё нет ResourcePath. Передайте полный путь файла до SetCode; этот вызов сам не пересобирает исходник.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Полный базовый путь файла шейдера, например asset://effects/Main.reckfellshader, не только папка.

Shader.Mode

ЗначениеОписание
CanvasItem = 1

Режим, используемый для рисования всех 2D-объектов.

Fog = 4

Режим, используемый для настройки цвета и плотности эффекта объемного тумана.

Particles = 2

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

Sky = 3

Режим, используемый для рисования неба. Работает только с шейдерами, прикрепленными к объектам Sky.

Spatial = 0

Режим, используемый для отрисовки всех 3D-объектов.

TextureBlit = 5

Режим используется для прорисовки ресурсов DrawableTexture с помощью blit вызовов.

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

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

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

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