После напряженной недели работы здесь, в carwow, я представляю свой проект: покажите трехмерный автомобиль с графическим интерфейсом, чтобы пользователь мог изменить цвет его кузова.

Используемые технологии: WebGL, Three.js, Hammer.js.

Первые впечатления

Было очень легко, даже весело, настроить сцену, документация по началу работы хорошо сделана, и я потратил свое время на создание собственных шейдеров для рендеринга металлических и сплошных красок с кубическими картами и другими причудливыми эффектами. Все это было легко сделать для опытного графического программиста.

Что следует улучшить?

Многие функции не задокументированы, поэтому мне пришлось копаться в поисках информации, включая чтение фактического исходного кода. Пример недокументированной функциональности: ObjectLoader.

Импорт активов был болезненным; Я пробовал форматы FBX, OBJ и JSON, и у всех были проблемы с потерей информации о материалах, ссылками на текстуры, взрывом меша или просто генерированием исключений, как будто завтра не наступит. Изначально я купил ассет 3DMax в популярном интернет-магазине, но после двух дней безрезультатных возни с 3DMax и Blender мне пришлось рипить ассеты из другого демо, чтобы чего-то добиться.

Я думаю, что сообщество должно сосредоточиться на создании некоторых инструментов (полунедокументированный редактор three.js очень помог мне в отладке ресурсов) и улучшенной документации для импорта ресурсов и обработки ошибок.

Графические приложения с реальными приложениями во многом зависят от ресурсов, и это одна из основных причин, по которой даже продвинутые инженеры выбирают дорогие готовые движки вместо того, чтобы создавать все с нуля для своих проектов.

Кроме того, я думаю, что three.js пытается делать слишком много вещей, и в результате он кажется довольно тяжелым для процессора.

Скриншоты

Заинтересованы в оказании влияния? Присоединяйтесь к команде carwow!
Чувствуете себя в обществе? Присоединяйтесь к нам в Twitter и LinkedIn :-)