Форум

Сообщения, созданные пользователем Дмитрий Пелевин
20 февраля 2018 15:01
Постзагрузкой я называю колбэк метод у функции load.
Да, сцены разные, именно поэтому все они загружаются и сразу после загрузки обрабатываются специальным модулем (в апи его нет), который выполняет необходимую логику в зависимости от того ,какие объекты нашёл. Он раскладывает всё по полкам, и далее я уже работаю с этими полками.
20 февраля 2018 10:49
а как же искать все объекты во всех сценах

Для этого нужно воспользоваться немного другим методом:

var m_obj_intern = require("__objects");
m_obj_intern.get_all_objects("ALL", m_obj_intern.DATA_ID_ALL);


Но скажу сразу, функция эта для внутренних процессов. Я лично её не использую, т.к. не составляет труда еще на этапе постзагрузки контролировать ВСЕ объекты в каждой подгружаемой сцене.
19 февраля 2018 14:15
лог пишет в кадом калбеке сообщение в консоль номер в data_id это возвращенный номер сцены
похоже что все методы запускаются ассинхронно, кроме того я вывожу еще в лог сообщение после всех load
так вот оно появляется СРАЗУ ! еще до первого ответа из калбека

Это JavaScript =)
Вам стоит подучить теорию ,что такое асинхронная загрузка. Понять зачем нужный коллбеки.
Также вы неверно поняли что делает флаг ожидания полной загрузки. Он при включении ждёт загрузки доп ресурсов (текстур, данных материалов) и только после этого отрабатывает.

Для вашей цели (ожидание загрузки всего что только может) вам нужно использовать промисы. Но, боюсь, если у вас возникло удивление, почему лог после лоадов выводится сразу, а ответы колбеков потом, то тема с промисами окажется очень сложной…
16 февраля 2018 13:58
Ответ на сообщение пользователя Дмитрий Марусин
Уважаемый Дмитрий! Переработка архитектуры в части динамической загрузки объектов запланирована к апрельскому релизу. Результат позволит решать задачи с геометрией, освещением, системами частиц и другими элементами сцены. И, да, жесткое линкование объектов в основную сцену тоже будет переработано. Ну и приятная возможность - загрузка контента из файлов других форматов (например, GLTF).

Пока же, если есть острая потребность, могу предложить посмотреть в сторону функций append_scene() в intern/scenes.js, create_rendering_graph() в intern/scenegraph.js, process_scenes() в intern/data.js, это те самые функции которые строят структуры данных, управляющие рендером. Если ваше приложение предусматривает компиляцию исходных файлов движка, то вероятно можно будет добиться желаемого Вами эффекта без глобального рефакторинга этой части движка.

Понял вас.

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

Так что посмотрим уже ,что будет в апрельском релизе.
14 февраля 2018 17:10
Ответ на сообщение пользователя ice99
Как бы очень хотелось попасть под этот "глобальный рефакторинг"

Ну я боюсь его не дождаться. Если руководство скажет завтра, что нужны конфигурируемые фонари - то надо будет что-то менять…
Со стёклами щас и так насрали - конфигурируем только рамы. Стёкла оставили в основной сцене.
13 февраля 2018 20:22
Ответ на сообщение пользователя Александр Романов
Задача довольно хардкорная и да, вы правы, вся проблема в том, что рендер граф статический, строится для первой загруженной сцены и потом не меняется. При разработке изначальной архитектуры механизмов изменения рендер-графа не закладывалось. Сейчас мы производим глобальный рефакторинг по переводу статических сущностей в динамические по всему движку. Думаю, что на данный момент для динамически-подгружаемых отражаемых объектов наиболее эффективным будет использование текстур отражений, при этом вы будете лучше защищены от возможных проседаний производительности, ведь реалтаймовые отражения тяжелее.

Да там сцена динамическая. Не пойдёт…
Даже при копировании объекта с отражением из основной сцены, всё нормально, кроме регистрации новой сабсцены и её вектора отражения….

Даже если я зарегаю новую, я хз чо с ней делать после удаления этого объекта….

Тогда так. Как скоро планируется ваша рефакторенная версия?)
13 февраля 2018 18:35
Ответ на сообщение пользователя Константин Хомяков
Проблема, к сожалению, фундаментальная на уровне сценграфа, который сейчас не изменяется динамически при подгрузке объектов.
Решить проблему малой кровью вряд ли получится, но мы работаем в этом направлении

Посмотрел я код, понял что это действительно жесть.

Рендер определяется единожды при загрузке основной сцены.

Далее при добавлении объектов после подгрузки дополнительных сцен, система вроде для отражающих поверхностей создает reflection_plane (%reflection%1), но крепит его в сцену с ID:0. В связи с чем далее они совсем не процессятся и никуда и не добавляются (в граф рендера).

Вопрос: Возможно ли технически создать объект и настроить для него отражение? Т.е. можно ли динамически править граф рендера основной сцены для отражений?
13 февраля 2018 13:09
Последняя.

работает подгрузка отражаемых объектов

Именно интересуют отражающие. Я про них и спрашивал.
13 февраля 2018 11:25
И всё таки, кто-то скажет, почему при добавлении в сцену объектов с подгрузкой (дополнительный data.load) не работают отражения у подгруженных объектов?
Или мне опять лезть в код и дописывать фреймворк…
12 февраля 2018 20:16
Ответ на сообщение пользователя ice99
Напомню, что не копируется также объект типа light, а также не добавляется при подгрузке модели в запущенную сцену.

Про освещение уже писали в официальных доках, что оно берется только из основной сцены.