Как стать автором
Обновить

Комментарии 8

А есть у вас опыт о переносе сцен из c4d?
Каким образом вы получали JSON с освещенностью и маршрутом?

Нет, с c4d не работал. Обладаю минимальными знаниями в блендере. Оттуда выгружаю gltf.

JSON настраиваю руками. Смотрю в блендере точки, по которым хочу пройти. Пишу их координаты. Подбираю цвета для эмбианта и спотов. Пишу их параметры. Для некоторых сцен выставляю css фильтры. Указываю список доп. функций. «extra_func»: ['add_cube'] отработает в сцене add_cube() который добавит некоторую случайную геометрию и т.д.

В том же json есть такие параметры как debug (рисовать кривую пути), fog (туман), ray (настройки для шейдера).

Наполняю файл без автоматизации, руками. У меня 13 сцен в проекте. Даже не вставало вопроса о том, чтобы упростить их настройку. Более. Мне достаточно просто играть с этими параметрами в редакторе кода, и сразу смотреть изменения.

Предложение с получением JSONа автоматически интересное! Спасибо за комментарий!
НЛО прилетело и опубликовало эту надпись здесь
Ты чтото делаешь не так. Очевидная ссылка с примером удаления объектов в three.js.

Да, видел этот материал. Не тестировал конкретный пример, но вроде бы делаю аналогично, и в итоге сказал, что утечек не наблюдаю. Однако, dispose во всех случаях не удаляет материалы и текстуры дочерних элементов (я этот вывод сделал, когда протестировал вариант с parent.dispose() и вариантом с циклом). Возможно есть конкретный момент, который покажет, что я не прав?

Могу быть не прав, помоему делать = undefined; неправильно и может нарушать работу сборщика мусора в джаваскрипте.

Да. Читал, что сборщик работает при присвоении NULL или использовании delete. = undefined; взято из примеров. Попробую изменить, если будут результаты, сообщу каким-то способом.

у меня десятки текстур обновляются каждый кадр и тысячи объектов могут перезагружаться за кадр.

Уточните, вы создаете одну большую сцену или загружаете постоянно разные объекты?

и тысячи объектов могут перезагружаться за кадр.

Обратите внимание на некоторые сцены из примера. Там тоже много объектов. Все анимируются по таймеру. Вроде бы нет проблем.

Как пример всего вышеперечисленного ссылка на одну из моих демок в WebGL.

«MacBook Air (13 дюймов, начало 2014 г.)». После полосы загрузки сдох браузер (хром 84.0.4147.135).

Также удаление «всего мира» и создание заново работает.

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

При создании проектов на WebGL советую ориентироваться на 10-летнее железо.

Я полностью согласен с тем, что сайт должен работать везде. Обратите внимание, на всех прочих проектах стараюсь сделать удобно для среднего железа (минимум). В данном случае хотел попробовать что-то, что требует ресурсов. Тот же мак из примера выше мой проект вывозит (хотя кулера раскручиваются, что происходит обычно при рендере видео). Но не уверен, что во всех случая ориентация на 10-летнее железо — это аксиома.

Спасибо за подробный и развернутый комментарий. Надеюсь на дальнейший ответ.

НЛО прилетело и опубликовало эту надпись здесь
Маки не поддерживают WebGL2, моя ссылка для ОС в которых есть поддержка WebGL2

Хонор 10i. После загрузки наблюдаются проблемы с откликом системы. На экране ничего не происходит. Симметрично на линуксе. Некоторые демо заработали и там и там.
Чинить за тебя твой баг я не буду, и доказывать мне ничего не нужно.

Никто не просил. Я предложил продемонстрировать то, как работает dispose, если не применять его ко всем дочерним элементам.
Все работает в Виндовс и Линукс.

Привел в пример мак, потому что был именно за ним, когда смотрел коммент. Изначально не ориентировался на разработку под него.
Очень интересно, спасибо.

У меня проект по превращению текстов на русском языке в маленькие видео-ролики.

Статья по проекту в процессе написания.

Я тоже использовал Three.JS для этой задачи.
И тоже исключительно на Macbook Pro, но с акцентом на работу в Safari и на встроенные карты, типа Iris 6100, хотя имеется и полноценная прошка с дискретной картой.

У меня были другие проблемы: при создании большого мира проседает fps до 4к/c, хотя в Unity все нормально.
Я думаю использовать веб-воркеры для этого.
Не готов утверждать, но WebGL в макоси работает не лучшим образом в моем случае (air 2014). Протестироваться на текущем обновлении с современным маком нет возможности. Для отладки под свою железку приходится придумывать дополнительные способы обработки входящего скрола.

У меня проект по превращению текстов на русском языке в маленькие видео-ролики.
Было бы интересно увидеть результаты, когда это станет возможным.

У меня были другие проблемы: при создании большого мира проседает fps
Насколько большого, если не секрет? Максимальный размер мира запускал на локальном сервере и весил он около 100 мегабайт. ФПС удовлетворительный, но после выгрузки во внешку становится несмотрибельным.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации