Процессинг это, конечно хорошо, и более чем достаточно для различной индикации, но вот с управлением там по-сложнее. Мне удалось словить клики на области отрисовки, но не получилось опознать объект на котором был клик. И поскольку я много слышал ( в том числе в вышеупомянутой теме) про возможности three.js, решил попробовать по-копать её)). Сперва немного о перспективах:
Как писали в той теме:
lavstudia писал(а):Alex, отлично!
Я вчера как раз начал реализацию 3D сцены, для квартиры.
Схема следующая:
1) В программе Sweet Home 3D - создаем 3D сцену (своей квартиры)
2) Экспортируем в OBJ формат
3) На этом этапе мы уже можем видеть и собственно если нет необходимости в детализации и дополнения - использовать полученный obj в three.js (как пример импортировать в редактор three.js: http://threejs.org/editor/ (редактор имеет открытый исходный код - на github, как и three.js))
4) Если необходимо качество и детализация объектов, а также добавление 3D объектов сцены (как пример всевозможные датчики) необходима программа Blender 3D (популярный 3D редактор с открытым исходным кодом)
5) В Blender 3D импортируется полученный obj - по необходимости модернизируется
6) Из Blender 3D модернизированная 3D сцена экспортируется в формат three.js - https://github.com/mrdoob/three.js/tree ... rs/blender
7) Далее необходимо реализовать навигатор на three.js по 3D сцене (можно взять за основу http://threejs.org/editor/)
8) Реализовать взаимодействие с MajorDoMo на уровне JavaScript (это легко - но тредует определенной архитектурной проработки)
Как-то так..
Как будут готовые результаты - опубликую.
PS: Задача не трудная, очень жаль что так мало свободного времени....
На three.js можно создавать полностью интерактивные реалистичные 3d сцены. Где то был классный пример, но не смог его найти. Пример был что то вроде этого (седьмая сцена с комнатой).
Но, пока вернемся на землю. По скольку я не особо шарю в программировании, особенно на яве - могу пока предложить лишь это =D. Да да, это просто кубики в пространстве нарисованные на three.js. Но, немного по-шаманив, сделал так, что при нажатии на кубики запускаются методы MD. Не обошлось конечно без middle_connector'а от Alex. Начал понимать - зачем он нужен))). Бонусом - кубики разлетаются в разные стороны при нажатии =D...ну это так, смотрел на разные подключаемые библиотеки. Для того чтобы отключить - достаточно удалить соответствующий кусок кода (после коммента //бонус). Запаковал в архив минимально рабочий набор). Должно завестись на чистой системе. Достаточно закинуть все в папку htdocs. Вызывать по адресу <ip сервера>/three/test.html. Соответственно нужно поправить имена объектов и методов на свои.
Код: Выделить всё
case 0:
test_js = new middle_connector('свет_на_кухне.turnon', 'l', 5000, 1);
test_js.objectToSend = 'свет_на_кухне';
test_js.methodToSend = 'turnon';
test_js.MultiSendData();
break;
case 1:
test_js = new middle_connector('свет_в_зале.turnon', 'l', 5000, 1);
test_js.objectToSend = 'свет_в_зале';
test_js.methodToSend = 'turnon';
test_js.MultiSendData();
break;
case 2:
test_js = new middle_connector('свет_в_ванной.turnon', 'l', 5000, 1);
test_js.objectToSend = 'свет_в_ванной';
test_js.methodToSend = 'turnon';
test_js.MultiSendData();
break;
Спасибо за внимание!