Эмуляция графики на основе палитры в WebGL v.s. Холст 2D

В настоящее время яm используя контекст 2D-холста для рисования изображения, сгенерированного (от пикселя к пикселю, но обновленного в виде целого буфера за один раз после сгенерированного кадра) из JavaScript со скоростью около 25 кадров в секунду. Сгенерированное изображение всегда составляет один байт (целочисленный / типизированный массив) на пиксель, и фиксированная палитра используется для генерации окончательного результата RGB. Масштабирование также необходимо для адаптации к размеру холста (то есть: переход к полноэкранному режиму) и / или по запросу пользователя (кнопки увеличения / уменьшения).

2D-контекст холста подходит для этой цели, однако яМне интересно, может ли WebGL обеспечить лучший результат и / или лучшую производительность. Пожалуйста, обратите внимание: я неЯ не хочу помещать пиксели через webGL, я хочу поместить пиксели в мой буфер (в основном это Uint8Array) и использовать этот буфер (один раз) для обновления контекста. Я нене знаете слишком много о WebGL, но использование необходимого сгенерированного изображения, как, например, будет работать какая-то текстура? Тогда мне нужно обновить текстуру со скоростью около 25 кадров в секунду, я думаю.

Было бы очень здорово, если бы WebGL как-то поддерживал преобразование цветового пространства. Что касается 2D-контекста, мне необходимо преобразовать 1-байтовый / пиксельный буфер в RGBA для изображений в JavaScript для каждого пикселя ... Масштабирование (для 2D-контекста) теперь выполняется путем изменения стиля высоты / ширины холста, поэтому браузеры масштабируют изображение тогда. Однако я полагаю, что это может быть медленнее, чем то, что может сделать WebGL с поддержкой hw, а также (я надеюсь) WebGL может дать большую гибкость для управления масштабированием, например, в контексте 2D браузеры будут выполнять сглаживание, даже если я нене хочу делать (например: целочисленный коэффициент масштабирования), и, возможно, это 'Это иногда может быть довольно медленно.

Я уже пытался выучить несколько учебных пособий по WebGL, но все они начинаются с объектов, фигур, трехмерных кубов и т. д.не нужно никакого - классического - объекта для визуализации только того, что может делать 2D-контекст - в надежде, что WebGL может стать более быстрым решением для той же задачи! Конечно, если у WebGL не будет никакой победы, я бы продолжил использовать 2D-контекст.

Для ясности: это некий аппаратный эмулятор аппаратного обеспечения, выполненный на JavaScript, и его вывод (что будет видно на подключенном к нему телевизоре PAL) отображается через контекст холста. Машина имеет фиксированную палитру из 256 элементов, а для определения цвета ей нужен только один байт для пикселя.

Ответы на вопрос(2)

Ваш ответ на вопрос