Я провел некоторое время, читая документы и играя с ним. В качестве теста я создал игру жизни Конвея, используя их объект холста:
жизнь
На самом деле это полностью выполняется в javascript и работает на удивление хорошо; намного быстрее, чем эквивалентный тест, который я сделал в Unity3D. Перемещение его в пиксель-шейдер будет следующим шагом в производительности, тогда оно будет действительно летать.
Это серьезный проект на переднем крае графических технологий. Они приняли действительно хорошие решения об архитектуре и ее интеграции с браузером.
Но это низкоуровневый графический API - на уровне, аналогичном DirectX или OpenGL, и он использует современный «программируемый конвейер» вместо традиционного / устаревшего «конвейера с фиксированными функциями». С точки зрения непрофессионала, это означает, что он не будет работать на старых компьютерах, но он может полностью использовать более новое графическое оборудование с точки зрения как производительности, так и функций. Это также означает, что разработчики должны понимать современные методы графического программирования, такие как шейдеры, графики рендеринга и т. Д.
Он поддерживает веб-форматы для изображений (например, jpg и png), но также поддерживает текстуры DDS в игровом стиле, которые гораздо более оптимизированы для загрузки в ОЗУ видеокарты. Он может загружать основанные на XML активы COLLADA, но также имеет бинарный интерфейс JSON для оптимизированной загрузки обработанных активов.
Чтобы O3D действительно заработал, ему понадобятся высокоуровневые API-интерфейсы JavaScript, построенные поверх него. В идеале что-то вроде игрового движка, который включает физику и звук, имеет согласованную модель освещения и оптимизированный формат активов.