reckfellENGINE

RDShaderSource

Исходный код отдельных этапов шейдера для RenderingDevice.

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

RDShaderSource хранит строки исходного кода и выбранный язык. Для compute задайте SourceCompute и явно вызовите ShaderCompileSpirVFromSource; строка ещё не является скомпилированным GPU-ресурсом. GLSL — язык по умолчанию.

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

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

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

Создаёт объект с пустыми строками всех десяти стадий и Language=Glsl. Не запускает компилятор и не создаёт GPU shader. Перед компиляцией задайте исходник хотя бы нужной стадии; пустые стадии пропускаются.

Свойства11

LanguageСвойство
# Language
C#
public RenderingDevice.ShaderLanguage Language { get; set; }

Язык исходных строк, изначально ShaderLanguage.Glsl. Setter не переводит текст и не компилирует его. В текущем ShaderCompileSpirVFromSource реализована ветка GLSL при наличии glslang; наличие enum Hlsl не означает поддержку компиляции HLSL этим путём.

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

Исходный текст стадии any-hit: обработка кандидата пересечения, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.AnyHit). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный текст стадии closest-hit: обработка ближайшего пересечения, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.ClosestHit). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный код compute-этапа. Для GLSL передавайте #version и код ядра без маркера импорта #[compute]; присваивание строки ещё не компилирует шейдер.

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

Исходный текст стадии fragment: выход фрагмента, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.Fragment). Это отдельная стадия, а не файл со всеми секциями. Отдельно вызывайте ShaderCompileSpirVFromSource; setter не создаёт GPU shader.

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

Исходный текст стадии intersection: пользовательское пересечение процедурной геометрии, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.Intersection). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный текст стадии miss: обработка луча без попадания, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.Miss). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный текст стадии ray generation: запуск лучей, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.Raygen). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный текст стадии tessellation control: управление patch, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.TesselationControl). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный текст стадии tessellation evaluation: вычисление tessellated patch, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.TesselationEvaluation). Это отдельная стадия, а не файл со всеми секциями. Хранение этой строки проверено, но tessellation/ray compilation и исполнение не проверялись.

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

Исходный текст стадии vertex: обработка вершин, изначально пустой. Getter/Setter используют тот же слот, что GetStageSource/SetStageSource(ShaderStage.Vertex). Это отдельная стадия, а не файл со всеми секциями. Отдельно вызывайте ShaderCompileSpirVFromSource; setter не создаёт GPU shader.

Методы4

GetLanguageRenderingDevice.ShaderLanguage
# GetLanguage
C#
public RenderingDevice.ShaderLanguage GetLanguage();

Возвращает сохранённый Language, изначально Glsl. Значение не проверяет наличие backend компилятора и не подтверждает, что исходник написан на этом языке.

Возвращает RenderingDevice.ShaderLanguage

Сохранённый ShaderLanguage, изначально Glsl; не проверка поддержки языка.

GetStageSourcestring
# GetStageSource
C#
public string GetStageSource(RenderingDevice.ShaderStage stage);

Возвращает сохранённый текст одной стадии, изначально пустой. Эквивалентен getter соответствующего Source-поля; не читает файл и не возвращает сгенерированный SPIR-V. Используйте индекс ShaderStage, а не значение …Bit.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

Возвращает string

Сохранённая строка выбранной стадии; пустая, если её текст не задан.

SetLanguagevoid
# SetLanguage
C#
public void SetLanguage(RenderingDevice.ShaderLanguage language);

Язык исходных строк, изначально ShaderLanguage.Glsl. Setter не переводит текст и не компилирует его. В текущем ShaderCompileSpirVFromSource реализована ветка GLSL при наличии glslang; наличие enum Hlsl не означает поддержку компиляции HLSL этим путём.

Параметры
ИмяТипПо умолчанию
languageRenderingDevice.ShaderLanguage—
language

Язык исходных строк, изначально ShaderLanguage.Glsl. Setter не переводит текст и не компилирует его. В текущем ShaderCompileSpirVFromSource реализована ветка GLSL при наличии glslang; наличие enum Hlsl не означает поддержку компиляции HLSL этим путём.

SetStageSourcevoid
# SetStageSource
C#
public void SetStageSource(RenderingDevice.ShaderStage stage, string source);

Заменяет текст одной стадии без компиляции и изменения других стадий. Передавайте собственно код стадии, например GLSL с #version, без файлового разделителя #[compute] и без shader_type spatial. Значения …Bit не являются индексами для этого метода. Изменение источника не меняет прежние RDShaderSpirV или GPU shader.

Параметры
ИмяТипПо умолчанию
stageRenderingDevice.ShaderStage—
sourcestring—
stage

Индекс стадии, например ShaderStage.Compute или ShaderStage.Vertex. Не передавайте ComputeBit/VertexBit, маску или Max: это не индекс нужной стадии и может выбрать другую стадию либо вызвать native error.

source

Полный текст одной стадии на выбранном Language; без файлового разделителя #[compute]. Не путь и не строка высокоуровневого spatial Shader.

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

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

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

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