论坛

由用户创建的信息 recoshet
11 July 2016 20:38
На сколько я знаю b4w не отсекает не видимую геометрию за препятствиями…
Но я заметил что у вас внутри стен у "слоёв" одинаковые материалы по всему дому. Поэтому я просто выделил материал Housewrap, выделил все фейсы с этим материалом и удалил, то же проделал с материалом Fir Stud 24" OC. У меня текстуры в вашем blend файле не показываются, но вроде из стен всё удалил и смотрится хорошо
Может ещё чего в стенах/перекрытиях найдёте

Возможно ли удалить материалы, чтобы они удалялись вместе с plains стандартными средствами или надо будет в python разбираться? (хочу только наружные поверхности). Если совсем заморочиться, то будет ли работать скрипт: делаем стены полностью непрозрачные, включаем environment lighting, определяем перечень plains без освещения, удаляем их?
Интересная задачка, в движке source (на котором half-life 2 сделан) в компиляторе карт используется такая технология. Хотя она там ещё с первой халфы а может ещё и с кваки… Но для blender ещё не встречал…

P.S. пробовал сам такое сделать на модификаторах boolean но появилась проблема с логикой работы модификатора, если объекты соприкасаются, а не пересекают друг друга. Так что забросил…
11 July 2016 18:47
Ответ на сообщение пользователя stilist
Коллеги, blend файл выложил в ту же папку на яндексе.
Тени появились, как только удалил лампочку а солнцу поставил галки specular и diffuse.

Немного в шоке, но на 10 винде на ноутбучной видеокарте hd5470 перестали рисоваться тени в b4w. На 8ке всё было норм. Сейчас разбираюсь с драйверами…
11 July 2016 11:53

Ответ на сообщение пользователя Акылбек
kak vy dviagaete TEXTURU samu ? ) v FLAMES.blend
Вот эта нодовая конструкция этим занимается.

Ну а вообще теория такова:
1. Разбиваем uv геометрию через ноду Separate RGB и получаем раздельно координаты по осям
2. Одну из координат смещаем складывая со значением течении времени (время отсчитывает нода b4w_time, её коэффициент можно менять прогоняя через ноду multiple).
3. Объединяем 3 значения обратно через ноду Combine RGB
4. И соединяем с вектором для текстуры.
11 July 2016 11:17
Есть у меня не большой опыт в перегонке моделей в блендер. Попробуйте следующие операции:
1. Сделайте копию резервную копию blend файла.
2. Объедините все объекты в один mesh объект (выделить всё и ctrl+j)
3. Далее в режиме редактирования выделите всё (кнопка A) и выполните remove doubles (Mesh ‣ Vertices ‣ Remove Doubles, после проверьте, правильно ли отображаются текстуры, частенько в некоторых местах едут координаты uv карт, если так происходит, то отменяем операцию, выделяем всё, кроме проблемных участков и повторяем операцию)
4. Далее выделяем всё в режиме редактирования и выполняем Limited Dissolve (Mesh ‣ Claean up ‣ Limited Dissolve)

Геометрия должна стать чистенькой. После настройте тени только на одном объекте.
Совет: попробуйте использовать для перегонки в blender формат obj вместо collada

Если у вас стены из одной плоскости то тени с обратной стороны будут проходить на сквозь и надо убрать материалам галку backface culling. Тут трудно что то ещё посоветовать, покажите хотя бы скрины в проблемных местах. В идеале blend файл.


P.S. если у вас источники света не перемещаются и вам подойдёт статическое освещение попробуйте запечь освещение. Я так делал в этой сцене. Об этом много информации в гугле.

И ещё мне тоже интересно как можно массово менять параметры объектам на примере флажка с тенями

Травку лучше частицами типа hair расставьте. Динамическая трава нужна, только если вы будете презентовать лес или стадион .

Логи можно посмотреть потянув нижнюю линию границы под надписями File Render Window Help вверху.
11 July 2016 09:19
Пока шёл на работу придумал ещё один способ освещения:
Но для его работы источнику освещения нужно добавить галку not render. Что бы он был виден в коде но ни как не визуализировался.

Идея такова:
1. Берем координаты origin модельки, для которой хотим рассчитать освещение
2. Перебираем источники освещения поблизости, которые могут влиять на объект
3. Строим лучи и проверяем, есть ли препятствия до источников света.
4. Итого исходя из расстояния, цвета и силы источников света складываем цвета и применяем его к модельке.

Сейчас для такого приёма надо написать питоновский скриптик, который в местах источников света поставит пустышки с метаданными о источнике света. Надо будет опробовать теорию…
Для мелких объектов на карте само то!
11 July 2016 07:31
Я бы заменил лайтмапами, но без источников освещения не будет меняться цвет освещения у динамических объектов, перемещающихся по сцене… Вот если бы можно было получать цвет лайтмапы в определенной координате мирового пространства, то тогда источники света не нужны будут.

Хотя есть один способ наложить карту освещения. Но для многоэетажности он не подходит.
10 July 2016 08:22
Спасибо за отзыв. Думаю b4w стоит научить вычислять максимальное количество источников освещения способных отобразиться в зависимости от железа. А то наставлю 15 источников у меня запустится а на какой нить мобилке нет.

Приложу тогда DxDiag.txt, chrome://gpu и отчёт с webglreport
09 July 2016 10:33
Решил я попробовать устроить нагрузочный тест, сколько источников света на скольки fps будет работать.
В итоге когда на сцене оказалось 31 лампочка в меня извергла консоль этот текст .
Файл сцены прилагаю
08 July 2016 19:51
Такой пример рассказывается в этом видео, если вкратце то поставьте камере тип eye и посмотрите видео с этой отметки.
08 July 2016 07:43
По моему масштабировать физические объекты пока нельзя. Но надо попробовать…
Но я тут вижу один способ:
Делаем цилиндры разного размера, в них помещаем линкованного пингвина (важно после масштабирования нового цилиндра сразу необходимо применить scale цилиндру), и масштабируем пингвина, что бы он влез в цилиндр но не применяем пингвину scale. (масштабирование по одной оси пока не работает, масштабируем по всем осям!)

—— Если хотите менять цвет в реальном времени ——
Что бы поменять цвет носа пингвину, можно попробовать сделать нодовый материал, в который можно отправлять цвет, пример. Либо же просто менять материал, пример

Только тут может возникнуть ещё одна проблемка. Надо объяснить движку что мы меняем цвет отдельному пингвину, так как все пингвины изначально линкованы из одного файла цвет может меняться одновременно у всех. Но тут должны помочь галки force_dynamics вместе с dynamic_geometry в свойствах объекта.