论坛

由用户创建的信息 Evgeny Rodygin
14 May 2015 18:08
Засада: есть просто материал простой диффузный и два материала с текстурами-картинками. Мне нужно на диффузный натягивать эти картинки. Если я заведу пустую текстуру, то отрендерится она у меня со специфическим розовым цветом. Как быть? Ставить прозрачную картинку?
Можно просто снизить влияние текстуры до нуля во вкладке Influence->Diffuse->Color
Ответ на сообщение пользователя Йеджи Заборовски
console.log(m_scenes.get_type_mesh_object("TapeShevron"));
после скрытия выдало мне NULL
Такой вызов действительно вернёт NULL, потому что вы ему послали строку вместо объекта. Скрытие никак не влияет на свойства объекта, а только переключает флаг рендеринга.
14 May 2015 17:00
1. после object_hide() пытаюсь условным оператором открыть объект- пишет, что это возможно только для динамических объектов. Однако, у меня все объекты динамические.
Нужные объекты при этом скрываются? Я так понимаю, show вызывается на объекте "MatTapeDef". Если функция ругается, то, скорее всего, c ним что-то все-таки не так. На нём стоит флажок "Force Dynamic Object"?

2. Объекты скрыты. Инхерит по факту материал не перетягивает.
Для корректной работы Inherit material требует, чтобы у материалов была схожая структура. Например, если на одном материале есть normalmap, желательно, чтобы она была и на другом. В противном случае, сохранится старая текстура.
Это сделано, чтобы данную функцию можно было использовать в реальном времени, без тормозов. Поддержка полноценного переноса требовала бы очень большого количества вычислений и перекомпиляции шейдера.
14 May 2015 10:16
The two boxes with the annotations were exported with the latest version and the uploaded JS is the latest version, so those two boxes should have working hotlinks, but they do not.
Then it should work correctly.
Could you please share you sources? If you don't want them to be public, you can send them to my email: evgeny-ar@blend4web.com. I need only js-code, the main scene, and one of the dynamically loaded files.
12 May 2015 15:13
Probably, I was a bit inaccurate. The cubes will be symmetrical if you aplly scale on one of them. (CTRL-A ->"Apply Scale".)
12 May 2015 15:07
На самом деле, в нашем API сейчас действительно не хватает некоторых моментов для удобной реализации вашей задачи. В следующих релизах добавим возможность получать объект соударения напрямую в обработчике столкновения.

Сейчас же ничего другого, кроме как размножать сенсорные множества не остается. То есть, каждый появившийся игрок должен генерировать свой уникальный ID, для соударения с которым снаряд будет регистрировать свой обработчик.

Но вообще говоря, это не самая лучшая идея делать все просчеты с помощью соударений. Пули будут очень маленькими и обязательно будут моменты, когда из-за дискретности расчетов на физике, они будут пролетать сквозь игроков. Я бы смотрел в сторону raycast сенсоров в вашем случае. (Хоть на них пока есть те же проблемы, что описаны в предыдущих абзацах)
12 May 2015 10:11
Hi. Console says almost everything you need.
You have non-uniform scale (it should be equal for all axes, e.g., [0.3, 0.3, 0.3]) on one of your cubes. This is a Blend4Web limitation.

Furthermore, you have exported your scene with older Blend4Web addon version and opening it with a newer engine version. You should update your addon.
08 May 2015 14:26
Honestly, I don't see this kind of functionality really useful. The generic approach is to just assign the "click" event to this element.
For camera rotation it will look like this:
rotate_elem.addEventListener("click", 
    function(e) {
        m_cam_anim.auto_rotate(0.1);
    }, false);

This is not much longer and has greater flexibility.
07 May 2015 10:47
Also, if you rotate the store around, the walls do not block visibility. What type of object needs to be in front of an annotation to actually block its visibility? And "you can write a callback " is assuming I can actually write a callback, which also assumes I know what a callback is. I will happily wait for the addon addition.
I can't say what is the root of the problem without seeing blend files. Any object has to block annotation's visibility (no matter, transparent or not). I think, annotations have some issues in their settings. You could try to reexport one of dynamically loaded files (If annotation is there) and see if the problem stays. But again it is only suggestions.

I will assume draw order is simply load order to better control annotation overlaps…?
No. Drawing order is actually the order in which objects are drawn. Speaking about html-elements (which annotations are), If some object is closer to the camera it should have greater z-index to be drawn above other html-objects. This is the only way to solve this issue correctly right now.
07 May 2015 10:13
Actually, we are planning to improve possibilities of our main web-page which is being opened when you run Blend4Web local development server. So we are going to include some of our scripts to the Web Interface. Reexporter probably will be among them.
06 May 2015 13:00
First of all, it is better to solve all the warnings in the dynamically loaded jsons. They were exported with 15.02 and your application is using 15.03 right now. This can cause potential bugs.
Detect visibility only hides anchors when they are overlapped by something. So, if you want a correct annotations sorting, you need to manage draw order manually. For example, you can write a callback which will check the distance from an empty object and set corresponding z-index for it's html-element.
In future we'll put this functionality into addon.