MojorDoMo и three.js (3d сцены)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: MojorDoMo и three.js (3d сцены)

Сообщение nick7zmail » Чт ноя 12, 2015 7:48 pm

Переходы между камерами уже достойно смотрятся)) Еще бы еще какую-нибудь минималистичную анимацию прописывать)) Типа при простое сцена начинает вращаться, или покачиваться...чтоб не как статичная картинка выглядело...все таки 3d как никак))....

И да...я тут попробовал экспорченый из sweethome3d .obj закинуть в threejs editor, потом экспортить сцену...короче что то не срослось))) Есть варианты? У тебя .obj со сценой норм подгружаются?

И второй момент...экспорченые объекты из sweethome3d загружаются в threejs без текстур...есть решение?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и three.js (3d сцены)

Сообщение sergejey » Чт ноя 12, 2015 9:27 pm

nick7zmail писал(а):Переходы между камерами уже достойно смотрятся)) Еще бы еще какую-нибудь минималистичную анимацию прописывать)) Типа при простое сцена начинает вращаться, или покачиваться...чтоб не как статичная картинка выглядело...все таки 3d как никак))....

И да...я тут попробовал экспорченый из sweethome3d .obj закинуть в threejs editor, потом экспортить сцену...короче что то не срослось))) Есть варианты? У тебя .obj со сценой норм подгружаются?

И второй момент...экспорченые объекты из sweethome3d загружаются в threejs без текстур...есть решение?
Я со сложными сценами пока не работал, так что присылай примеры, будем проверять и устранять.

Насчёт анимации сцены можно подумать... Например по-умолчанию вращать дефолтную камеру вокруг центра сцены.

Отправлено с моего SM-G800H через Tapatalk

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: MojorDoMo и three.js (3d сцены)

Сообщение nick7zmail » Чт ноя 12, 2015 10:08 pm

sergejey писал(а): Я со сложными сценами пока не работал, так что присылай примеры, будем проверять и устранять.

Насчёт анимации сцены можно подумать... Например по-умолчанию вращать дефолтную камеру вокруг центра сцены.
По-моему анимацию проще на откуп пользователю оставить)). Включить "Дополнительный javascript код" куда-нибудь в рендер, а там твори что хочешь) Например нужен отклик сцены на мышь - вписал

Код: Выделить всё

                camera.position.x += ( - mouseX - camera.position.x ) * .05;
                camera.position.y += ( - mouseY - camera.position.y ) * .01; 
Нужно кубик покрутить - нет проблем

Код: Выделить всё

cube1.rotation.y += 0.01; 
Про сцены - они вроде не такие сложные. Начнем с примитива - лампа из sweethome. Obj-лодером грузится спокойно (не проверял, но более сложные сцены грузились в предыдущих моих примерах). Вот она загруженная в threejs editor
Пример.jpg
Пример.jpg (151.31 КБ) 8011 просмотров
С камерой и PointLight-ом. Экспортим сцену, пробуем указать её в MD - и получаем пустой черный квадрат. И кстати через секунд 5-10 после попытки загрузить - отлетает веб-сокет.
ВебСокет.jpg
ВебСокет.jpg (21.94 КБ) 8011 просмотров
Может с этим связано?
Ну вот в общем архивчик с лампой и сценой)
Вложения
Export.rar
(19.72 КБ) 201 скачивание
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и three.js (3d сцены)

Сообщение sergejey » Вт ноя 17, 2015 12:51 pm

Не, там не с сокетами было связано -- просто мой самописный загрузчик сцен не понимал BufferGeometry, через которую была лампа описана. Сейчас понимает :)
Изображение

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: MojorDoMo и three.js (3d сцены)

Сообщение nick7zmail » Вт ноя 17, 2015 2:36 pm

Геометрию теперь действительно понимает, а вот клики по ней почему-то не отрабатывает...objects.push() включена для этой геометрии?

И второй момент - можно ли подключить файлы export.mtl к файлам вида export.obj? Дело в том что из sweethome mtl экспортятся, а в редактор не подгружаются, соответственно в экспорте сцены их нет. Но obj_mtl_loader'ом они грузятся нормально. Так что вот...хотелось бы подключить текстуры.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и three.js (3d сцены)

Сообщение sergejey » Вт ноя 17, 2015 3:43 pm

nick7zmail писал(а):Геометрию теперь действительно понимает, а вот клики по ней почему-то не отрабатывает...objects.push() включена для этой геометрии?
Да, было включено, но, как оказалось, нужно проводить кое-какую дополнительную калькуляцию для BufferGeometry, чтобы raycaster мог находить пересечения при клике. И ещё интересный момент -- в присланном примере mesh самой лампы идёт как дочерний объект от объекта "lamp.obj", так вот связь в сцене надо ставить именно с mesh-ем (без имени и со сложным uuid) -- именно для него срабатывают клики и он может прятаться/показываться. Привязка к родительскому объекту ничего не даёт. Для удобства сделал выбор объектов и камер в виде селекта.
nick7zmail писал(а):И второй момент - можно ли подключить файлы export.mtl к файлам вида export.obj? Дело в том что из sweethome mtl экспортятся, а в редактор не подгружаются, соответственно в экспорте сцены их нет. Но obj_mtl_loader'ом они грузятся нормально. Так что вот...хотелось бы подключить текстуры.
Т.е. такие файлы надо загружать вместо сцен? А там будет свет и камеры?
И можно ещё пример такого файла и кода для его загрузки?

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: MojorDoMo и three.js (3d сцены)

Сообщение nick7zmail » Вт ноя 17, 2015 4:36 pm

sergejey писал(а): Т.е. такие файлы надо загружать вместо сцен? А там будет свет и камеры?
И можно ещё пример такого файла и кода для его загрузки?
Нет конечно, не вместо сцен. mtl-это файл описания текстур и материалов, на сколько я понял. Просто редактор его не подгружает. Есть какие-то настройки у материала, но почему-то у меня галочку не хочет ставить на map. На skinning ставится нормально.
111.jpg
Параметры в редакторе
111.jpg (63.69 КБ) 7946 просмотров
А obj_mtl_loader при загрузке obj файла - если указать mtl-файл он его грузит. Т.е. добавить надо условие - если присутствует .mtl-файл c именем .obj файла - грузить модель при помощи obj_mtl_loader. Пример работы лодера вот тут есть например. Приложил на всякий случай архив с простеньким файликом с 1 текстурой, для тестов).
Вложения
export2.rar
(71 КБ) 175 скачиваний
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и three.js (3d сцены)

Сообщение sergejey » Вт ноя 17, 2015 4:53 pm

Если я правильно разобрался, то OBJMTL loader это просто два загрузчика, объединённые в один (obj + mtl). Т.е. по большому счёту можно использовать только mtl для загрузки материалов. Т.е. на выходе мы будем иметь два файла scene.json и scene.mtl -- последний (если он есть) подгружаем во время формирования списка материалов для объектов сцены. Интересно, надо попробовать.

Update: Поставил SweetHome, загрузил реальный план квартиры из примеров, экспортировал в OBJ -- получил кучу файлов, ОК. Зашел в редактор, импортировал OBJ и вижу, что загрузился как единый здоровенный объект, т.е. никакой внутренней иерархии. Ладно, попробовал добавить свет и камеру и экспортировать как сцену -- фиг вам, долго думал, но сохранить файл сцены не предложил. Видимо, слишком сложная модель. По ходу дела придётся использовать SweetHome только для генерации общих планов (с текстурами), а остальные объекты уже добавлять через отдельный импорт их в сцену -- не очень удобно.

Интересно, а что ещё поддерживает экспорт в json со всей иерархией? blender? Что б можно было все объекты сразу загрузить в three.js редактор.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: MojorDoMo и three.js (3d сцены)

Сообщение nick7zmail » Вт ноя 17, 2015 5:50 pm

Да, иерархия действительно из sweethome ни коем образом не грузится. Чтобы получить дерево - приходится экспортить отдельно obj, и собирать на сцене в редакторе. Я думал так и задумывалось)) mtl вроде как привязывается к obj. Если на сцене несколько obj и один mtl - не думаю что работать будет...по-этому мне кажется будет просто несколько mtl, и несколько отдельных obj, которые будут загружаться в один json.

На счет блендера - может тогда все же стоит посмотреть в сторону blend4web? Как это изначально советовал lavstudia. Типа русская разработка, и вроде уже продвинутей threejs.

Но на мой взгляд он показался сильно тяжелым. Нереальное кол-во библиотек вспомогательных за собой тащил...Но с другой стороны и сэмплы кажутся внушительнее.

Upd: Ну кстати говоря, попробовал из блендера загрузить...вроде распознает дерево, и дает двигать отдельно каждый объект...
Интерфейс у него правда капец замудренный)
Вложения
111.jpg
111.jpg (15.5 КБ) 7926 просмотров
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: MojorDoMo и three.js (3d сцены)

Сообщение sergejey » Вт ноя 17, 2015 6:16 pm

blend4web по мне слишком монструозный. для blender-а есть возможность экспорта сцен в threejs, так что можно попробовать обойтись без веб-редактора и работать через Blender.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить