User posts crantisz
01 September 2017 15:30
Ответ на сообщение пользователя Юрий Ковеленов
Камера типа TARGET вращается вокруг точки в 3D пространстве. Вы можете изменять координаты этой точки в настройках камеры Target Location.
Это понятно, что камера вращается вокруг определенной точки, называемой pivot. У нее есть 3 координаты в сцене - Scene X, Scene Y и Scene Z, и в тоже самое время можно сказать, что у нее есть координаты в плоскости HTML-canvas: canvas X и canvas Y, и как я понимаю, они равны 50% и 50%.
Проблемы задать Scene X, Scene Y и Scene Z - не возникает.
Не известно как задать именно canvas X и canvas Y
01 September 2017 13:19
Требуется фиксировать за каждым пользователем статус сообщений, а это значит что требуется сохранение информации о пользователях в базе.Все делается гораздо проще. Сохраняется в базе время предыдущего визита. А в текущем визите используем куки. Допустим, я зашел на сайт после 3х дневного перерыва. Сообщения 3дня назад и ранее - не новые. Сообщения в куках (и не обновлены позже чем указано в куках) - не новые. Остальное - отмечаем как новое. Так делается в большинстве форумных движков.
Чем они отличаются от visited в контексте данного решения?тем, что можно увидеть, что в ранее посещенном топике появилось новое сообщение.
01 September 2017 13:08
Заметил, что параметр shift у камеры не поддерживается:
Есть ли какой-либо другой способ сместить центр камеры? На данный момент, камера в режиме TAGET вращается таким образом, что виртуальный pivot камеры всегда совпадает с центром canvas. А мне нужно указать конкретные координаты на canvas, где должен находится pivot. Т.е. фактически сдвинуть изображение в canvas в сторону, не изменяя ничего в самой сцене и камере:
Желательно сделать это с помощью JS, чтобы при необходимости реагировать на изменения ориентации устройства.
Есть ли какой-либо другой способ сместить центр камеры? На данный момент, камера в режиме TAGET вращается таким образом, что виртуальный pivot камеры всегда совпадает с центром canvas. А мне нужно указать конкретные координаты на canvas, где должен находится pivot. Т.е. фактически сдвинуть изображение в canvas в сторону, не изменяя ничего в самой сцене и камере:
Желательно сделать это с помощью JS, чтобы при необходимости реагировать на изменения ориентации устройства.
01 September 2017 11:20
Написал функцию, делающую плавное приближение камеры к объекту. Камера в режиме TARGET. Выглядит это примерно так:
Проблема в том, что периодически (не понятно от чего зависит) приближение выполняется не плавно, а с поддергиванием (Почти всегда, в большей или меньшей степени). С функцией rotate_camera() модуля camera а так-же target_set_pivot_translation() таких проблем нет.
Отчего это происходит и как можно исправить?
function zoom( distance, time){
var cam_obj = m_scenes.get_active_camera();
var current_distance = m_cam.target_get_distance(cam_obj);
....
m_time.animate(0, 1.0, time, function(e) {
...
var delta_distance=(distance-current_distance)*e+current_distance
m_cam.target_set_distance(cam_obj,delta_distance);
Проблема в том, что периодически (не понятно от чего зависит) приближение выполняется не плавно, а с поддергиванием (Почти всегда, в большей или меньшей степени). С функцией rotate_camera() модуля camera а так-же target_set_pivot_translation() таких проблем нет.
Отчего это происходит и как можно исправить?
01 September 2017 11:03
Не получилось воспользоваться функцией rotate_camera. Поведение показалось странным,
поэтому попробовал заглянуть в исходный код, чтобы разобраться:
На сколько я понял, тут какая-то ошибка, поскольку, delta_phi и delta_theta получаются одинаковыми числами:
В результате камера может поворачиваться только вертикально, горизонтально или под углом 45 градусов:
поэтому попробовал заглянуть в исходный код, чтобы разобраться:
На сколько я понял, тут какая-то ошибка, поскольку, delta_phi и delta_theta получаются одинаковыми числами:
var delta_phi = 0;
var delta_theta = 0;
..
var cur_animator = m_time.animate(0, angle, time, function(e) {
...
delta_phi -= e;
delta_theta -= e;
В результате камера может поворачиваться только вертикально, горизонтально или под углом 45 градусов:
if (angle_theta && angle_phi)
m_cam.rotate_camera(cam_obj, delta_phi, delta_theta); //delta_phi=delta_theta
else if (angle_theta)
m_cam.rotate_camera(cam_obj, 0, delta_theta);
else if (angle_phi)
m_cam.rotate_camera(cam_obj, delta_phi, 0);
01 September 2017 10:20
29 August 2017 11:53
Камера в режиме TAGET. При вращении камеры в веб-плеере есть едва заметное сглаживание или запаздывание. Как можно настроить сглаживание при вращении камеры пользователем, и при необходимости отключить его, или, наоборот, сделать более заметным? Как сделать это на JS? Например, если это мобильное устройство, отключить его совсем?