
MojorDoMo и three.js (3d сцены)
Модератор: immortal
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: MojorDoMo и three.js (3d сцены)
Хм, у меня вывелось нормально:


Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: MojorDoMo и three.js (3d сцены)
У меня вот так
- Вложения
-
- 22.jpg (53.11 КБ) 9991 просмотр
-
- 11.jpg (139.44 КБ) 9991 просмотр
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: MojorDoMo и three.js (3d сцены)
Сергей, кажется понял почему не грузит. Отсутствует файл
И еще немного по поводу библиотек. После обновления с веб-сокетами - перестал на сцене отрисовываться скетч на processing.js. Раньше рисовался прямо внутри сцены (часы), сейчас - не хочет. В чем проблема может быть? В application.html он прописан Какая страничка за сцены отвечает? Может там её еще нужно подключить?
Код: Выделить всё
http://192.168.1.179/js/threejs/loaders/SceneLoader.js Failed to load resource: the server responded with a status of 404 (Not Found)
Код: Выделить всё
<script type="text/javascript" src="/js/processing.js"></script>
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: MojorDoMo и three.js (3d сцены)
Спасибо за обновление. Уже нашел SceneLoader.js на гитхабе в папке depricated. Думал - приду домой, скопирую - проверю, а тут уже обнова. Сейчас все работает.
С процессингом тоже разобрался. Видимо не скопировал в templates_alt страничку action_usual.html. Именно там была подключена библиотека, а после обновы - затерлась.
Немного покопался вчера со SceneLoder-ом. Попробовал на отдельно взятой страничке подгрузить сцену (с отдельной страничкой проще работать). Сцена подгрузилась, но рендерется не захотела. Возможно не так указывал метод/место вывода...хотел попробовать несколько фишек сделать с опознанием клика по объекту, привязки к MD...ну не суть. Это я к чему...
1) На сколько я понял объектам добавленным в сцену присваиваются имена равные uuid. Можно как нибудь обратиться к объекту на сцене? Что то формата loaded.objects.<uuid>, или подобной последовательностью? В лодере слишком много кода, и различных вспомогательных загрузчиков) не успел перелопатить, подумал - проще спросить.
2) Я конечно не весь код просматривал, но по-моему поле "дополнительный javascript код" в этом элементе не используется. Предлагаю его включить, например, в функцию инициализации. Так можно будет подключить, скажем тот же мидл-коннектор, и считать свойства объектов MD. Пока чистым кодом, потому что не представляю как это привязать в gui...
3) Можно на подобии поля "дополнительный javascript код" добавить render code, и запускать в функции рендера. На сколько я знаю - все анимации, движения (в т.ч. движения/перемещения камеры, самих объектов) описываются обычно там. Скажем воткнул туда что-то типаи в элементе камера поехала))
Источники света я перерисовывал тоже в функции рендера. И так же можно будет связать со свойствами MD, указанными при инициализации.
С процессингом тоже разобрался. Видимо не скопировал в templates_alt страничку action_usual.html. Именно там была подключена библиотека, а после обновы - затерлась.
Немного покопался вчера со SceneLoder-ом. Попробовал на отдельно взятой страничке подгрузить сцену (с отдельной страничкой проще работать). Сцена подгрузилась, но рендерется не захотела. Возможно не так указывал метод/место вывода...хотел попробовать несколько фишек сделать с опознанием клика по объекту, привязки к MD...ну не суть. Это я к чему...
1) На сколько я понял объектам добавленным в сцену присваиваются имена равные uuid. Можно как нибудь обратиться к объекту на сцене? Что то формата loaded.objects.<uuid>, или подобной последовательностью? В лодере слишком много кода, и различных вспомогательных загрузчиков) не успел перелопатить, подумал - проще спросить.
2) Я конечно не весь код просматривал, но по-моему поле "дополнительный javascript код" в этом элементе не используется. Предлагаю его включить, например, в функцию инициализации. Так можно будет подключить, скажем тот же мидл-коннектор, и считать свойства объектов MD. Пока чистым кодом, потому что не представляю как это привязать в gui...
3) Можно на подобии поля "дополнительный javascript код" добавить render code, и запускать в функции рендера. На сколько я знаю - все анимации, движения (в т.ч. движения/перемещения камеры, самих объектов) описываются обычно там. Скажем воткнул туда что-то типа
Код: Выделить всё
var r = Date.now() * 0.0005;
camera.position.x = 700 * Math.cos( r );
Источники света я перерисовывал тоже в функции рендера. И так же можно будет связать со свойствами MD, указанными при инициализации.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: MojorDoMo и three.js (3d сцены)
Выложил свежие наработки по этой теме.
По-тиху приближаемся к интерактиву. Сейчас для элементов типа 3д-сцена можно добавлять состояния, каждое состояние может быть привязано к 3д-объекту или камере (названия пока вручную вбиваются, но потом можно делать выбор).
Привязка к объекту для того, чтобы показывать/прятать объект в зависимости от условий состояния -- это работает. Так же привязка будет использоваться для обработки кликов по объекту -- пока не работает (тут застопорился, не могу пока разобраться с тем, как определить, по какому объекту был клик мышкой). Кстати, надо проверить будет ли работать привязка с источниками света.
Привязка к камере для того, чтобы по условию переключать вид на указанную камеру (в будущем, возможно, будет плавный переход между камерами, но пока просто переключение).
P.S. Насчёт кода из редактора -- то ли я не туда смотрел, то ли он не экспортируется при экспорте сцены. У меня в редакторе был код для камеры и его в итоговом JSON нету после экспорта.
картинкаПоказать

Привязка к объекту для того, чтобы показывать/прятать объект в зависимости от условий состояния -- это работает. Так же привязка будет использоваться для обработки кликов по объекту -- пока не работает (тут застопорился, не могу пока разобраться с тем, как определить, по какому объекту был клик мышкой). Кстати, надо проверить будет ли работать привязка с источниками света.
Привязка к камере для того, чтобы по условию переключать вид на указанную камеру (в будущем, возможно, будет плавный переход между камерами, но пока просто переключение).
Пример в действииПоказать
1. Выключатель включен (объект Сфера виден, активна Камера 2)

2. Выключатель выключен (объект Сфера скрыт, активна Кмера 1 (камера по-умолчанию))


2. Выключатель выключен (объект Сфера скрыт, активна Кмера 1 (камера по-умолчанию))

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: MojorDoMo и three.js (3d сцены)
Уже неплохой уровень интеграции).sergejey писал(а):Выложил свежие наработки по этой теме.
По-тиху приближаемся к интерактиву. Сейчас для элементов типа 3д-сцена можно добавлять состояния, каждое состояние может быть привязано к 3д-объекту или камере (названия пока вручную вбиваются, но потом можно делать выбор).
По поводу кликов по объектам - как раз с этого и начал знакомство с threejs, т.к. на процессинге этого не получилось.sergejey писал(а): Так же привязка будет использоваться для обработки кликов по объекту -- пока не работает (тут застопорился, не могу пока разобраться с тем, как определить, по какому объекту был клик мышкой). Кстати, надо проверить будет ли работать привязка с источниками света.
В общем механизм примерно такой: строится вектор из положения мыши, перпендикулярно камере
Код: Выделить всё
...
raycaster = new THREE.Raycaster();
mouse = new THREE.Vector2();
...
function onDocumentMouseDown( event ) {
event.preventDefault();
mouse.x = ( event.clientX / renderer.domElement.width ) * 2 - 1;
mouse.y = - ( event.clientY / renderer.domElement.height ) * 2 + 1;
raycaster.setFromCamera( mouse, camera );
...
Код: Выделить всё
var intersects = raycaster.intersectObjects( objects );
Код: Выделить всё
if ( intersects.length > 0 ) {
switch ( intersects[ 0 ].object.name ) {
case 0: //имя объекта
test_js = new middle_connector('свет_на_кухне.turnon', 'l', 5000, 1);
test_js.objectToSend = 'свет_на_кухне';
test_js.methodToSend = 'turnon';
test_js.MultiSendData();
break;
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: MojorDoMo и three.js (3d сцены)
Ура! Этого примера как раз не хватало. У меня был похожий код, но немного другой. С этим всё заработало -- события по клику теперь отрабатываются отлично, т.е. то, что прописано как действие при клике, отрабатывает как нужно при клике на 3д объект.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: MojorDoMo и three.js (3d сцены)
Очередной затык
Не могу сделать плавный переход между камерами. Ну никак не получается...
Есть такой код:
Из него хочется сделать нужный с плавным переходом, чтобы не просто камера менялась, а camera переезжала в позицию new_camera и меняла направление "взгляда".
Пробовал примеры с Tween.js, но ничего не выходит. Даже без плавности не могу присвоить camera такие же свойства, что бы она стала на место new_camera. В общем, нужна помощь зала

Есть такой код:
Код: Выделить всё
if (obj[i].STATE=='1') {
new_camera = scene.getObjectByName( elem.data('s3d_camera'), true );;
}else {
new_camera = default_camera;
}
camera=new_camera;
Пробовал примеры с Tween.js, но ничего не выходит. Даже без плавности не могу присвоить camera такие же свойства, что бы она стала на место new_camera. В общем, нужна помощь зала

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: MojorDoMo и three.js (3d сцены)
Я еще предыдущие то фишки протестить не успел =D...плавного перехода между несколькими камерами скорее всего не получится. Единственный вариант подобного перехода - "прокатить" первую камеру до позиции второй, переключить на вторую камеру, и первую вернуть на свою позицию.sergejey писал(а):Очередной затыкНе могу сделать плавный переход между камерами. Ну никак не получается...
Из него хочется сделать нужный с плавным переходом, чтобы не просто камера менялась, а camera переезжала в позицию new_camera и меняла направление "взгляда".
Пробовал примеры с Tween.js, но ничего не выходит. Даже без плавности не могу присвоить camera такие же свойства, что бы она стала на место new_camera. В общем, нужна помощь зала
Tween, если я правильно помню - по моему для какой-то пост-анимации после перемещения...а может для самой анимации...может что-то путаю.
Конкретно с переключением есть пример, просто он первым делом вспомнился. Листал примеры в самом начале, чтобы посмотреть на что способна threejs, сейчас код не просматривал. Вот, может поможет. Кстати - там же с изменением точки "взгляда" -1,2 камеры.
Последний раз редактировалось nick7zmail Вт ноя 10, 2015 9:38 pm, всего редактировалось 1 раз.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".

>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: MojorDoMo и three.js (3d сцены)
Я так и собираюсь - катать одну камеру по позициям других камер. Tween как раз для плавного изменения атрибутов. Но пока что-то не работает.
Отправлено с моего SM-G800H через Tapatalk
Отправлено с моего SM-G800H через Tapatalk
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги