2015-06-16 5 views
3

Я только начал играть с холстом и WebGL, прочитать некоторые статьи, и т.д .. и, как мне известно, WebGL должно быть гораздо быстрее, чем холст, но в этих следующих тестах он заметно медленнее:Почему WebGL медленнее Canvas?

Я запускать их в Chrome и Firefox, и в браузере разница составляла около 80% процентов.

Почему холст визуализируется быстрее? Является ли jsperf неточным? Улучшен ли холст в браузерах?

(PS:. Я не автор тестов, я просто нашел их)

+1

Для меня первый тест закончился тем, что WebGL стал быстрее в Chrome. Я думаю, что это всего лишь вопрос поставленной задачи, один лучше, чем другой. – SeinopSys

+0

Хмм интересно, для меня преимущество холста всегда между 50-80%. Что может вызвать такую ​​большую разницу? – NoNameProvided

+1

Различные варианты браузеров и емкость графической карты ПК играют большую роль здесь, на мой взгляд. – SeinopSys

ответ

5

Короткий ответ, что WebGL/OpenGL не предназначена для рисования одной четверной в то время. Графические процессоры предназначены для массового параллелизма и, таким образом, для того, чтобы извлечь максимальную выгоду из webgl, которую вы должны рисовать партиями.

Вы должны сравнивать рисунки 10k изображений в холсте и рисунках 10k изображений в webgl с использованием соответствующей реализации webgl. Однако большинство найденных вами webgl-библиотек написаны для удобства для клиента, но не обязательно для максимальной производительности.

Моя реализация 2d webgl renderer намного быстрее, чем холст (100 раз +), особенно если вам нужно повернуть/масштабировать изображения. И, конечно, если вам нужны ваши собственные операции смешивания, то webgl - единственный способ пойти.

+0

Является ли ваша реализация открытым исходным кодом? – NoNameProvided

+0

К сожалению нет, и код по-прежнему в основном используется для внутреннего использования (его беспорядок) –

Смежные вопросы