Небольшие примеры на WebGL19.11.2017, 16:43. Показов 55406. Ответов 200
Примеры на WebGPU, WebGL и OpenGL: https://www.cyberforum.ru/blogs/416874/6407.html
WebGPU:В 2026 году изучать WebGPU как никогда актуально. В этой теме приведены примеры как на WebGL, так и на WebGPU. Лучше всего учиться через практику, создавая небольшие демо-проекты. Стоит стремиться к тому, чтобы писать код самостоятельно из головы, а не просто копировать его. Однако на первых порах можно подглядывать в чужие исходники или ответы нейросетей (Gemini, ChatGPT и др.) и перепечатывать их вручную, попутно уточняя у ИИ назначение тех или иных команд. Со временем лучше чаще обращаться к официальной документации, чтобы глубже понимать работу API. Здесь находится пример инициализации контекста WebGPU, который заливает холст выбранным цветом: index.html
WebGPU-NativeТехнология WebGPU не ограничивается только браузерами - благодаря кроссплатформенным реализациям (таким как wgpu или Dawn) вы можете писать нативный код на C и C++. Настроив сборку через CMake, один и тот же проект можно легко скомпилировать под Windows, Android, WebAssembly и другие платформы. Следующие примеры как раз демонстрируют этот подход на практике:
Исходники версии C/C++ Compat могут быть скомпилированы с помощью компиляторов gcc (C) и g++ (C++), но проект настроен на C++. На GitHub в README.md есть ссылки на пошаговое руководство по установке библиотек. Пример собирается в статические исполняемые файлы для Windows, Linux, Android и WebAssembly (Emscripten) из одной кодовой базы с помощью CMake. Все сборки запускаются на своих платформах. Сборки можно скачать на вкладке Releases (сборки есть только в версии на C). Сборка для Linux протестирована на Ubuntu 26 и Fedora 44 на WSL. Сборка для Linux настроена для сборки из под Ubuntu. Ссылка на инструкцию по сборке находится в файле README.md Прямая ссылка на инструкцию по сборке. WebGL:Простой треугольник без трансформаций. Для трансформаций можно использовать glMatrix, как в примере: https://plnkr.co/edit/qT6ZTwvncLPRamK5?preview На русском:На английском:Исходники примера: Содержание темы Запись в блоге Краткое описание, что такое WebGL, взятое с https://developer.mozilla.org/... /WebGL_API (там же ссылки на документацию и обучающие материалы):
Туториалы:
Литература:
5
|
|||||||||||||||||
| 19.11.2017, 16:43 | |
|
Ответы с готовыми решениями:
200
Литература WebGL Не отрисовывается фигура в Webgl Из какого 3d редактора и как можно экспортировать анимацию в WebGL? |
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 18.01.2021, 15:40 | |
|
Был бы интересен пример анимации положения рандом окружностей…с эффектом Боке, DOF, виньетированием, картой градиента и обычным суперсэмплингом.
https://ru.wikipedia.org/wiki/Боке https://ru.wikipedia.org/wiki/... остранства https://en.wikipedia.org/wiki/Gaussian_blur https://ru.wikipedia.org/wiki/Виньетирование https://ru.wikipedia.org/wiki/... глаживания
0
|
|
| 18.01.2021, 21:16 [ТС] | ||||||||||||||||||||||||||
|
Спрайтовая анимация на Canvas API на JavaScript, Python и C++
Запустить демку в браузере в песочнице Plunker: https://plnkr.co/edit/zjYT0KTfj50MejT9?preview Исходники:
Данный пример не использует WebGL, но он очень кратно демонстрирует принцип спрайтовой анимации. Попробуйте реализовать этот принцип самостоятельно на WebGL и OpenGL. Лучший способ изучения - это написание кода самостоятельно с нуля до перехода знаний в навыки через многократное повторение изученного на практике. У меня есть короткий пример спрайтовой анимации на WebGL и OpenGL, но я его пока выкладывать не буду, чтобы у вас было время попробовать самостоятельно решить эту задачу.
1
|
||||||||||||||||||||||||||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 18.01.2021, 23:28 | ||
|
Интересен был бы пример салюта. Система частиц. Процедурная генерация текстуры из N фреймов где точка размыта и плавно меняет цвет и размер. Затем эта текстура используется для спрайтов. Получаем гибкость процедурной генерации и скорость работы т.к. спрайт текстура. Каждый спрайт это материальная точка в поле гравитации. Полет от импульса силы…вроде так делают.Еще там нужно след от частицы оставить…хз как.
0
|
||
| 23.01.2021, 00:06 [ТС] | |
|
Excalibur921, чтобы вы больше не флудили в мой адрес после каждого моего сообщения здесь, я вам сообщаю, что я вас добавил в список игнорирования, а ещё я добавил фильтры в AdblockPlus, которые удаляю целиком ваши сообщения из моего браузера, цитаты, и ваш никнейм (отовсюду), то есть для моего браузера вы вообще не существуете на форуме. Вы не один такой - я так сделал с десятком людей, сообщения которых и упоминания о которых меня раздражали. Больше в мою сторону не пишите, я вас вообще не вижу.
Например, между двумя моими сообщениями теперь нет вашего сообщения, а так же нет цитаты с вашим текстом в моём сообщении: Фильтр даже в реальном времени удалил ваш ник из текущего сообщения:
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 23.01.2021, 11:13 | |
|
0
|
|
| 24.02.2021, 23:55 [ТС] | ||||||||||||||||||||||||||||||||||||
|
Использование физического движка Planck.js вместе с TypeScript (Planck.js - это порт физического 2D-движка Box2D)
Скачать исходники: hello-planckjs-webgl10-ts.zip (4.8 Кб) Исходники на GitHub: hello-planckjs-webgl10-ts Установите глобально следующие пакеты:
Установите пакеты из `package.json` командой: npm install Раскомментируйте/Закомментируйте Debug/Release в файлах `index.html` и `main.ts` (см. комментарии в этих файлах). Используйте следующие комманды для сборки: - `npm run debug` - для отладки в редакторах кода и для публикации в песочницах, например, в Plunker: Hello Planck.js. WebGL 1.0, TypeScript - `npm run release` - для сборки в `bundle.min.js` для production package.json
public/index.html
src/client/main.ts
src/client/RequireConfig.ts
tsconfigs/tsconfig.json
tsconfigs/tsconfig.debug.json
tsconfigs/tsconfig.release.json
1
|
||||||||||||||||||||||||||||||||||||
| 25.02.2021, 00:05 [ТС] | ||||||||||||||||||||||||||||||||||||
|
Использование физического движка Ammo.js вместе с TypeScript (Ammo.js - это порт физического 3D-движка Bullet)
Скачать исходники: hello-ammojs-webgl10-ts.zip (46.0 Кб) Исходники на GitHub: hello-ammojs-webgl10-ts Установите глобально следующие пакеты:
Установите пакеты из `package.json` командой: npm install Раскомментируйте/Закомментируйте Debug/Release в файлах `index.html` и `main.ts` (см. комментарии в этих файлах). Используйте следующие комманды для сборки: - `npm run debug` - для отладки в редакторах кода и для публикации в песочницах, например, в Plunker: Hello Ammo.js. WebGL 1.0, TypeScript - `npm run release` - для сборки в `bundle.min.js` для production package.json
public/index.html
src/client/main.ts
src/client/RequireConfig.ts
tsconfigs/tsconfig.json
tsconfigs/tsconfig.debug.json
tsconfigs/tsconfig.release.json
0
|
||||||||||||||||||||||||||||||||||||
| 25.02.2021, 00:39 [ТС] | |||||||||||||||||||||||||||||||
|
Пример падения кругов с буквами с использованием физического 2D-движка Matter.js, WebGL 1.0 и TypeScript
Круги создал в Blender, текстуры букв наложил в GIMP (GIMP - это бесплатный аналог Photoshop'а). Цвета взял из логотипа форума в левом верхнем углу пипеткой в GIMP. Шрифт созданный - Sans-serif - вроде совпадает с тем, что на логотипе. Экспортировал круги в формат .dae (COLLADA). Импортировал с помощью встроенного в TypeScript XML-парсера. Запустить в браузере (падение запускается кликом левой кнопки мыши в любом месте экрана) Скачать исходники: falling-cyberforum-matterjs-ts.zip (70.8 Кб) Исходники на GitHub: falling-cyberforum-matterjs-ts public/assets/shaders/texturedShader.vert
0
|
|||||||||||||||||||||||||||||||
| 25.02.2021, 00:40 [ТС] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
продолжение предыдущего сообщения
src/client/Locations.ts
0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14.10.2021, 12:51 [ТС] | |
|
Сделал демку с простой скелетной анимацией, импортированной из Blender. Демка написана языке TypeScript с использованием WebGL 1.0. Импортирую 3D модели и анимации из формата .dae (COLLADA) из 3D-редактора Blender. Пока без кода, просто демка.
Запустить демку в браузере
1
|
|
| 15.10.2021, 14:42 | |
|
А тут уже пошли "непростые примеры" :-)
В общем, как я понял, расчет примерно такой: один чувак хочет заказать крутую интерактивную рекламу своего интернет-магазина (например). И вот тогда мы "собираем" зоопарк из десятка (или больше?) open-sources и дописываем недостающие куски там и сям. Случай возможный, но скорее такой заказ получит компания, а не индивидуал. Уж слишком много всего-всего для одного человека даже с тем что показано, а ведь пока ни моделей, ни текстур, ни анимации. И каждое - тонна работы, а иногда нужны и способности. Боюсь что пытаясь "объять необъятное" Вы просто надорветесь. Да и творчества (не побоюсь этого слова) здесь немного - в основном овладение технологиями.
0
|
|
| 15.10.2021, 16:21 [ТС] | |
|
Не по теме: Igor3D, сегодня утром дата вашей последней активности была - апрель 2018
0
|
|
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|
| 16.10.2021, 00:04 | |
|
114 пост а ниодного красивого изображения мотивирующего что-то изучать.
0
|
|
|
фрилансер
6506 / 5756 / 1134
Регистрация: 11.10.2019
Сообщений: 15,404
|
|
| 16.10.2021, 07:53 | |
|
8Observer8, я смотрю, у тебя постоянные поклонники уже имеются
1
|
|
| 16.10.2021, 09:36 | ||
Кстати чего Вы на Excalibur921 окрысились? Ну увидел человек красивую картинку, хочет такую же, это совершенно нормальный пользователь. Да и предложения "вполне". Вот напр как сделать чтобы объект оставлял за собой (красивый) размазанный след? Лупить спрайтами - дело нехитрое, но выглядит пошленько. Эх, прорваться бы к родному fractal noise, нo как? Т.е. для каждой точки (фрагментного шейдера) нужно найти точку на пути/траектории объекта, и время когда объект там был. Дальше раскрутимся. Проблема в том что путей может быть много, и самых разнообразных. И как хранить/искать в калечном GLSL - хз. Вполне себе креативная задачка, конечно нужна подготовка, возможно такие техники уже есть. Но увы, такие вещи Вас не интересуют, наверно это для Вас "слишком мелко". Вот движок физики - то да. Хотя что с ним делать - без понятия. Чего-то там падает, сыпется, катится - этого все наелись еще в начале нулевых. Рушатся карточные домики, падают кости домино, в коробку сыпятся конфеты, пролом стены и.т.д - это все уже 1000 раз было. Может Вы хотели показать что и на (великом) WebGL это теперь возможно! С этим никто не спорит, ну так что с того? Зачем запрягать движок если нет идей его использования? Так, показать "как мы умеем "собирать"? Вообще с креативом как-то совсем хреновато
2
|
||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
||
| 16.10.2021, 10:09 | ||
|
Боюсь что ТС просто накапает модераторам удалить все конструктивные замечания таких же пользователей форума как и он сам. Почему-то у него тут привилегии над всеми.
Я так понимаю больше половины уроков фактически просто взяты с примеров к книгам? Нарисуйте уже хоть что-то сложней треугольника или куба. Самое простое точки в 3д. Сделайте им хоть какой-то эффект показывающий что это графика, пример пост 97. Как сделать простейшие слайдеры чтоб пользовать мог хоть что то менять? Пусть слайдер задает форму поверхности к которой точки будут плавно лететь со старой позиции. Обычно в графике еще со школы или института первых курсов самое простое рисуют фракталы, у вас же ниодного их примера…как так? Можно наклепать 100500 вариантов салюта изменяемых десятком слайдеров. *где-то в аду 3д графики* Обычный пользователь: ухты opengl…я изучу графику и буду рисовать красивые фракталы налету прям в браузере а потом еще всякие эффекты типа салюты и… Громогласный голос из тьмы: подвиньте ваш куб влево… Обычный пользователь: …ээ..что? А потом я сделаю странные аттракторы или придумаю свои формулы сделаю им свечение будет очень красиво… Громогласный голос из тьмы: подвиньте ваш куб вправо… Обычный пользователь: откуда этот голос? Какие кубы? Зачем это мне? Так а потом я делаю рисование красивых цветков из отрезков и сделаю им свечение всякие эффекты на стыках…да opеngl мне поможет рисовать это быстро. Громогласный голос из тьмы: чувствуйте ваш куб…подвиньте ваш куб влево…
1
|
||
| 16.10.2021, 10:33 [ТС] | |
|
Не по теме: Igor3D, искренне спасибо, что идей мне накидали.
0
|
|
| 17.10.2021, 09:04 | |||
, немного расскажу. Для начала его надо "просто выбрать" - и выясняется что это совсем не просто. У меня было сделано "по Липчаку", но с переходом на Core Progile пришлось переписывать выборку вертексов/фейсов, на что ушло не менее 2 месяцев. Вариант с "color ID" явно неполноценный. Городить software дерево - безыдейно, это уже не OpenGL. Поэтому сделал выборку в геометрическом шейдере(ах), возвращая рез-т с помощью Transform Feedback. Возникает резонный вопрос - а почему "система" не только не предоставляет средств для решения стопудово типовой задачи, но даже не дает внятных рекомендаций? С "подвинуть" полегче, все-таки Bullet идет с примерами где можно тягать объекты (раньше можно было еще пулять зайцами). Но все равно долбаться не один день. И не два. Так что работу Ваня проделал колоссальную. Другое дело это не имеет никакого "товарного вида" и "не завлекает". Ну видимо "технологии" еще не доросли до уровня чтобв такие вещи делались быстро и четко, "ис каропки", вот и видим "как делается колбаса" (тоже полезно знать) Добавлено через 18 минут
0
|
|||
|
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
|
|||||
| 17.10.2021, 11:27 | |||||
|
ТС очень не любит когда в его теме не его кубы в html.
Опус с кубом к тому что 100 постов а ТС так и рисует кубы да треугольники. выбрали зеленую стену из кирпичей, назначить всем 16 000 000 кирпичам уникальный цвет. Получается можно выбрать 16 000 000 * N объектов в кадре? Пикселей кадра хватит ? ![]() Как тяжелый для рендера вариант можно процедурное генерировать каждую частицу но это сильно кушает FPS…. Пару красивых салютов или 100 салютов? Хотя если вся сцена только 1 салют…
0
|
|||||
| 17.10.2021, 11:27 | |
|
WebGL - глубина отрисовки объектов Не правильное вращение пирамиды WebGL WebGL, детализация текстуры при приближении Технология освещения и нормали. Не могу разобраться (WebGL) Нужно сделать ёлку на Webgl Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
|
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи.
. . .
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|