Сообщения, созданные пользователем ДЕНИС
16 апреля 2020 00:25
27 февраля 2020 21:59
10 марта 2018 23:26
08 марта 2018 02:47
Ответ на сообщение пользователя Александр Романов
В качестве параметра необходимо передавать специальный объект
вида:{ left:m_vec4.create(), right:m_vec4.create(), top:m_vec4.create(), bottom:m_vec4.create(), near:m_vec4.create(), far:m_vec4.create(),
Да я конечно подумал, что инициализировать надо массив массивов, но посмотрев в документацию в которой написано, что MAT4 создается просто через create(); так и сделал..
думается, что стоит документацию в этом разделе расширить.. а то не ясно совсем, как пользоваться этим, а копаться все время в исходниках не вариант. да и вроде всегда сразу проверяется объект, который приемником является и если не подходит то сразу пишет.. а тут нет..
Денис
07 марта 2018 00:27
Ответ на сообщение пользователя Александр РомановНУ не то чтобы все …. : https://www.blend4web.com/api_doc/module-camera.html#.get_camera_angles
так. out параметр обязателен в конкретно этой функции. Он используется в качестве буфера, в который будет записано возвращаемое значение. Все модули используют подобный подход, который позволяет переиспользовать память, а не выделять ее каждый раз.
а так понятно в целом.
Ответ на сообщение пользователя Александр Романов
Боюсь, что скопировать параметры проекции будет очень затруднительно, поскольку неактивные камеры загружаются как обычные объекты и данные о перспективных преобразованиях теряются. Таков текущий дизайн. Получится скопировать только tsr.
…..
Как я уже сказал, она загружается как обычный объект. Найти ее можно при помощи get_object_by_name итп.
Вторая камера не загружается ни как … хотя в JSONe есть … я проверил не один раз выводя все объекты и вызывая в лог имена, кроме того раз на ее не переключиться и параметры не скопировать то оно и не подойдет, возвращаемся к плану "А" а именно:
вопрос есть ли где то пример такого :
- Имеем перспективную таргет камеру с управлением Camera,
- сохраняем текущие параметры таргет-камеры перед сменой вида,
m_cam. get_target ……
- делаем ее статической ,
m_cam.static_setup(camera);
- переносим в нужную точку, разворачиваем на нужную точку,
m_cam_a.move_camera_to_point(camera, camera_top_position, cam_lin_speed, cam_angle_speed, camera_top_cb);
- БЫЛ ПЛАН получить данные с примера камеры, (( но оказывается там не будет данных
тогда как создать правильную проекцию с камеры которая есть в бленедре верно настроенная?
cam_ortho_planesObj = m_cam.get_frustum_planes(camera_top, cam_ortho_planesObj );
- далее нужно отключить перспективу, а точнее сделать другую проекцию ВОТ ТУТ И ВОПРОСЫ
cam_ortho_FuturismMatrix = m_mat4.ortho(cam_ortho_planesObj.left, cam_ortho_planesObj.right, cam_ortho_planesObj.bottom, cam_ortho_planesObj.top, cam_ortho_planesObj.near, cam_ortho_planesObj.far)
m_cam.set_projection(camera, cam_ortho_FuturismMatrix);
- назначить нужный Скейл
m_cam.set_ortho_scale(camera, ORTO_SCALE);
-при обратном преобразовании все откатить назад к таргет камере обычной
m_cam.target_setup(camera …..
ДОПОЛНЮ:
при выполнении метода :
var cam_ortho_planesObj=m_cam.get_frustum_planes(camera, _mat4_tmp);
вываливается на копировании данных матрицы
/**
* Copy the values from one vec4 to another
*
* @param {Vec4} a the source vector
* @returns {Vec4} out
* @param {Vec4} out the receiving vector
* @method module:vec4.copy
*/
function copy(a, out) {
out[0] = a[0];
out[1] = a[1];
out[2] = a[2];
out[3] = a[3];
return out;
};
С СООБЩЕНИЕМ :
Uncaught TypeError: Cannot set property '0' of undefined
at Object.copy (b4w.js:5908)
Денис
06 марта 2018 17:58
Ответ на сообщение пользователя Александр Романов
Нельзя. Но можно копировать положение камер, правда вручную.
Вопрос обсуждался здесь. По нему пока ничего не изменилось.
да как раз, по той теме, похоже это то что надо! Только как скопировать параметры?, которые нужны для
https://www.blend4web.com/api_doc/module-camera.html#.set_projection изменения проекции
а именно матрицу: эти самые параметры ortho(left, right, bottom, top, near, far, out) → {Mat4}
https://www.blend4web.com/api_doc/module-mat4.html#.ortho
например с уже существующей(второй камеры которая установлена как надо)
ну и конечно нужно сохранить проекцию прошлой камеры чтоб вернуть на место все?
ДОКУМЕНТАЦИЯ: тот самый параметр OUT в описании модуля MAT4 не обозначен, как опциональный, так же как в описании других модулей, но по факту, как я понимаю, это именно так. Данные возвращаются функцией и плюсом в параметр OUT ! кроме этого описано что возвращается МАТ4 матрица, она же массив Float32Array , но когда смотрим описание https://www.blend4web.com/api_doc/module-camera.html#.set_projection не видим MAT4 в описании .. а только массив .
Дополню: пытаюсь подгрузить в основной сцене и вторую камеру ортогональную из которой скопировать нужные параметры, как говорилось выше, но не тут то было .. похоже, что при загрузке загружает только одну камеру, что выбрана как активная в сцене, верно? т.к. второй камеры в списке загруженных объектов просто нет …
Денис
06 марта 2018 01:39
06 марта 2018 00:05