--- title: Редактор шейдеров slug: Tools/Shader_Editor translation_of: Tools/Shader_Editor ---
{{ToolsSidebar}}

Редактор шейдеров позволяет просматривать и редактировать вершинные и фрагментные шейдеры, используемые WebGL.

{{EmbedYouTube("hnoKqFuJhu0")}}

WebGL - это программный интерфейс языка JavaScript, который позволяет отрисовывать интерактивную 3D- и 2D-графику в браузере без использования дополнительных плагинов. Для работы WebGL необходимо создать 2 программы, называемые "шейдерами", которые выполняются на определённой стадии работы графического конвейера OpenGL. Первым выполняется вершинный шейдер, сообщающий координаты каждой геометрической вершины, которую следует отрисовать. После этого выполняется фрагментный шейдер, сообщающий цвет каждого отдельного пикселя, поступающего в отрисовку.

Для создания шейдеров применяется Шейдерный Язык OpenGL или же GLSL. Можно по-разному внедрять шейдеры на страницу для работы с WebGL: например, их можно "прохардкодить" в JavaScript-исходниках, или подключить в виде отдельных файлов, используя тег <script>, или же подгрузить с сервера в виде простого текста. Исполняемый JavaScript-код отправляет шейдерную программу через программный интерфейс в WebGL, где она компилируется и выполняется с помощью графического ускорителя.

С помощью Редактора шейдеров вы можете изучать и редактировать исходники вершинных и фрагментных шейдеров.

Вот ещё одна демонстрация того, как вы можете применять Редактор шейдеров при разработке сложных приложений (в данном случае пример создан на движке Unreal Engine):

{{EmbedYouTube("YBErisxQkPQ")}}

Запуск Редактора шейдеров

По умолчанию Редактор шейдеров отключён. Чтобы активировать его, откройте Настройки инструментов разработчика и поставьте галочку на пункте  "Шейдеры" в разделе "Инструменты разработчика по умолчанию". Вы можете заметить, что в панели инструментов появился элемент "Шейдеры". Нажмите на нём для запуска Редактора шейдеров.

Сначала вы увидите пустое окно с кнопкой, предлагающей обновить страницу:

Для начала откройте страницу, которая создаёт контекст WebGL и загружает в него программу. Приведённые ниже скриншоты взяты из демонстрации Unreal Engine.

Перед вами появится рабочее окно, разделённое на три части: список шейдерных программ GLSL (слева), вершинный шейдер текущей выбранной программы (по центру), а также фрагментный шейдер текущей выбранной программы (справа):

Управление программами

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

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

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

Редактирование шейдеров

Средняя и правая часть рабочего окна представляют вершинный и фрагментный шейдеры выбранной шейдерной программы.

Вы можете отредактировать эти программы и просмотреть результат при следующей отрисовке контекста WebGL (например, при следующем кадре анимации). Например, вы можете изменить цвета:

Редактор подсвечивает синтаксические ошибки в вашем коде:

Вы увидите дополнительную информацию о проблеме, если наведёте курсор на крестик в левой части строки с ошибкой: