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

Поділитися
Вставка
  • Опубліковано 1 гру 2024

КОМЕНТАРІ • 27

  • @ПётрПетров-д2ч4х
    @ПётрПетров-д2ч4х 3 роки тому +7

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

  • @Satabol
    @Satabol 4 роки тому +1

    Спасибо, просто интересно было слушать.

  • @СЭДМИ
    @СЭДМИ 4 роки тому +1

    все видео: 🙏

  • @angelicoctahedron3646
    @angelicoctahedron3646 4 роки тому +4

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

    • @dmitryrukavishnikov6711
      @dmitryrukavishnikov6711 3 роки тому

      Такое вполне возможно, и это действительно должно ускорить отрисовку за счет устранения необходимости передавать данные на видеокарту. Все что понадобиться - передать начальные координаты, начальные скорости и время. Координаты и скорости передаются через атрибуты (данные, которые уникальны для каждого экземпляра шейдера). А время нужно будет передавать не через атрибуты а через интерфейс uniform. Uniform - способ передачи данных, которые одинаковы для каждого шейдера.

  • @iarde3422
    @iarde3422 4 місяці тому

    "На regexе" - если бы это было "на regexе", то кода было бы в 10 раз меньше. Да, вообще,в 2 строчки можно было бы всё написать, думаю.

  • @xenonist4502
    @xenonist4502 4 роки тому +1

    Подскажите, пожалуйста, что ещё за resizeArray в коде? На 9 строчке в файле физики

    • @bitbarracuda
      @bitbarracuda Рік тому

      Не узнали что это?

    • @xenonist4502
      @xenonist4502 Рік тому

      @@bitbarracuda не, я даже уже не помню что за видео :):

    • @bitbarracuda
      @bitbarracuda Рік тому +1

      @@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;
      }

  • @nikolaisemko5841
    @nikolaisemko5841 2 роки тому

    Что-то я не догнал. пример на JS в этом видео работает в раз 10-15 медленнее. Почему в 1,5 раза?
    Может докладчик ошибся. В 1,5 раза в сравнении с WebGL, а не с JS?

  • @mgevlich
    @mgevlich 4 роки тому +1

    Вот зачем нужен webassembly если он всеголишь в 1.5 раза быстрее и только лишь потому что работает на числах с меньшей точностью?! Не понятно.

    • @ammonjerro396
      @ammonjerro396 4 роки тому +1

      и правда, какие-то жалкие 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 років тому +3

    Доклад для домохозяек... Неужели эти люди в зале считают себя программистами, если им нужно разжёвывать что такое выравнивание, смещение во линейном буфере и пр... Думаю, что ASM/C/C++/GLSL/HLSL/SPIR-V программисты с каждым годом будут стоить всё дороже и дороже :-)

    • @JohnDoe-lw7yb
      @JohnDoe-lw7yb 5 років тому +10

      Ну, не думаю.
      Это ведь доклад не для матёрых сишников, а фронтэндеров, которых до выравнивания не пускают :)
      Я запариваюсь с тем, чтобы компилятор мой цикл развернул в автовекторизацию, но узнать как там у них мне было интересно.
      А священная -война- срач что [language] недостоин звание true - это дерьмо.
      Если в своей нише тот же php выполняет свою задачу - он хорош, тупо требовать от него выравнивание с ручной работой с памятью.
      P. S. Ненавижу PHP ;)

    • @RafaelShepard
      @RafaelShepard 5 років тому +18

      Это доклад для фронтендеров. Что за прикол у таких как ты постоянно в комментах такие штуки писать? (для конкретики:"ХА, доклад для домохозяек! И вы называете себя программистами! ХА! ") Вам не хватает внимания\признания\или еще чего ? Мне любопытно что ты ответишь, что бы я раз и навсегда перестал себя спрашивать: "Если ты занимаешься другими вещами, то зачем ты заходишь сюда и выебываешся?)". Развейте свою иллюзию, что вы занимаетесь супер сложными вещами, недосягаемыми другими, смертными, ведь при желании, любой из сидящих в зале может научиться всему, чему пожелает. В этом и есть смысл таких докладов - развитие. И складывается впечатление, что вам действительно не хватает чего-то, раз вы лезете сюда. *вы, в моем сообщении - вся тусовка таких умников как ты.

    • @-THE-MASTER-
      @-THE-MASTER- 5 років тому +2

      @@RafaelShepard , ой...да брось, причём тут выёбываться, детский сад какой-то, мы ж не политики, что бы заниматься пустозвонством... Я сюда зашёл только потому, что мне по работе нужно было накидать один модуль для видео стрима через сеть, в котором я думал сделать gui (hud) на чистом WebGL (возможно через imgui), а сам стрим на кодеке h.264/hevc с ручным кодированием фреймов, по этому мне нужно было разобраться, что сейчас на острие копья технологий для web-а, краем уха услышал, что сейчас модно webassembly, стал копать информацию и к сожалению она оказалась на столько разрозненна и для откровенных нубов, что я долго по крупицам собирал то, что хотел узнать, т.к. в каждой статье или видеоролике автор всё время городил тонну какой-то общеизвестной чуши, которую по идее должен знать любой программист по дефолту, то есть тонны галимой "информации" для откровенных домохозяек и минимум конкретики по теме, по этому это и вызвало моё негодование ))) Да забей, я уже давно этот вопрос закрыл, тупо собираешь всё через emscripten и траблов ноль, кстати это можно было сказать одной фразой и ролик бы длился 2 секунды )) P.S.: забей на всё, лучше мой старый ролик с процедурной геометрией посмотри :-) ua-cam.com/video/TWAc9mbNHGc/v-deo.html

    • @ollegat
      @ollegat 4 роки тому +22

      Обычный напыщенный сноб, но это его личная половая драма. Докладчик же просто огонь, учитель от бога 8)

    • @tozpeak
      @tozpeak 3 роки тому

      @@-THE-MASTER- А зачем делать gui на чистом WebGL? Разве не оптимальнее использовать для интерфейса html, который вроде как должен без обёрток рендерится браузером?

  • @СЭДМИ
    @СЭДМИ 4 роки тому +1

    все видео: 🙏