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

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

Модератор: immortal

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

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

Сообщение nick7zmail » Ср ноя 11, 2015 4:50 pm

Дорвался до тестов)
Все работает, все шикарно...SpotLight - тоже зажигается/гасится в зависимости от свойств. Методы привязанных объектов тоже работают. Все норм.
Попробовал поиграться немного с камерами - tween с ними вроде работает).

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

                        new TWEEN.Tween( camera.position ).to( {
                        x: camera2.position.x,
                        y: camera2.position.y,
                        z: camera2.position.z}, 2000 )
                    .easing( TWEEN.Easing.Elastic.Out).start(); 
Может поможет код...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

Сообщение sergejey » Ср ноя 11, 2015 6:21 pm

Одни мучения с этими переходами. Во-первых, была проблема с тем, что значения position у камер были нулевыми после загрузки сцены. Проблема, я думаю в том, что в файле сцены позиция и направление хранится в виде матрицы и я при загрузке устанавливаю матрицу целиком и при этом объект позиционируется как надо, но его свойства позиции не устанавливаются. Ладно, с этим разобрался, добился правильных значений, но плавный переход нифига не работает :(

Добился того что 1 не работает, а 2 работает. Как так?
Изображение

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

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

Сообщение nick7zmail » Ср ноя 11, 2015 7:10 pm

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

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

Сообщение sergejey » Ср ноя 11, 2015 10:50 pm

С этим threejs как по минному полю :)
Половина примеров, что я нахожу -- не рабочие.

В общем, снова спасибо за пример -- плавная смена координат камеры заработала (пока не загружал обновление). Надо ещё подобным же образом сделать смену направления, т.к. камеры не только координатами, но и направлением взгляда отличаются.

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

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

Сообщение nick7zmail » Чт ноя 12, 2015 6:14 am

sergejey писал(а):С этим threejs как по минному полю :)
Половина примеров, что я нахожу -- не рабочие.

В общем, снова спасибо за пример -- плавная смена координат камеры заработала (пока не загружал обновление). Надо ещё подобным же образом сделать смену направления, т.к. камеры не только координатами, но и направлением взгляда отличаются.
Хм...со сменой направления пока не сталкивался...обычно пользовался

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

camera.lookAt( scene.position ); 
Домой приду вечерком, попробую что-нибудь)). Может даже и на работе успею.
И кстати, раз уж объекты нашли как привязать, может тогда "дополнительный яваскрипт код" в функцию рендера вставить? Чтобы анимировать можно было камеру, объекты и т.д.? Или для этого тоже есть какие-либо задумки?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

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

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

Кстати фокус камеры вроде как контролируется вектором...

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

 camera.lookAt(new THREE.Vector3(x,10,0));
lookAtMesh.position=new THREE.Vector3(x,10,0); 
Данные этого вектора есть в json? (сейчас нет возможности проверить).
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 7:46 am

nick7zmail писал(а):Кстати фокус камеры вроде как контролируется вектором...

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

 camera.lookAt(new THREE.Vector3(x,10,0));
lookAtMesh.position=new THREE.Vector3(x,10,0); 
Данные этого вектора есть в json? (сейчас нет возможности проверить).
Если бы был... С ним как и с позицией, надо вытягивать из матрицы. Попробую тоже сегодня разобраться.

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

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

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

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

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

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

"matrix": [ <y1,z1>,<z2>,<y2>,<??>,<z2>,
            <x1,z1>,<x2>,<??>,<y2>,<x2>,
            <x1,y1>,<??>,
            <x-pos>,<y-pos>,<z-pos>,1]
x,y,z - числа которые меняются соответственно при повороте (Rotation) камеры соответственно по осям x,y,z... причем x1=x1, x2=x2 в разных ячейках матрицы, при повороте по только одной оси...но они могут различаться знаками...возможно знак просто противоположный, как то не следил за знаками. Вопросики - просто всегда нули, не понял от чего зависят. В общем какая то муть с этой матрицей). Числа так же меняются при изменении scale. У меня подозрение - что они определяют крайние лучи, идущие из камеры до прямоугольника/квадрата, ограничивающего обзор. Возможно это просто координаты точек, через которые проходят эти лучи....как то так в общем))

PS: Отредактировал сообщение позже. Появилась еще мысль, но как то туго формулируется. Попытаюсь описать...что-то типа того, что число которое меняется при повороте по нескольким осям-x1,y1 к примеру, это длина отрезка видимой грани камеры, x2,y2 - координата точки, через которую проходит отрезок (в данном случае в плоскости Z), а идет он из точки камеры...как то так...матрицу тогда проще так перегруппировать

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

"matrix": [ <y1,z1>,<z2>,<y2>,<??>,
            <z2>,<x1,z1>,<x2>,<??>,
            <y2>,<x2>,<x1,y1>,<??>,
            <x-pos>,<y-pos>,<z-pos>,1]
Но тогда кстати не сходится кол-во элементов в матрице...тогда первое предположение тоже не подходит...короче сам себя запутал =D.
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 11:10 am

Не царское это дело руками матрицу разбирать :)
Вот как я делаю, чтобы привести в порядок координаты камер из матрицы:

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

            var old_position = new THREE.Vector3();
            old_position.setFromMatrixPosition( camera.matrix );
            camera.matrixAutoUpdate = true;
            camera.position.setX(old_position.x);
            camera.position.setY(old_position.y);
            camera.position.setZ(old_position.z);
 
Я думаю есть что-то подобное и для направления/поворота.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

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

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

Так-с, продолжил "ковыряние" и добился перехода от одной камеры к другой с установкой вектора взгляда. Закопаешь одни грабли, вылазят другие -- теперь надо разобраться с rotation. Оказывается, оно для камеры вовсе не загружается (update: проверил, только для камер, для других объектов нормально всё). По крайней мере, если я в редакторе покручу камеру, то после загрузки она всё равно смотрит прямо. Координаты есть, направление есть, а поворота по оси направления взгляда нет.

Ну а так прикольно, камера по событию перескакивает плавно в нужное место и смотрит на нужный объект...

Изображение

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