Что такое Площадка WebGL-шейдеров?
Пишите GLSL-вершинные и фрагментные шейдеры и мгновенно видите результат рендеринга через WebGL. Никакой локальной настройки не нужно. Подходит для изучения шейдерного программирования, прототипирования эффектов или экспериментов с GPU-ускоренной графикой.
Встроенные uniform-переменные: `u_time` для анимации, `u_resolution` для размера холста, `u_mouse` для положения курсора, `u_frame` для счётчика отрисованных кадров и готовая бесшовная текстура шума `sampler2D u_noise`. Загрузите любую картинку — она привяжется к `sampler2D u_texture`, и фрагментный шейдер сможет читать её напрямую. В наборе десять пресетов (gradient wave, plasma, circle SDF, noise tunnel, Mandelbrot, ray march sphere, metaballs, voronoi, starfield, worley cells), ползунок скорости анимации, счётчик FPS в реальном времени, переключатель автокомпиляции, кнопка паузы, которая замораживает таймлайн, ссылка для шеринга, переносящая весь исходник, и экспорт текущего кадра в PNG.
Как использовать
- Напишите или вставьте код GLSL-фрагментного шейдера в редактор. Шейдер по умолчанию уже загружен.
- Предпросмотр обновляется в реальном времени по мере ввода. Встроенные юниформы: время, разрешение и позиция мыши.
- Экспортируйте шейдер в виде PNG-скриншота или скопируйте код для использования в собственных WebGL-проектах.
Когда использовать
- Учить GLSL, не поднимая локальный проект на C++ или Three.js.
- Прототипировать эффект на фрагментном шейдере до переноса в игровой движок или на сайт.
- Делать стоп-кадры анимированных фонов для портфолио, слайдов и постов в соцсетях.
Результат
Разработчик игр, создающий прототип эффекта волн на воде, пишет фрагментный шейдер с синусоидами и юниформой времени. Панель предпросмотра показывает анимированный результат в реальном времени.
Частые вопросы
- Нужно ли знать C или графическое программирование?
- GLSL — небольшой C-подобный язык: циклы, условия и арифметика с плавающей точкой. Если касались C, Java или JavaScript, синтаксис будет знаком. Шейдеры пресетов снабжены комментариями, так что для старта обычно хватает менять значения — без опыта с GPU.
- Шейдер компилируется, но превью чёрное. В чём дело?
- Частые причины: запись в `gl_FragColor` вне функции main, возврат `vec3` вместо `vec4`, деление на ноль внутри шумовой функции. Откройте консоль браузера — WebGL печатает полезные предупреждения, даже если компиляция формально успешна.
- Можно ли семплировать текстуру или загрузить своё изображение?
- Да. Нажмите «Загрузить картинку» в панели предпросмотра — любой PNG или JPG привяжется к `sampler2D u_texture`. Сопутствующий float `u_hasTexture` становится 1.0, как только изображение готово, так что шейдер может проверять, доступна ли текстура. Это та же схема, что у channel inputs в Shadertoy.
- Какая версия WebGL используется?
- WebGL 1 и GLSL ES 1.0. Это значит `varying` вместо `in/out`, `gl_FragColor` вместо именованного выхода и без целочисленных текстур. Шейдеры под WebGL 2 или десктопный OpenGL 3+ потребуют небольшой правки синтаксиса, чтобы запуститься здесь.
- Отправляется ли что-то на сервер?
- Нет. Компиляция и рендеринг идут на вашей GPU через браузер. Код шейдера не покидает страницу: закроете вкладку без копирования — код пропадёт.
Похожие инструменты
3D-макет коробки/упаковки
Просмотр дизайна упаковки в 3D
3D-диаграмма рассеяния
Визуализация точек данных в трёхмерном пространстве
3D-просмотрщик рельефа
Визуализация карт высот в виде 3D-рельефа
3D-витрина Товаров
Вращайте и рассматривайте товары в интерактивном 3D
Создание 3D-текста
Создавайте объёмный 3D-текст с уникальными стилями
Просмотр 360° изображений
Просматривайте и исследуйте 360-градусные панорамные снимки