User posts Ivan Lyubovnikov
12 April 2017 11:21
Ну, чтобы не упираться в память, придется делать динамическую подгрузку/выгрузку целых блоков карты. Сама подгрузка описана в этой статье: Меблируем комнату. Часть 1: Динамическая загрузка
Сам процесс подгрузки может занимать ощутимое время, в течение которого будет проседать fps. Он складывется из 2 этапов:
- сначала непосредственно загрузка данных по сети,
- затем подготовка движком объектов/ресурсов для отрисовки
Первый в случае слабой сети всегда будет проблемой - ну, это понятно. Вообще имеет смысл заранее начать грузить данные, ещё до того, как они понадобятся движку, чтобы в нужный момент нам пришлось бы тратить время только на их подготовку, т.е. только на 2 этап. Для этого есть метод prefetch, который просто качает нужные файлы и кладет их в кеш.
Второй зависит от объемов загружаемых данных. Если грузить небольшими порциями или если объекты будут не очень сложными, то, возможно, будет не так заметно.
Вообще под конкретно эту задачу движок не оптимизировался, поэтому трудно сказать, насколько хорошо это будет выглядеть и насколько хорошо будет чувствоваться "бесшовность".
Сам процесс подгрузки может занимать ощутимое время, в течение которого будет проседать fps. Он складывется из 2 этапов:
- сначала непосредственно загрузка данных по сети,
- затем подготовка движком объектов/ресурсов для отрисовки
Первый в случае слабой сети всегда будет проблемой - ну, это понятно. Вообще имеет смысл заранее начать грузить данные, ещё до того, как они понадобятся движку, чтобы в нужный момент нам пришлось бы тратить время только на их подготовку, т.е. только на 2 этап. Для этого есть метод prefetch, который просто качает нужные файлы и кладет их в кеш.
Второй зависит от объемов загружаемых данных. Если грузить небольшими порциями или если объекты будут не очень сложными, то, возможно, будет не так заметно.
Вообще под конкретно эту задачу движок не оптимизировался, поэтому трудно сказать, насколько хорошо это будет выглядеть и насколько хорошо будет чувствоваться "бесшовность".
12 April 2017 10:41
Добрый день!
собственно дурная голова породила дурные вопросы: может блендер4 веб надо тоже было на хосте устанавливать?Нет этого точно не нужно.
руководствовался этой статьёй https://www.blend4web.com/ru/community/article/55/ может что то не так прочел? путь к файлу аглицкими буквами писал—пример D:/Project/WebServers/unititled.html где unititled.html-экспортированная модель с блендераПытаетесь первым способом, что в статье, разместить? Если заливаете уже на сайт, то путь явно не с D:// должен начинаться, а должен быть относительно корневой директории сайта.
12 April 2017 10:28
11 April 2017 10:50
11 April 2017 10:49
Иван, добрый день,
Вот с этим возникла сложность. Было бы мега-полезно иметь возможность пользоваться одной текстурой и настройками нод для "изготовления" нужных текстур. Необходимость через сторонние программы запихивать карты в альфа-канал крайне неудобна. В частности, фотожоп вообще не сохраняет в png с альфаканалом, а для гимпа для изготовления текстуры надо грузить плагин, настраивать его. Да и вообще, все это ручной труд, у которого в области обработки нет перспектив. Есть какой-нибудь способ, чтобы b&w вылезал через альфа-канал?
Добрый день. Сейчас такого способа нет, но в будущем в Blender 2.8, возможно, станет проще. А в гимпе можно все без плагинов сделать:
- выбрать Colors->Components->Decompose с типом RGBA
- отредактировать alpha-слой
- выбрать Colors->Components->Compose опять же с типом RGBA
10 April 2017 10:30
В общем, про ноду parralax можно забыть или это все-таки работает и где-то нормально и подробно описано?есть небольшое описание в документации: Parallax (B4W_PARALLAX), но там в принципе написано, что в альфа-канале должна быть карта высот
07 April 2017 18:16
These anchors are shown/hidden from within the node tree of the 3d scene and only load once.Ah, I get it. In this case you can use the following snippet:
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.target.style.visibility == "hidden")
mutation.target.scrollTop = 0;
});
});
observer.observe(document.getElementById("declare_anchor"), { attributes: true } );
- this is not a standard event listener, but a special object for reacting to the changes in a DOM: MutationObserver
Alternatively, you can use the "JS Callback" node after every "Hide" in the node tree and specify a function which will be called as a callback. In that function you can do the scrolling via scrollTop.
07 April 2017 10:27
28 March 2017 15:30