Pull to refresh

3d движок на js + canvas

Reading time 2 min
Views 14K
Как то раз наткнулся я на забугорную статью про светлое будущие Canvas и WebGL, и была в этой статье картинка с «3d чайничком» нарисованном c помощью canvas'a, поразила она меня ну прям ващеее, понял я что должен сделать нечто подобное, и сделал.

image


Делая поправку на производительность JavaScript, z-буфер реализовал по полигонный, а не по пиксельный. Выглядит всё хорошо пока нет взаимного пересечения проникновения моделей.

Экспорт модели происходит прямо из 3ds max, через ASCII Scene Export.

image

Должно работать во всех хороших последних браузерах. В демку добавил «спидометр» или «FPSмометр» или «FPSметр», ну вы поняли — в вверху справа, «текущий FPS» — опредаляяется по последним 10и рендерам, а «средний» по всем рендерам с самого начала работы скрипта, серез пару минут среднее значение перестает колебаться и показывает истинное значение скорости работы браузера.

У меня расстановка сил следующая:

image

для ie использовался explorercanvas

— огорчает отсутствие поддержки canvas в ie9 preview, по первым впечатлением jit в нём работает оч хорошо.

Какое будущие у этой технологии? Кто-то видит в этом основу для будущих онлайн игр, кто-то конкурента флешу, кто-то ненужный тег в html, а как вы считаете? Пока что единственное применение которое я нашел — это потестировать скорость работы браузеров.

P.S. пока WebGL не используется, но планирую его прикрутить и сравнить результаты.

UPD1: (версии браузеров)
Chrome 5.0.375.53 beta
FireFox 3.6.3
Opera 10.51

UPD2: (подробности)
image

UPD3: Хабраэффект со свистом вынес vps,… подкрутил гайки, пнул и он снова в строю.

UPD4: Добавил результаты FF 3.7 Alpha 4
(спасибо за результаты в комментах, но я тут подумал, если я их добавлю в сводную статистику, то она не будет отражать реальную картину, ибо железо у всех разное — по слабже/по мощнее)
Tags:
Hubs:
+111
Comments 74
Comments Comments 74

Articles