Могу ли я использовать ROP в Canvas?(Я забочусь только о производительности) - PullRequest
2 голосов
/ 27 ноября 2011

Итак ... В старые добрые времена создания игр, когда вы рисовали спрайты на экране, вы использовали ROP для рисования только "непрозрачной" части вашего спрайта.(Да, я не делал никакого игрового кодирования в течение долгого времени)

(Если вы не понимаете, о чем я говорю, проверьте это . Это было прекраснохак)

Я сейчас пытаюсь сделать некоторые "HTML5 игры", и я экспериментирую с различными способами выполнения задач и измерения их производительности, и я заметил, что в Canvas, похоже, нет ROP.Когда вы рисуете что-то, у этого «чего-то» есть полный альфа-канал, и на самом деле рисование полупрозрачных вещей происходит так же быстро, как и рисование «непрозрачных» вещей.

Это замечательно, если вы рисуете полупрозрачные вещи, но для 99,999% того, что вы делаете, это звучит невероятно расточительно, и кажется, что если бы у нас были ROP, мы могли бырисовать в 10 раз быстрее, используя старый трюк с маской.

Я что-то здесь упускаю?
Уже есть способ с Canvas "отключить альфу", чтобы он рисовал быстрее?
Могу ли яполностью сумасшедший, и это не имеет значения, потому что, на самом деле, я уже могу нарисовать 1000 спрайтов за 3 мс (300 кадров в секунду), плюс видеокарта, вероятно, делает это напрямую или скоро, так что мне до этого дело?
Что ты думаешь?

Спасибо!
Даниил

1 Ответ

1 голос
/ 28 ноября 2011

Я что-то здесь упускаю?

Нет

Есть ли способ с Canvas "отключить альфа", чтобы сделать его более быстрым?

Нет, прости.Альфа просто в элементе, несмотря ни на что, как факт соглашений HTMLElement на сегодняшний день, я представляю.Фактически по умолчанию состояние холста составляет 100% черных пикселей с полной прозрачностью.

...