Перейти к руководству
Slang Shader Engineerавтор GitHub Awesome Copilot Contributors

Slang Shader Engineer Skill.

Рассматривайте код шейдера и интеграцию с движком как единый контракт, а не предполагайте, что скомпилированный шейдер готов к отрисовке.

  • Шейдеры
  • Графика GPU
  • 3D-дизайн
Обзор источника · Slang Shader EngineerSKILL.md
Задача Шейдеры Результат • Шейдер Slang или повторно используемый модуль с явными точками входа • Допущения о ресурсах и блоках параметров для интеграции с хостом • Обзор корректности и переносимости с пояснением предлагаемых изменений кода Перед началом Нужна среда компиляции Slang и рендерер, подходящие для целевого бэкенда; утверждения об интеграции требуют проверки на стороне хоста.
Редакционное резюме · источник проверен 2026-10-07 · не сгенерированный пример

01 Возможности

Структурирование переносимых шейдеров Slang и привязок на стороне хоста

Инженерное руководство по Slang с упором на модульный код, возможности бэкендов и интеграцию с хостом с учётом рефлексии.

Рабочий процесс на основе источникаНе тест производительности при выполнении

Принцип работы

Slang Shader Engineer — специализированный навык для программирования графических и вычислительных конвейеров. Он охватывает модульный код Slang, интерфейсы, обобщения, блоки параметров, возможности (capabilities) и кросс-компиляцию с вниманием к рендереру на стороне хоста, который привязывает ресурсы. Он подходит разработчикам визуальных систем, а не тем, кому нужен редактор материалов без кода.

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

Ожидаемые результаты

  • Шейдер Slang или повторно используемый модуль с явными точками входа
  • Допущения о ресурсах и блоках параметров для интеграции с хостом
  • Обзор корректности и переносимости с пояснением предлагаемых изменений кода
Посмотреть пример запроса

От запроса к обзору

  1. 01
    Определите конвейер

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

  2. 02
    Постройте минимальный контракт

    Напишите небольшой корректный шейдер с объявленными входами и ресурсами. Используйте модули, интерфейсы и обобщения там, где они проясняют вариативность, а не скрывают допущения о целевой платформе.

  3. 03
    Проверьте каждую цель

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

02 Когда использовать

Когда применять

Нужна среда компиляции Slang и рендерер, подходящие для целевого бэкенда; утверждения об интеграции требуют проверки на стороне хоста.

Подходит для

  • Интеграция с рендереромПолезно, когда раскладка параметров Slang и код привязки ресурсов на C++ должны совпадать.
  • Рефакторинг шейдеровПодходит для перехода от вариантов, перегруженных макросами, к модульному коду с задокументированными границами возможностей.

Ограничения, которые нужно учесть

  • Нужен контекст бэкендаЕдиный исходный язык не делает каждую функцию переносимой на любую целевую платформу. Неподдерживаемые возможности нужно выявлять явно.
  • Не визуальный бенчмаркНавык даёт рекомендации по написанию и проверке кода; сам по себе он не демонстрирует качество картинки, корректность во время выполнения или более быструю нагрузку на GPU.

Что подготовить

  • Целевые бэкендыУкажите предполагаемые API и целевые форматы вывода, например Vulkan/SPIR-V или путь через Metal.
  • Код шейдера и хостаПредоставьте существующие точки входа, привязки ресурсов и соответствующую настройку на стороне движка.
  • Желаемое изменениеУкажите, чего вы добиваетесь: корректности, переносимости, организации кода или устранения измеренного узкого места производительности.

03 Важные решения

Важные решения

  1. Привязки — часть дизайна

    Источник рассматривает раскладку ParameterBlock одновременно как задачу шейдера и хоста, что снижает риск правдоподобного кода с несовместимой настройкой ресурсов.

  2. Возможности остаются на виду

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

04 Пример задания

Попробуйте целевой запрос

Приведённый ниже пример запроса не тестировался. Перед использованием проверьте настройку навыка.

Проверьте настройку

Держите под рукой входящие в комплект справочники по языку и правилам. Источник не предоставляет универсальной команды установки или полноценной среды выполнения рендерера.

Исходный файл в апстриме
https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/skills/slang-shader-engineer/SKILL.md

Нужна среда компиляции Slang и рендерер, подходящие для целевого бэкенда; утверждения об интеграции требуют проверки на стороне хоста.

Начните с одного результата

Перед запуском навыка адаптируйте объём работы, исходные материалы и ограничения в этом запросе.

Пример запроса
Используйте slang-shader-engineer, чтобы проверить этот шейдер материала и настройку привязок на C++ для нашей цели Vulkan. Сначала проверьте корректность, затем выявите допущения о переносимости для возможного бэкенда Metal. Предложите небольшую организацию блоков параметров и укажите точки входа и допущения о хосте. Не утверждайте об ускорении без бенчмарка и отметьте любую возможность языка, которую нужно сверить с документацией.

Проверьте результат

Сравните фактический результат с этими наблюдаемыми критериями.

  • Точки входа шейдера и интерфейсы стадий соответствуют предполагаемому конвейеру.
  • Раскладка ресурсов, полученная через рефлексию, согласуется с допущениями о привязках на стороне хоста.
  • Функции, специфичные для целевой платформы, и неизмеренные утверждения об оптимизации явно выделены.

OpenDesign предоставляет локальное дизайн-рабочее пространство для кодирующих агентов. Наличие этой страницы не означает, что навык входит в комплект или что его внешние инструменты, учётные данные и программные зависимости включены.

05 Источник и лицензия

Источник и лицензия

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

Владелец источника
GitHub Awesome Copilot Contributors
Репозиторий
github/awesome-copilot
Лицензия
MIT
Проверенный снимок
2026-10-07 · 3a685010a7af
Редакционное резюме источника
Инженерное руководство по Slang с упором на модульный код, возможности бэкендов и интеграцию с хостом с учётом рефлексии.

Оригинальное резюме OpenDesign на основе источника по ссылке. Звёзды репозитория — датированный показатель популярности, а не использования навыка или оценка качества.

06 Вопросы перед началом

Вопросы перед началом

Делает ли Slang любой шейдер автоматически переносимым?

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

Поможет ли он с C++ на стороне движка?

Да, заявленная область охватывает рефлексию, раскладку привязок, пути компиляции и интеграцию с рендерером наряду с кодом шейдеров.

Это галерея шейдерных эффектов?

Нет. Это инженерный рабочий процесс и набор справочных материалов, ориентированный на написание, проверку и интеграцию, а не каталог готовых отрисованных эффектов.

OpenDesign

Оставьте место для следующей итерации дизайна.

Храните запрос, исходные материалы и дизайн-работу вместе в локальном рабочем пространстве. Перед добавлением навыка в рабочий процесс проверьте его собственную настройку.

Исходный файл в апстриме
https://github.com/github/awesome-copilot/blob/3a685010a7afdc0dbd4c83b7fbda6c316aa516e5/skills/slang-shader-engineer/SKILL.md