reckfellENGINE

ShaderMaterial

Материал с Shader и собственными значениями параметров.

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

Ссылается на Shader без автоматического клонирования. Разные ShaderMaterial могут использовать одну программу с независимыми параметрами; один общий ShaderMaterial разделяет значения у потребителей. Место назначения должно соответствовать shader_type.

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

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

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

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

Свойства1

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

Shader, используемый материалом. Несколько материалов могут ссылаться на один Shader, сохраняя разные обычные uniform. Несколько мешей с одним ShaderMaterial делят его параметры; для независимых значений нужен отдельный материал либо instance uniform.

Методы4

GetShaderShader
# GetShader
C#
public Shader GetShader();

Возвращает назначенный общий ресурс Shader, не его копию. До назначения ресурс может отсутствовать.

Возвращает Shader

Назначенный Shader или null, если он не задан.

GetShaderParameterVariant
# GetShaderParameter
C#
public Variant GetShaderParameter(StringName param);

Читает значение, явно сохранённое в ShaderMaterial. Если override отсутствует, возвращает Nil, даже когда shader-код задаёт default и поверхность использует его. Не используйте результат как полную проверку shader-кода или поддержку опечатанного имени.

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

Точное имя параметра с учётом регистра. height_scale и Height_scale — разные ключи.

Возвращает Variant

Сохранённый Variant или Nil при отсутствии override. В проверенном примере height_scale сначала Nil, хотя shader-default 0.9 создаёт видимый рельеф.

SetShadervoid
# SetShader
C#
public void SetShader(Shader shader);

Назначает ресурс Shader материалу без клонирования. Несколько материалов могут разделять код шейдера, сохраняя собственные значения uniform.

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

Ресурс Shader подходящего типа для рисуемого объекта.

SetShaderParametervoid
# SetShaderParameter
C#
public void SetShaderParameter(StringName param, Variant value);

Записывает обычный uniform этого материала по точному имени с учётом регистра. Изменение видно всем его пользователям. Nil удаляет override и возвращает shader-default. Метод может сохранить неизвестное имя: успешное чтение назад не доказывает, что uniform объявлен и влияет на кадр.

Параметры
ИмяТипПо умолчанию
paramStringName—
valueVariant—
param

Имя обычного uniform, например height_scale. Для instance uniform используйте GeometryInstance3D.SetInstanceShaderParameter. Проверяйте имя через Shader.GetShaderUniformList.

value

Variant подходящего shader-типу значения; для sampler2D передайте Texture2D. default(Variant) задаёт Nil и снимает override, а не назначает число 0.

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

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

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

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