Самый низкий уровень: пишем на WebGL и WebAssembly без фреймворков и транскомпиляторов/ А.Хлыновский

  Рет қаралды 14,586

Frontend Channel

Frontend Channel

Күн бұрын

Пікірлер: 27
@ПётрПетров-д2ч4х
@ПётрПетров-д2ч4х 3 жыл бұрын
И слушать интересно, и человек приятный. Это следствие того, что это настоящий специалист и нет ему резона выпендриваться.
@Satabol
@Satabol 4 жыл бұрын
Спасибо, просто интересно было слушать.
@angelicoctahedron3646
@angelicoctahedron3646 4 жыл бұрын
Еще конечно можно было-бы при помощи тех-же шейдеров рассчет позиций переписать. Выиграли бы сразу на двух вещах: - распараллеливается не только отрисовка, но и рассчет. - нет обмена данными на каждый кадр между CPU и GPU. Вопрос только в том, а есть ли в WebGL компьютерные шейдеры...
@dmitryrukavishnikov6711
@dmitryrukavishnikov6711 3 жыл бұрын
Такое вполне возможно, и это действительно должно ускорить отрисовку за счет устранения необходимости передавать данные на видеокарту. Все что понадобиться - передать начальные координаты, начальные скорости и время. Координаты и скорости передаются через атрибуты (данные, которые уникальны для каждого экземпляра шейдера). А время нужно будет передавать не через атрибуты а через интерфейс uniform. Uniform - способ передачи данных, которые одинаковы для каждого шейдера.
@СЭДМИ
@СЭДМИ 4 жыл бұрын
все видео: 🙏
@iarde3422
@iarde3422 6 ай бұрын
"На regexе" - если бы это было "на regexе", то кода было бы в 10 раз меньше. Да, вообще,в 2 строчки можно было бы всё написать, думаю.
@nikolaisemko5841
@nikolaisemko5841 2 жыл бұрын
Что-то я не догнал. пример на JS в этом видео работает в раз 10-15 медленнее. Почему в 1,5 раза? Может докладчик ошибся. В 1,5 раза в сравнении с WebGL, а не с JS?
@xenonist4502
@xenonist4502 4 жыл бұрын
Подскажите, пожалуйста, что ещё за resizeArray в коде? На 9 строчке в файле физики
@programmers_imprint
@programmers_imprint Жыл бұрын
Не узнали что это?
@xenonist4502
@xenonist4502 Жыл бұрын
@@programmers_imprint не, я даже уже не помню что за видео :):
@programmers_imprint
@programmers_imprint Жыл бұрын
@@xenonist4502 ну если вдруг нужно, это просто ресайз для типизированного массива. Примерно так: const resizeArray = (arr, len) => { if (arr.length === len) return arr const resizedArrayBuffer = new ArrayBuffer(len), resizedView = new Float32Array(resizedArrayBuffer) for (let i = 0; i < arr.length; i++) { resizedView[i] = arr[i]; } return resizedView; }
@mgevlich
@mgevlich 4 жыл бұрын
Вот зачем нужен webassembly если он всеголишь в 1.5 раза быстрее и только лишь потому что работает на числах с меньшей точностью?! Не понятно.
@ammonjerro396
@ammonjerro396 4 жыл бұрын
и правда, какие-то жалкие 50%, кому они нужны.
@mgevlich
@mgevlich 4 жыл бұрын
@@ammonjerro396 и правда, какие то жалкие 32 бита. Кому они нужны.
@angelicoctahedron3646
@angelicoctahedron3646 4 жыл бұрын
@@mgevlich а чего вдруг 64-битные будут складываться медленее? И там и там по итогу вроде как одна машинная операция.
@mgevlich
@mgevlich 4 жыл бұрын
@@angelicoctahedron3646 в вебасембли завезли 64 разрядную точность?
@kostya_super
@kostya_super Жыл бұрын
А зачем нам большая точность, если от этого пикселей на экране не станет больше?
@torcher5023
@torcher5023 2 жыл бұрын
А представляете, если бы мы жили в мире, где для так называемых программистов написать простенький шейдер или функцию на СИ не являлось бы "самым низким уровнем"
@-THE-MASTER-
@-THE-MASTER- 5 жыл бұрын
Доклад для домохозяек... Неужели эти люди в зале считают себя программистами, если им нужно разжёвывать что такое выравнивание, смещение во линейном буфере и пр... Думаю, что ASM/C/C++/GLSL/HLSL/SPIR-V программисты с каждым годом будут стоить всё дороже и дороже :-)
@JohnDoe-lw7yb
@JohnDoe-lw7yb 5 жыл бұрын
Ну, не думаю. Это ведь доклад не для матёрых сишников, а фронтэндеров, которых до выравнивания не пускают :) Я запариваюсь с тем, чтобы компилятор мой цикл развернул в автовекторизацию, но узнать как там у них мне было интересно. А священная -война- срач что [language] недостоин звание true - это дерьмо. Если в своей нише тот же php выполняет свою задачу - он хорош, тупо требовать от него выравнивание с ручной работой с памятью. P. S. Ненавижу PHP ;)
@RafaelShepard
@RafaelShepard 5 жыл бұрын
Это доклад для фронтендеров. Что за прикол у таких как ты постоянно в комментах такие штуки писать? (для конкретики:"ХА, доклад для домохозяек! И вы называете себя программистами! ХА! ") Вам не хватает внимания\признания\или еще чего ? Мне любопытно что ты ответишь, что бы я раз и навсегда перестал себя спрашивать: "Если ты занимаешься другими вещами, то зачем ты заходишь сюда и выебываешся?)". Развейте свою иллюзию, что вы занимаетесь супер сложными вещами, недосягаемыми другими, смертными, ведь при желании, любой из сидящих в зале может научиться всему, чему пожелает. В этом и есть смысл таких докладов - развитие. И складывается впечатление, что вам действительно не хватает чего-то, раз вы лезете сюда. *вы, в моем сообщении - вся тусовка таких умников как ты.
@-THE-MASTER-
@-THE-MASTER- 5 жыл бұрын
@@RafaelShepard , ой...да брось, причём тут выёбываться, детский сад какой-то, мы ж не политики, что бы заниматься пустозвонством... Я сюда зашёл только потому, что мне по работе нужно было накидать один модуль для видео стрима через сеть, в котором я думал сделать gui (hud) на чистом WebGL (возможно через imgui), а сам стрим на кодеке h.264/hevc с ручным кодированием фреймов, по этому мне нужно было разобраться, что сейчас на острие копья технологий для web-а, краем уха услышал, что сейчас модно webassembly, стал копать информацию и к сожалению она оказалась на столько разрозненна и для откровенных нубов, что я долго по крупицам собирал то, что хотел узнать, т.к. в каждой статье или видеоролике автор всё время городил тонну какой-то общеизвестной чуши, которую по идее должен знать любой программист по дефолту, то есть тонны галимой "информации" для откровенных домохозяек и минимум конкретики по теме, по этому это и вызвало моё негодование ))) Да забей, я уже давно этот вопрос закрыл, тупо собираешь всё через emscripten и траблов ноль, кстати это можно было сказать одной фразой и ролик бы длился 2 секунды )) P.S.: забей на всё, лучше мой старый ролик с процедурной геометрией посмотри :-) kzbin.info/www/bejne/ioiklGyjl7N7fcU
@ollegat
@ollegat 4 жыл бұрын
Обычный напыщенный сноб, но это его личная половая драма. Докладчик же просто огонь, учитель от бога 8)
@tozpeak
@tozpeak 3 жыл бұрын
@@-THE-MASTER- А зачем делать gui на чистом WebGL? Разве не оптимальнее использовать для интерфейса html, который вроде как должен без обёрток рендерится браузером?
@СЭДМИ
@СЭДМИ 4 жыл бұрын
все видео: 🙏
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН
How to have fun with a child 🤣 Food wrap frame! #shorts
0:21
BadaBOOM!
Рет қаралды 17 МЛН
Путь к WebGL через THREE.js | Odessa Frontend Meetup #12
55:16
Odesa Frontend Community
Рет қаралды 6 М.
Андрей Роенко - WebAssembly без купюр
1:00:47
HolyJS — конференция для JavaScript‑разработчиков
Рет қаралды 17 М.
Как делать сайты с 3D. WebGL на практике
37:12
Digital-агентство Мэйк
Рет қаралды 7 М.
Никита Дубко - CSS first. Когда JS не нужен
48:25
HolyJS — конференция для JavaScript‑разработчиков
Рет қаралды 51 М.
Porffor: Compile Your JavaScript To WebAssembly
20:49
Theo - t3․gg
Рет қаралды 61 М.
Андрей Нагих - Разработка под WebAssembly: реальные грабли и примеры
58:08
HolyJS — конференция для JavaScript‑разработчиков
Рет қаралды 10 М.
WebAssembly и веб на TypeScript, Александр Коротаев
43:31