Замечания к релизам

v16.11

Новый функционал

  • Добавлена частичная поддержка материалов, использующих ноды Cycles. Список нод Cycles, поддерживаемых на данный момент:

    Нода Material Output работает почти так же, как Output из Blender Internal, однако использует вход шейдерного типа. На данный момент поддерживается только вход Surface. Эта нода определяет материал как использующий физический рендеринг (PBR-материал).

    Нода BSDF Diffuse из категории Shader. Отвечает за диффузную составляющую освещения материала и не создаёт видимых отражений. Нода имеет входы Color, Roughness и Normal, а также один выход шейдерного типа.

    Нода BSDF Glossy из категории Shader. Отвечает за блики на материале и за отражение окружающей среды. нода обладает входами Color, Roughness и Normal, а также одним выходом шейдерного типа. На данный момент поддерживается только распределение GGX. Использование этой ноды автоматически включает использование кубических отражений для объекта, использующего материал, даже если для этого объекта не включены отражения. Отражаемые объекты и окружение следует задавать с помощью стандартных настроек Blend4Web. На данный момент параметр Roughness не влияет на рендеринг отражений.

    Нода Mix Shader из категории Shader. Используется для смешивания выходных данных нод, принадлежащих к той же категории. Два шейдерных фхода и вход Fac, определяющий степень смешивания, а также один выход шейдерного типа.

    Нода Fresnel из категории Input. Рассчитывает, какая часть падающего на материал света отражается от его поверхности (другая часть преломляется, проходя сквозь поверхность). Полученный весовой коэффициент может затем использоваться многослойными шейдерами с нодой Mix Shader. Результат зависит от угла между нормалью поверхности и вектором взгляда. Нода обладает входами IOR (коэффициент преломления) и Normal, а также одним выходом скалярного типа.

    Нода Layer Weight из категории Input. Определяет весовые коэффициенты, используемые многослойными шейдерами с нодой Mix Shader. Входы - Blend и Normal. Выходы - Fresnel и Facing.

    Другие поддерживаемые ноды - Image Texture, Environment Texture, Object Info и Bump.

    Частично поддерживаемые ноды: Texture Coordinate (не поддерживается параметр From Dupli), UV Map (не поддерживается параметр From Dupli) и Geometry (не поддерживаются выходы Pointness и Parametric).

    Ноды, поддержка которых была добавлена в предыдущих релизах Blend4Web (и которые используются как Cycles, так и Blender Internal), также нормально работают с новыми PBR-материалами. Среди таких нод - Color Ramp, Normal Map, Camera Data, Particle Info, RGB, Value, ноды категории Convertor (за исключением нод Blackbody и Wavelength), ноды категории Vector и ноды категории Color (за исключением Light Falloff).

  • Улучшения в менеджере проектов.

    Появился редактор файлов проекта. Теперь файлы CSS, JavaScript, HTML, а также файл .b4w_project можно редактировать прямо в Менеджере проектов.

  • Добавлен новый аддон fps.

    Использование этого аддона упрощает создание приложений с видом от первого лица. Аддон содержит два основных метода: enable_fps_controls и disable_fps_controls. Первый из них активирует стандартную схему управления с помощью геймпада и клавиатуры, включает управление камерой при помощи мыши и тач-интерфейса, а также поворот камеры с помощью VR-устройства (если включен VR-режим). Второй метод отключает всё перечисленное. Аддон также содержит дополнительные методы bind_action, set_character_state_changing_cb, set_cam_smooth_factor, set_cam_sensitivity, set_plock_enable_cb ” “и set_plock_disable_cb.

  • Улучшения навигационных мешей.

    Теперь метод navmesh_find_path модуля physics строит траекторию в трёх измерениях, что позволяет строить траектории на вертикальных поверхностях (ранее этот метод мог использоваться только с горизонтальными поверхностями). Также изменены параметры метода navmesh_find_path и улучшен алгоритм A*.

  • Аддон Blend4Web стал удобнее в использовании.

    Поле Blend4Web SDK Directory удалено из свойств аддона. Теперь путь к директории Blend4Web SDK строится автоматически.

Изменения

  • Изменения API

    Изменены параметры методов shot и canvas_data_url.

    В модуль camera добавлена новая функция get_camera_angles_dir. Она возвращает сферические координаты камеры с заданного направления вектора взгляда камеры.

  • Упрощена настройка окружающей среды.

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

  • Теперь NPC AI подхватывает все анимации при загрузке.

    Это несколько увеличивает время загрузки, но устраняет задержки, вызываемые анимацией NPC.

  • Теперь кнопка Fast Preview доступна в режиме Cycles.

  • Теперь методы get_all_objects, get_object_by_name и check_object_by_name не возвращают внутренние мета-объекты движка, не предназначенные для использования в приложении.

Исправления

  • Теперь Менеджер проектов совместим с устаревшим типом привязки движка update.

  • Исправлен баг с определённой кодировкой в Менеджере проектов.

  • Исправлен баг, приводивший к конфликту модулей с одинаковыми именами в Менеджере проектов.

  • Исправлена ошибка рендеринга бликов на материале.

    Эта ошибка возникала, когда материал с бликами типа Blinn освещался двумя или более источниками света.

  • Исправлен баг с выгрузкой NLA.

    Теперь из NLA удаляются все объекты, принадлежащие к выгруженной сцене.

  • Исправлен баг с мерцанием в стереорежиме.

    Этот баг возникал при использовании эффекта Motion Blur.

  • Исправлена перезапись ресурсных файлов с одинаковыми именами в директории Temp при использовании Fast Preview.

  • Исправлена ошибка сети, возникавшая при загрузке скриншота.

  • Исправлен крэш шейдера при запуске некоторых сцен с настройкой качества LOW.

  • Исправлен крэш движка при запуске сцен без объектов типа MESH.

  • Исправлен метод track_to_target, который создавал некорректную анимацию приближения.

  • Исправлена редкая ошибка с пустыми слотами текстур частиц, иногда приводившая к крэшу при экспорте.

  • Исправлен рендеринг процедурных линий.

  • Исправлена ошибка логической ноды Play Animation, приводившая к тому, что анимация останавливалась после первого проигрывания.

  • Исправлен крэш в модуле navmesh, происходивший в веб-браузерах, не поддерживающих метод indexOf для TypedArray.

  • Исправлена ошибка Менеджера проектов, возникавшая при конвертации ресурсов в случае отсутствия ffprobe.

v16.10

Новый функционал

  • Добавлена поддержка навигационных сеток.

    В модуль physics добавлены два метода: navmesh_get_island возвращает ближайший сегмент навигационной сетки, а navmesh_find_path применяется для поиска пути.

    Доступны два типа пути: основанный на центрах треугольников и более оптимальный pulled string.

    Пример использования входит в состав приложения Code Snippets.

  • Новая логическая нода Set Camera Move Style.

    Эта нода может использоваться для изменения скорости и типа перемещения камеры. В качестве “цели” для камер типа Target и Hover может использоваться как объект, так и координаты точки.

  • Поддержка тангенциального затенения для отредактированных нормалей.

    Теперь тангенциальное затенение корректно работает с отредактированными нормалями.

  • Улучшения Менеджера проектов.

    Теперь приложения, blend-файлы и медиаданные проекта открываются в новых вкладках. Сам Менеджер проектов при этом остаётся в том же окне браузера, что увеличивает эффективность работы.

    Команда compile project переименована в build project. Новое название точнее описывает функцию кнопки.

  • Новые типы смешивания текстур окружения.

    Теперь текстуры, используемые для рассчёта освещения от окружающей среды, поддерживают все типы смешивания.

  • Поддержка опции Sphere для источников света Point и Spot.

    Эта опция позволяет задать дистанцию, на которой интенсивность света становится нулевой.

  • Повёрнутые ограничивающие объёмы.

    Теперь для отсечения невидимых объектов используются повёрнутые ограничивающие кубы. Кроме того, для динамических объектов теперь поддерживаются повёрнутые ограничивающие эллипсоиды.

  • Теперь логическая нода JS Callback может вызываться синхронно.

    Для остановки выполнения нодового дерева достаточно передать true из callback-функции. Когда нода закончит работу, передайте false.

  • Новые методы API get_fog_params и set_fog_params.

    Методы применяются для управления туманом в сцене. Параметры тумана включают такие свойства, как fog_intensity, fog_depth, fog_start и fog_height.

  • Новый метод API update.

    Метод позволяет обновлять позиции якорей.

  • Добавлена поддержка разных типов буферов VBO.

    Типы некоторых атрибутов изменены с FLOAT на UNSIGNED BYTE и SHORT, что снижает потребление памяти GPU, но не влияет на качество изображения. Это также влияет на производительность и может увеличить частоту кадров в некоторых сценах. Кроме того, размеры экспортируемых .bin-файлов несколько уменьшены за счёт того, что теперь цвета вертексов хранятся в переменных типа UNSIGNED BYTE, а не SHORT.

  • Теперь в режиме ULTRA используется правильная, а не упрощённая функция SRGB-конверсии.

    Эффекта наиболее заметен на тёмных участках изображения, где упрощённая функция даёт неточные цвета.

  • Добавлены кнопки для включения и выключения опции World Background на панели 3D VIEW.

    Кнопки находятся на вкладке World и должны использоваться при включенной опции Render Sky. При активированной опции World Background цвета окружающей среды видны в окне просмотра так же, как в движке.

Изменения

  • Реорганизация проектов в SDK.

    Теперь все проекты в SDK (в том числе обучающие) использут стандартную иерархию директорий Менеджера проектов.

  • Из Просмотрщика сцен удалён список сцен.

    Аналогичные возможности (просмотр сцен и данных проекта) теперь доступны в Менеджере проектов.

  • Улучшена документация модуля API input, добавлены примеры использования функций.

  • В целях оптимизации рендеринга сцен уменьшено количество батчей.

    В наибольшей степени это влияет на тени и частицы типа Hair. Сцены, использующие эти возможности, теперь работают быстрее.

  • Теперь клавиатура по умолчанию привязана к объекту document.

  • Добавлен новый тип привязки движка None.

    При выборе этого варианта Менеджер проектов не будет изменять Ваши проекты при сборке.

  • Удалён тип привязки движка Update.

    Для достижения аналогичных результатов вместо него следует использовать тип Copy.

  • Добавлены облегчённые версии сборок SDK.

    Теперь доступны облегчённые версии пакетов Blend4Web PRO и Blend4Web CE, не включающие уроки и демонстрационные приложения. Пользователям с медленным интернет-каналом рекомендуется использовать эти версии.

  • Добавлена поддержка текстуры глубины для Intel HD Graphics 3000, что делает возможным использование на этих устройствах таких эффектов, как тени, глубина резкости, сумеречные лучи и др.

  • Теперь NLA-анимации получают значения начального и конечного кадров из самой вертексной анимации.

    Это позволяет использовать для одного объекта несколько вертексных анимаций, контролируемых NLA.

  • Исправлено принудительное использование нод материалов низкого качества на некоторых мобильных устройствах (в том числе на iOS).

  • Добавлена документация API на BloomParams. Некоторые параметры переименованы.

  • Изменены выходные данные сенсоров mouse_click, mouse_move, touch_click и touch_move. Теперь они представляют собой словарь с абсолютными координатами (coords) для всех вышеперечисленных сенсоров, а также which для обработчиков щелчков мыши и gesture для touch_move.

  • В модуль controls добавлены логические функции default_AND_logic_fun и default_AND_logic_fun.

  • Удалены устаревшие скрипты для кросс-компиляции бинарных модулей.

  • Методы API set_nodemat_value, get_nodemat_value, set_nodemat_rgb и get_nodemat_rgb объявлены устаревшими и перемещены в модуль material.

Исправления

  • Исправлена функция quat_to_euler.

  • Исправлена некорректная работа ноды Normal Map с неединичным параметром силы.

  • Исправлено несколько проверок объектов логическими нодами.

  • Исправлена невозможность замены текстуры на объекте (функция change_image), в случае, если эта текстура используется несколькими материалами.

  • Теперь блики, рассчитываемые по модели CookTorr, выглядят так же, как в Blender.

  • Теперь Alpha Sort-материалы корректно отображаются на простых (не “глубоких”) копиях объектов.

  • Исправлены методы create_pline_from_point_vec и set_pline_initial_point.

  • Теперь персонажи, управляемые с помощью модуля npc_ai, не проваливаются под землю при ходьбе.

  • Исправлен баг, приводивший к тому, что два и более якоря типа Custom Element могли ссылаться на один и тот же id элемента.

  • Исправлены отражения сферических биллбордов.

  • Исправлено воспроизведение звука после паузы для спикеров типа Background Sound и Positional Sound в браузере Firefox.

v16.09

Новый функционал

  • Улучшения в интерфейсе веб-плеера.

    Добавлена возможность настройки социальных кнопок, расположенных в правом нижнем углу загруженной сцены. Для этого перед запуском приложения необходимо настроить атрубут socials.

  • Изменения координатной системы.

    Теперь движок использует систему координат Blender вместо системы OpenGL. Это может вызывать несовместимости в логике приложений, поэтому мы рекомендуем разработчикам проверить свои приложения и внеси в них изменения в соответствии с новой координатной системой (ось Z направлена вверх).

  • Оптимизация рендеринга геометрии

    Для оптимизации рендеринга геометрии используется новый метод хранения данных в памяти GPU. Теперь данные о нормалях и касательных хранятся в TBN-кватернионах.

  • Улучшения в менеджере проектов.

    В утилиту project.py добавлена команда update_modules. С её помощью пользователь может обновить модули движка, используемые приложением. Эта возможность значительно упрощает процесс обновления файлов проекта до новых версий Blend4Web.

  • Автоматическое определение качества изображения.

    При установке профиля качества изображения AUTO (P_AUTO) в модуле app приложение может быть запущено как с низкими, так и с высокими настройками качества, в зависимости от конфигурации системы. Кроме того, метод test_performance позволяет запустить низкоуровневый тест производительности.

  • Поддержка компресси текстур PVRTC.

    Добавлена поддержка алгоритма PVRTC, что позволяет использовать компрессию текстур на iOS и на Android-устройствах, основанных на PowerVR.

  • Добавлены настройки качества теней.

    Появилась возможность установки разных профилей качества для мягких теней: 16x, 8x и 4x.

  • На вкладку Render добавлена панель Shading. Она содержит опцию World Space Shading и кнопку Set Recommended Options для автоматической настройки Blender на большую совместимость с Blend4Web.

  • Добавена поддержка Blender 2.78.

    Опция World Space Shading и поддержка освещения от окружающей среды в режиме GLSL делают вид сцены в окне просмотра предельно близкой к виду сцены в самом движке.

    Теперь новая шейдерная нода Normal Map поддерживается полностью.

Изменения

  • Переработана система присвоения шейдерных директив. Это упрощает отладку и уменьшает время загрузки движка.

  • Рендеринг якорей на некоторых устройствах ускорен благодаря использованию свойства CSS “translate3d”

  • Улучшена валидация шейдеров, что снижает количество ошибок второго рода. Также добавлены новые описания ошибок.

  • Для увеличения производительности большая часть вычислений в шейдерах переведена с матриц на TSR.

  • Изменён порядок панелей на вкладке Render.

Исправления

  • Исправлено зависание Samsung Internet Browser при наличии в сцене большого количества якорей.

  • Исправлен не работавший атрибут Веб-плеера “alpha”.

  • Исправлено сообщение об ошибке компиляции/линковки шейдеров.

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

  • Исправлено поведение логической ноды Play Animation в ситуации, когда одновременно присутствуют запечённый и незапечённый варианты анимации.

  • Исправлены настройки качества для плоских отражений.

  • Исправлены методы get_translation_rel и get_rotation_rel.

  • Исправлен параметр dof_distance метода set_dof_params.

  • Исправлен баг, приводивший к крэшу движка при выборе объекта с опциями Do Not Render и Enable Outlining, включёнными одновременно.

  • Исправлена физика систем частиц.

v16.08

Новый функционал

  • Добавлена поддержка опции Tangent Shading для материалов.

    Эта опция может использоваться для имитации анизотропных поверхностей, например, полированного металла, волос и т.п.

  • Добавлена поддержка шейдерной ноды Normal Map.

    Эта нода может применяться для преобразования цветовой информации текстуры в карту нормалей. Поддерживаются входящие данные в тангенциальном, объектном или мировом координатном пространстве. Параметр Strength управляет степенью смешивания значений, извлечённых из текстуры, с нормалями самого объекта.

    Для того, чтобы изображение в окне Blender выглядело так же, как в сцене Blend4Web, цветовое пространство текстуры должно иметь тип Non-Color.

  • Оптимизация движка.

    Произведена оптимизация ядра движка и “сборщика мусора”. Добавлена поддержка расширения OES_vertex_array_object для соответствующего оборудования. Также, с целью уменьшения числа вызовов отрисовки, произведена оптимизация использования шейдеров и постоянных. Всё это должно уменьшить время загрузки сцен и отзывчивость рендеринга, особенно на системах с медленным CPU.

  • Улучшения интерфейса Просмотрщика сцен.

    Теперь панель Tools & Debug находится прямо под панелью Scenes.

    На панель Tools & Debug добавлена кнопка Min capabilities mode. Этот параметр заставляет Просмотрщик сцен воспроизводить загруженную сцену так, как если бы она работала на системе с низкой производительностью (например, на iOS-устройстве). Это позволяет узнать, какие материалы в сцене могут работать не так, как задумано, на системе с низкой производительностью.

  • Улучшения редактора нормалей.

    Добавлен режим редактирования нормалей Offset.

    Операция Average теперь может применяться к неразделённым нормалям.

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

  • Новый метод API в модуле textures.

    Добавлен метод get_texture_names. Он позволяет получить имена всех текстур объекта.

  • Новый метод API в модуле lights.

    Добавлены методы get_light_color, set_light_color, get_light_energy и set_light_energy. Они используются для работы с цветом и световой энергией источника света.

  • Добавлена поддержка свойства объектов Hidden.

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

  • Поддержка шейдеров GLSL ES 3.0.

    Теперь движок автоматически выбирает, какую версию шейдерного языка OpenGL использовать для компиляции шейдеров. Выбор зависит от контекста WebGL: для WebGL 1 используется GLSL ES 1.0, для WebGL 2 - GLSL ES 3.0. Шейдерная система движка и препроцессор также были изменены для совместимости с обоими вариантами.

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

  • Улучшения Анализатора Шейдеров.

    Теперь анализатор шейдеров (метод analyze_shaders) выводит низкоуровневый ассемблерный код, что полезно для оценки и оптимизации шейдеров.

Изменения

  • Улучшения алгоритма рассчёта боке для эффектаглубины резкости.

    Уменьшена интенсивность эффекта pixel bleeding, приводившего к тому, что находящиеся в фокусе объекты на переднем палне “вытекали” на размытый фон.

    Добавлен параметр Foreground Blur. Его включение делает менее заметными чёткие силуэты объектов вне фокуса на фоне объектов в фокусе.

    Расстояния, на которых эффекта рамытия начинает проявляться и достигает максимальной интенсивности, теперь можно контролировать с помощью параметров Front Start и Front End (для передней плоскости) и Rear Start и Rear End (для задней плоскости).

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

  • Улучшения алгоритма валидации шейдеров.

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

Исправления

  • Исправлена инверсия длинны для групп вершин.

    Исправлена инверсия оператора систем частиц типа HAIR для вершинных групп, задающих длинну.

  • Исправлен поворот нормалей для преобразованных объектов в Редакторе нормалей

  • Исправлен редкий крэш движка при загрузке сцены, использующей нодовую логику.

  • Исправлена панель материалов в Просмотрщике сцен. Ранее она не работала для некоторых материалов, подлежащих редактированию.

  • Исправлен крэш движка на мобильных устройствах.

  • Исправлено мерцание экрана в мобильных браузерах.

  • Исправлен крэш при загрузке динамической воды.

  • Исправлено влияние карт нормалей на отражения для стековых материалов.

  • Отключена серая подсветка при нажатии в Web Player на iPad.

v16.07

Новый функционал

  • Оптимизация рендеринга систем частиц.

    Теперь для рендеринга частиц типа Object используются возможности инстансинга WebGL (расширение ANGLE_instanced_arrays или WebGL 2.0). Использование инстансинга снижает потребление памяти и, в некоторых случаях, увеличивает скорость рендеринга.

  • Снижение задержки ввода на мобильных устройствах.

    Теперь на мобильных версиях Chrome, Firefox и Safari движок игнорирует события мыши, соответствующие событиям, которые уже были обработаны внутренними сенсорами Blend4Web. Это уменьшает время реакции на действия пользователя.

  • Улучшения аудиосистемы.

    Автоматическое создание аудиоконтекста. Флажок Audio удалён из аддона, при необходимости аудиоконтекст создаётся автоматически.

    Реализация эффекта Допплера. Эффект Допплера отсутствует в современных версиях WebAudio, так как теперь предполагается, что разработчики приложений должны реализовывать этот эффект самостоятельно. Начиная с данного релиза, вы можете использовать реализацию, встроенную в движок. Для этого добавлена опция Enable Doppler, которая заменяет старую Disable Doppler.

    Переработан аудиоинтерфейс. Поддержка таких параметров, как Speed, Doppler и Distance Model максимально приближает его к собственному интерфейсу Blender.

    Новая опция спикера Auto-play. Позволяет включить воспроизведение аудио по умолчанию.

    Предварительная поддержка сложных аудиопетель. Новые опции Loop Start и Loop End, а также метод API loop_stop, позволяют сложные петли, включающие начальную, закольцованную и конечную секции в одном аудиобуфере. С помощью нового API можно создавать, например, стандартную огибающую ADSR (Attack, Decay, Sustain, Release).

  • Поддержка полисенсорного выбора в сенсоре выбора.

    Теперь сенсор выбора событийной модели поддерживает мультитач-выбор.

  • Новые возможности анимации нодовых материалов.

    Теперь любая нодовая анимация может применяться к любому нодовому материалу или его вложенной нодовой группе. Кроме того, появился новый метод apply_ext(), позволяющий задать материал или нодовую группу, которую требуется анимировать.

  • В модуль preloader добавлен новый метод create_preloader.

  • В модуль API config добавлены конфигурационные параметры max_fps, max_fps_physics, use_min50, anisotropic_filtering, shadows, reflections, refractions, ssao, dof, god_rays, bloom и motion_blur.

Изменения

  • Оптимизация выделения объектов.

    Теперь для выделения объектов использует очень узкий усечённый конус и малый размер фреймбуфера (1 х 1 пиксель). Кроме того, снижено количество вызовов метода pick_object. Всё это увеличивает производительность сенсора выбора.

  • Улучшения эффекта глубины резкости (Depth-of-field, DOF).

    Увеличена производительность эффекта глубины резкости.

    Добавлен экспериментальный алгоритм рассчёта DOF. Теперь степень размытия изменяется в зависимости от расстояния, а на размытых объектах появляется эффект боке. Новый алгоритм включается с помощью опции Bokeh на панели свойств камеры в Blender.

  • Изменения API

    Метод create_simple_preloader модуля preloader объявлен устаревшим и будет удалён в будущих релизах.

Исправления

  • В Просмотрщике сцен исправлен не работавший слайдер Canvas Resolution Factor.

  • Исправлены методы get_matrix, set_matrix, get_matrix_rel и set_matrix_rel модуля transform.

  • Исправлено определение метода resize_to_container модуля container.

  • Исправлено снижение производительности при изменении размеров canvas’а.

  • Исправлена ошибка, приводившая к тому, что в сцене отсутствовали камеры из других сцен или дупли-групп.

  • Исправлена некорректная прозрачность canvas’а при использовании эффекта засветки.

  • Исправлена кнопка Stop All на вкладке Animation Просмотрщика сцен.

  • Исправлено выделение объектов для стековых материалов.

  • Исправлен эффект свечения в браузере Safari.

v16.06

Новый функционал

  • Улучшения Fast Preview.

    При необходимости сервер разработки копирует все внешние ресурсы во временную папку. Это делает возможным предварительный просмотр сцен, расположенных вне SDK (в других папках, на flash-накопителях и пр.)

  • Улучшения в менеджере проектов.

    Поддержка библиотеки материалов. Новая опция позволяет скопировать исходные файлы библиотеки материалов в директорию проекта.

    В утилиту project.py добавлена новая опция --ignore. Эта опция даёт пользователю возможность игнорировать файлы при компиляции или развёртывании проекта.

    В утилиту project.py добавлена новая команда check_modules. Эта команда позволяет проверить отсутствующие или неиспользуемые модули.

  • Экспериментальная поддержка системы виртуальной реальности GearVR.

    Теперь движок поддерживает API WebVR 1.0, что делает возможным использование устройств с GearVR.

  • Поддержка текстур в форматах GIF и BMP.

    Теперь изображения в форматах BMP и GIF (без анимации) могут использоваться в качестве текстур.

  • Улучшения в утилите для конвертации ресурсов.

    Теперь поддерживается большое количество расширений медиафайлов. Более подробная информация доступна в документации.

  • Автоматическое определение пути экспорта в аддоне Blender.

    При первом экспорте проекта, созданного с помощью менеджера проектов, путь к каталогу медиаданных будет установлен автоматически.

  • Поддержка параллельных анимаций в Редакторе логики

    Теперь Редактор логики поддерживает использование нескольких параллельных анимаций. Ранее к объекту могла применяться только одна анимация. Теперь для одного объекта поддерживается по одной анимации каждого типа. Максимальное количество анимаций объекта, таким образом, достигает 8.

  • Улучшения отладочных возможностей Просмотрщика сцен.

    Добавлен специальный режим для отладки времени рендеринга объектов в Просмотрщике.

  • Опция Lens Flare для материалов.

    Новое свойство находится на вкладке опций рендеринга материала. Следует заметить, что эта возможность работает только при наличии в сцене источника света типа Sun.

  • Параметры источников света Clip Start и Clip End

    Параметры Clip Start и Clip End поддерживаются для настроек теней источников света типа Point и Spot.

  • HTML-элементы в Веб-плеере.

    Новые мета-элементы добавлены к HTML-шаблонам Веб-плеера для совместимости с различными социальными сетями.

Изменения

  • Ноды материалов теперь работают в мировом пространстве координат вьюпорта Blender.

    • Geometry

      Выход Normal выдаёт данные в мировом пространстве координат Blender.

      Выход View выдаёт данные в пространстве координат камеры Blender.

    • Texture

      Вход Vector, используемый для текстур окружающей среды, принимает данные в мировом пространстве координат Blender.

      Выход Normal выдаёт данные в мировом пространстве координат Blender.

    • Material

      Вход Normal принимает данные в мировом пространстве координат Blender.

      Выход Normal выдаёт данные в мировом пространстве координат Blender.

    • Lamp Data

      Выход Light Vector выдаёт информацию в мировом пространстве координат Blender.

    • B4W Vector View

      Нода принимает данные в мировом пространстве координат Blender.

    • B4W Reflect

      Первый вход ноды (используется для вектора взгляда) принимает информацию в пространстве координат камеры Blender.

      Второй вход ноды (применяется для нормалей) также принимает информацию в мировом пространстве координат.

      Выход ноды выдаёт данные в мировом пространстве координат Blender.

  • Якоря и выбор цвета отключены в стереорежиме.

  • Сенсор клавиатуры больше не активируется при использовании горячих клавиш браузера.

  • Изменения API

    Метод resize_to_container модуля app объявлен устаревшим и будет удалён в последующих релизах. Вместо него следует использовать метод resize_to_container() модуля container.

  • Параметр Key эффекта засветки переименован в Intensity.

  • Устаревший функционал.

    Были удалены следующие методы: textures.get_canvas_texture_context(), textures.update_canvas_texture_context().

    Были удалены следующие логические ноды: Select, Select & Play Timeline, Select & Play Animation.

  • Теперь сообщения об ошибках экспорта и предупреждения включают ссылки на документацию.

  • Отчёт о некорректной директории аддона.

    Теперь некорректное имя директории аддона приводит к появлению соответствующего предупреждения.

  • Обработка ситуации применения воды без ветра.

    Если шейдер воды используется без ветра, появляется предупреждение.

  • Добавлены консольные сообщения об ошибках при использовании неподдерживаемых форматов изображений, видео- и аудиофайлов.

Исправления

  • Исправлено падение производительности в стереорежиме.

  • Исправлена обфускация window.screen.orientation.angle.

  • Исправлена ошибка рендеринга в браузерах Firefox с включённым контекстом WebGL 2.0.

  • Исправлен рендеринг изображения для правого глаза в стереорежиме.

  • Исправлен рендеринг светящихся материалов с включённой опцией Terrain Dynamic Grass.

  • Теперь параметр угловой скорости частиц становится недоступным (поскольку избыточен), если деактивирована опция Rotation.

  • Исправлен рендеринг частиц со стандартными (не нодовыми) материалами с типом прозрачности, отличным от Opaque

  • Исправлен ряд причин утечеки памяти на GPU.

  • Исправлен крэш движка, возникавший при использовании некорректного значения id в логической ноде JS Callback.

  • Исправлен крэш движка, происходивший в редких случаях при наличии в нодовом материале нескольких нод Texture с одной и той же текстурой.

  • Исправлена ошибка, из-за которой вход Diffuse Intensity нод Material и Extended Material игнорировал входящее значение.

v16.05

Новый функционал

  • Экспериментальный конфигуратор HMD.

    Был добавлен аддон hmd_conf.js. Он даёт пользователям возможность вручную устанавливать параметры HMD. На данный момент конфигуратор доступен в Просмотрщике сцен и может быть вызван нажатием кнопки, расположенной на панели Stereo View. За более подробной информацией обратитесь к документации разработчика по модулю API hmd_conf.

  • Экспериментальный конфигуратор геймпадов и контроллеров

    В API был добавлен аддон gp_conf. Он содержит две главные функции: show и hide. На данный момент он поддерживает контроллеры и рули.

    Чтобы протестировать этот конфигуратор, активируйте опцию Gamepad Settings на панели Input Devices Просмотрщика сцен.

  • Новые примеры кода.

    Добавлены новые примеры кода. Их названия - Gamepad, Webcam и Change Image. Первое из них поможет вам добавить поддержку геймпадов в ваш проект, второе демонстрирует возможности API камеры, а третье - применение новых функций для работы с текстурами.

  • Новая шейдерная нода Vector Transform.

    Эта нода может применяться для преобразования входных данных между координатными пространствами объекта, мира или камеры.

  • Новая логическая нода Empty

    Эта нода может применяться для упрощения перенаправлений в сложных логических деревьях.

  • Программная замена текстурных изображений.

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

  • Новый кластерный алгоритм батчинга.

    Теперь батчинг (процесс объединения похожих объектов для повышения производительности) основан на новом кластерном алгоритме, который применяется при экспорте. Это оптимизирует весь процесс батчинга и делает его более “интеллектуальным” по сравнению со старым алгоритмом, основанным на регулярной сетке.

  • Улучшения в менеджере проектов.

    Теперь для сохранения однородности в именах всех опций командной строки в утилите project.py используется символ - вместо символа подчеркивания, например, опция --engine_type теперь выглядит как --engine-type.

    В утилиту project.py добавлена новоая опция --assets-dest. Эта опция даёт пользователю возможность задать директорию, в которой будут храниться медиаданные развертываемого проекта.

  • Новые материалы в Библиотеке Материалов.

    В Библиотеку Материалов для PRO-версии SDK добавлено четыре новых материала: Золото, Рифленое Стекло, Шелк и Бархат.

Изменения

  • Улучшения интерфейса и повышение удобства экспорта объектов, для которых не выбрана ни одна из опций списка Export Options.

    Опция Export Shape Keys выбирается автоматически при добавлении ключа формы.

    Опция Export Vertex Animation выбирается автоматически после запекания вершинной анимации.

    Опция Apply Scale and Modifiers автоматически применяется во время экспорта ко всем объектам, которые соответствуют следующим условиям:

    Не имеют вершинной анимации.

    Не имеют родительского объекта

    Не имеют скелета.

    Физика объекта отключена.

    Опция Apply Modifiers автоматически применяется во время экспорта ко всем объектам, к которым применяются модификаторы и которые соответствуют следующим условиям:

    Не имеют вершинной анимации.

    Не имеют скелета.

  • Теперь Z-сортировка для материалов с типом прозрачности Alpha Sort выполняется с учётом размеров объектов.

    Это может привести к снижению производительности из-за более частых обновлений сортировки, но исправляет ошибки сортировки для объектов маленьких размеров.

  • Новый алгоритм отсечения по зоне видимости.

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

  • Изменения сенсоров геймпада.

    В модуль input добавлены новые идентификаторы кнопок и осей. Кроме того, имена сенсоров геймпада изменены на create_gamepad_btn_sensor и create_gamepad_axis_sensor.

  • Теперь логическая нода Entry Point с параметром Run From Script может вызываться через API многократно.

  • Изменения API

    Метод create_rotation_preloader модуля preloader объявлен устаревшим и будет удалён в последующих релизах.

    Метод create_advanced_preloader модуля preloader объявлен устаревшим и будет удалён в последующих релизах.

    В модуль input добавлен метод set_config.

    Метод register_device модуля input объявлен устаревшим и будет удалён в последующих релизах.

    Удалён флаг gyro_use модуля config (больше не требуется).

    Теперь функции модуля storage имеют опциональный последний параметр.

    В модуль util добавлен метод is_ie11.

  • Теперь состояние клавиатурной клавши хранится в полезной нагрузке сенсора клавиатуры.

    За более подробной информацией обратитесь к разделу документации разработчика, посвящённому методу create_keyboard_sensor.

  • Ссылка на отладочную страницу в сообщении Веб-плеера “Browser could not initialize WebGL” заменена на более подходящую.

    Теперь она ведёт на раздел документаци “Проблемы и решения”.

  • Документация значительно доработана, добавлены подробные описания возможностей якорей и Viewport Alignment.

Исправления

  • Исправлена проблема с некорректыми автоматическими обновлениями в аддоне.

  • Исправлено поведение якорей с логическими нодами.

  • Исправлена обфускация логической ноды JS Callback.

  • Исправлена проблема с некорректным удалением сенсоров в методе controls.remove_sensor_manifolds.

  • Исправлена проблема с некорректным возрастом и степенью сжатия zip-файлов дистрибутива.

  • Исправлен мультисэмплинг в браузерах Firefox.

    Частично поддерживаемый в реализации WebGL 2.0 для браузеров Firefox мультисэмплинг отключён.

  • Исправлена ошибка, приводившая к тому, что разрешение canvas’а не менялось в зависимости от настроек качества антиалиасинга.

  • Исправлена ошибка, приводившая к тому, что интенсивность диффузного цвета применялась к материалу с типом затенения Shadeless.

  • Исправлен крэш движка при использовании нод B4W_GLOW_OUTPUT и B4W_REFRACTION в одном и том же материале.

  • Исправлено дублирование панели Custom Properties в интерфейсе Blender для объектов типа Font, Curve, Lattice, Armature и MetaBall.

  • Исправлено несколько ошибок в скомпилированной версии движка.

  • Исправлены ошибки в модулях input и controls.

  • Исправлен некорректный батчинг нодовых материалов при использовании ноды ColorRamp.

  • Исправлена некорректная остановка HTTP-сервера.

v16.04

Новый функционал

  • Поддержка геймпадов и контроллеров

    Появилась возможность использовать геймпады и контроллеры в качестве устройств ввода. Для работы с этими устройствами были добавлены новые функции. Первая из них - create_gamepad_btns_sensor. Она обрабатывает нажатия на кнопки геймпада. Вторая функция - create_gamepad_axes_sensor, она обрабатывает оси геймпада.

  • Улучшения нодового редактора логики.

    Была добавлена логическая нода JS Callback. Она может применяться для вызова callback-функций, заданных в вашем B4W-приложении. Для callback-функций поддерживаются входные и выходные параметры.

    В ноду Entry Point была добавлена опция Run From Script.

    В API был добавлен модуль logic_nodes. Он содержит методы для работы с нодовым редактором логики.

    Добавлен метод append_custom_callback. Он применяется для регистрации JavaScript-функций с тем, чтобы их можно было использовать в логической ноде JS Callback.

    Добавлен метод remove_custom_callback. Он применяется для удаления зарегистрированных callback-функций.

    Добавлен метод run_entrypoint. Он позволяет активировать ноду Entry Point из API.

  • В модуль controls была добавлена новая функция create_hmd_position_sensor.

    Эта функция позволяет создать особый сенсор для отслеживания позиции HMD-устройств.

  • Теперь для систем частиц типа Emitter поддерживаются опции Tilt Angle и Tilt Random.

  • Отражения для прозрачных объектов.

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

  • Обновления математических модулей.

    Математические модули vec3, vec4, quat, mat3 и mat4 теперь основаны на glMatrix v2.3.1. Новая версия добавляет следующие мотоды: hermite, bezier, sqlerp, fromRotationTranslationScale и fromRotationTranslationScaleOrigin

  • В иструмент запекания скелетной анимации был добавлен флаг Bake only deform bones.

    Эта возможность полезна в случае, когда некоторые объекты являются потомками недеформированных “костей”. До этого запечь “кости” без выставленного флага deform было невозможно.

  • Новый переключатель GL Debug в Просмотрщике.

    В Просмотрщике сцен появился переключатель GL Debug, который может использоваться для отключения проверок GL-ошибок. Это увеличивает производительность и может быть полезно при профайлинге сцены.

  • Поддержка WebGL 2.0 в браузере Firefox.

    Появилась возможность использовать экспериментальный контекст WebGL 2.0 в браузере Firefox.

  • Новая опция настроек движка: prevent_caching

    Включает и выключает кэширование медиаданных.

  • Добавлена новая физическая функция.

    Функция apply_force_world применяет к объекту постоянную силу в мировом пространстве координат.

Изменения

  • Теперь опция Просмотрщика HUD Info выводит подробную информацию в каждом столбце.

  • Изменения редактора логики.

    • В ноде Conditional Jump добавлена возможность выбора типа переменной между Number и String.

  • Теперь активация VR-режима автоматически меняет тип камеры на EYE для лучшего восприятия сцены пользователем.

Исправления

  • Исправлено поведение якорей.

  • Исправлена ошибка в работе кубических карт на некоторых старых GPU производства NVIDIA в браузере Firefox.

  • Исправлен баг системы частиц с назначенной вершинной группой “Length” в случае, когда для объекта-эмиттера активирована опция “Apply Modifers”.

  • Исправлено поведение ноды B4W_GLOW_OUTPUT для прозрачных материалов.

  • Исправлена карта травы для единственного плоского объекта ландшафта.

  • Векторы рефракции для нодовых и стековых материалов теперь используют правильную нормаль вида.

  • Исправлена интерфейсная панель God Rays в Blender.

  • Исправлено обновление параметров неба в Просмотрщике.

  • Исправлен некорректный рендеринг стереоизображения (анаглиф и HMD) в некоторых специфических случаях.

  • Исправлен баг ноды Page Param, приводивший к тому, что результат всегда записывался в переменную R1.

  • Исправлено обновление области видимости переменных в нодовом редакторе логики.

  • Исправлен крэш динамически загружаемых сцен при использовании логической ноды Move Camera.

v16.03

Новый функционал

  • Улучшения нодового редактора логики.

    Появилась возможность использовать глобальные переменные для обмена информацией между потоками. Это позволяет создавать более сложные интерактивные приложения.

    Добавлена логическая нода JSON. Она может использоваться для кодирования и декодирования сложных JSON-объектов.

    Добавлена логическая нода Get Timeline. Она может использоваться для получения текущего кадра NLA или общего таймлайна.

    Логические ноды Play Animation и Stop Animation теперь могут применяться для анимации настроек окружения.

  • Новый параметр Update Material Animation для обновления анимированных нодовых материалов во вьюпорте.

    Эта возможность полезна тем, кто часто использует анимированные ноды материалов. Достаточно включить её, и анимация материалов будет воспроизводиться во вьюпорте Blender.

  • Менеджер проектов отделён от аддона Blender.

    Начиная с этого релиза, менеджер проектов может быть запущен как отдельное приложение с помощью скрипта project_server.py. Теперь не требуется запускать Blender для того, чтобы запустить менеджер проектов.

  • Добавлены заголовки и описания ко всем демо-приложениям Blend4Web.

    Это упрощает поиск демо-приложений с помощью Google и других поисковых систем.

  • Добавлен ряд новых модулей.

    Первый из них - математический модуль math. Чтобы больше узнать о нём, обратитесь к документации разработчика.

    Кроме него, также добавлен модуль input. Этот модуль содержит средства для работы с устройствами ввода: мышью — DEVICE_MOUSE, клавиатурой — DEVICE_KEYBOARD, тачскринами — DEVICE_TOUCH, гироскопами — DEVICE_GYRO, устройствами виртуальной реальности — DEVICE_HMD. Узнать о нём больше можно в разделе документации разработчика, посвящённом модулю input.

  • Изменён подход к обратной совместимости с предыдущими версиями Blender.

    Начиная с этого релиза, мы постараемся обеспечить совместимость аддона с предыдущими версиями Blender.

  • В описаниях объектов теперь поддерживаются HTML-ссылки

  • Объекты, находящиеся на вспомогательных сценах (используемых для рендеринга в текстуру), теперь могут контролироваться логическими нодами.

  • В интерфейс рендеринга была добавлена опция Dynamic Grass.

    Для этого параметра доступны три значения: ON включает постоянное отображение динамически генерируемой травы, OFF полностью отключает его, AUTO позволяет движку автоматически определять объекты с динамической травой.

Изменения

  • Изменения API

    Методы enable_controls и disable_controls аддона app были объявлены устаревшими.

    Следующие методы модуля controls были объявлены устаревшими: register_keyboard_events, register_mouse_events, register_wheel_events, register_touch_events, register_device_orientation, unregister_keyboard_events, unregister_mouse_events, unregister_wheel_events, unregister_touch_events, unregister_device_orientation.

    В модуль controls были добавлены методы create_touch_click_sensor и create_hmd_quat_sensor.

    Методы get_hmd_device и reset_device модуля hmd были объявлены устаревшими.

    Следующие методы были добавлены в модуль util: deg_to_rad, rad_to_deg, quat_to_ordered_angles.

    В модуле scenes был добавлен метод get_world_by_name.

  • Были внесены изменения в API для работы с камерой.

    Метод calc_ray() был изменён. Теперь он может работать с параметрическими линиями.

  • Изменено поведение физики типа Static.

    Теперь объекты, которым присвоен материал со включённым параметром Material -> Special: Collision, могут быть полностью выгружены. Кроме того, такие объекты можно перемещать, вращать и пр. пока они остаются динамическими.

  • Оптимизация рендеринга.

    Теперь для отсечения статических объектов используются ограничивающие эллипсоиды, а не сферы.

  • Изменения редактора логики.

    Нода Send Request была упрощена. Кодирование и декодирование JSON вынесено в новую ноду JSON.

  • Оптимизировано обновление анимированных материалов и материалов, освещаемых динамическими источниками света.

  • Генерация меша воды теперь работает на устройствах без поддержки OES_depth_texture.

Исправления

  • Исправлено поведение меню веб-плеера.

  • Исправлен крэш сервера разработки, возникавший в случае, когда заголовки ответа содержали определённую дату (29 февраля).

  • Исправлен параметр Refractions, который имел значение “ON” при отсутствии объектов с рефракцией.

  • Исправлено позиционирование материала воды для динамических объектов.

  • Исправлен крэш, возникавший при создании меша воды без волн.

  • Исправлена некорректная работа выхода ноды TEXTURE в случае, если не выбрана текстура.

v16.02

Новый функционал

  • Расширение поддержки системы частиц типа Emitter.

    Поддержка нодовых материалов, позволяющих задавать параметры шейдинга частиц с помощью последовательности базовых блоков (включая ноду Particle Info). Функционал доступен для систем частиц с типом рендеринга Billboard.

    Переписан шейдер для частиц с типом рендеринга Halo. Добавлена поддержка настроек Rings, Lines и Star Tips. Убрано ограничение на максимальный размер частиц, связанный с аппаратными ограничениями на некоторых платформах.

    Ликвидирован лимит на максимальное количество точек в процедурной текстуре (Ramp), используемой для подкраски частиц.

  • Расширение поддержки нодовых материалов.

    Реализованы две новые ноды, основанные на использовании кривых: Vector Curves и RGB Curves.

    Добавлена поддержка ноды ColorRamp, в которой реализованы типы интерполяции Linear и Constant.

    Добавлена поддержка ноды Particle Info. На данный момент её функционал поддерживается в полном объёме для систем частиц типа Emitter (с установленным типом рендеринга Billboard).

  • Улучшения в менеджере проектов.

    • Возможность экспортировать сразу нескольких проектов в один архив.

      Данная функциональность существенно упрощает обновление SDK, а также перенос проектов с одной рабочей машины на другую.

    • Новые возможности для развёртывания (deploy) проектов.

      Развёртывание проектов необходимо для загрузки готовых приложений на сервер, отправки по почте итд. В этом релизе развёртывание проектов можно делать непосредственно из графического интерфейса Project Manager, проект при этом упаковывается в zip-архив.

      Также начиная с этого релиза развёртывание доступно для всех без исключения типов проектов (включая External).

    • Улучшения в проектах типа Web Player HTML и Web Player JSON.

      При создании таких проектов появилась возможность задавать параметры приложения Web Player, такие как возможность отображения счётчика кадров, автоматический поворот камеры, выключение кнопок социальных сетей и др.

      Кроме того, проекты этих типов могут создаваться с опцией bundle, означающей, что все ресурсы приложения будут располагаться в одной и той же директории.

    • Улучшения графического интерфейса.

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

      Просмотр информации о проекте. При переходе по ссылке [info], расположенной справа от имени проекта, выводится список с подробной информацией о разрабатываемом проекте.

      Для удобства определения типа запускаемых приложений, справа от ссылки запуска отображается префикс: player: - приложение типа Web Player HTML или Web Player JSON, dev: - префикс для запуска разрабатываемой версии приложения, build: - префикс для запуска скомпилированной (обфусцированной) версии приложения.

      Интерфейсные элементы менеджера проекта теперь снабжены всплывающими подсказками.

  • Возможность анимирования настроек окружения.

    Добавлена возможность анимации параметров окружения из разделов Sky (Horizon Color, Zenith Color), Environment Lighting (Energy) и Mist (Minimum, Start, Depth, Height, Fog Color). Данная функциональность поддерживается также и в NLA-анимации.

    В панель настроек World в Blender добавлен раздел Animation с параметрами Apply Default Animation и Behavior.

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

  • Улучшения камеры.

    Добавлена возможность назначать лимиты на вертикальное перемещение опорной точки TARGET-камеры в Blender. Функциональность также поддерживается через API с помощью методов target_set_pivot_limits() и target_get_pivot_limits().

    Добавлены новые методы static_setup(), eye_setup(), target_setup(), hover_setup() и hover_setup_rel() для смены и полного задания модели поведения камеры. Метод set_move_style() в то же время объявлен устаревшим.

    Также были добавлены методы target_switch_panning() - для управления режимом панорамного перемещения, get_view_vector() - для получения вектора направления взгляда камеры.

    Примеры работы с API камеры теперь описаны в соответствующем разделе документации, ссылка на который также доступна со страницы API документации модуля camera.js.

  • Улучшения нодового редактора логики.

    В ноде Send Request добавлена опция Content-Type, позволяющая переназначить поле заголовка HTTP-запроса.

  • В модуль controls добавлен новый сенсор.

    Gyro Quat (метод create_gyro_quat_sensor) - сенсор для работы с гироскопом на мобильных устройствах, позволяет оперировать кватернионом поворота устройства.

  • Добавлена экспериментальная поддержка UC Browser.

  • Документация была значительно переработана и дополнена.

Изменения

  • Параметр ламп Generate Shadows переименован в Shadow и теперь также активирует отображение теней в Blender Viewport.

  • Изменён дизайн главной страницы SDK.

    Список приложений теперь находится в менеджере проектов. Добавлены ссылки для запуска часто используемых приложений: просмотрщика (Viewer) и примеров с кодом (Code Snippets).

  • Методы get_coords_x() и get_coords_y() теперь принимают параметр target_touches.

    Данный параметр позволяет в случае мультитача использовать только те касания, которые произошли внутри текущего target-элемента (свойство targetTouches).

  • Изменения API модуля camera.

    Объявлены устаревшими методы has_vertical_limits() и has_horizontal_limits(). Вместо них следует использовать has_vertical_rot_limits() и has_horizontal_rot_limits().

  • Изменение правил именования файлов разрабатываемых приложений

    Теперь html-файлы разрабатываемых приложений (расположенных в директории apps_dev) не содержат в своём имени суффикса _dev, отличать данные приложения от скомпилированных позволяет префикс, указываемый в Project Manager.

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

Исправления

  • Исправлена ошибка с неверным поведением параметра движка canvas_resolution_factor на устройствах с системой Apple iOS.

  • Исправлена ошибка движка при отсутствии выбранного объекта в логических нодах Show Object, Hide Object.

  • Исправлена ошибка округления координат по осям Y и Z при использовании переменных в качестве параметров в логической ноде Transform Object.

  • Исправлена блокировка нодовой логики при наличии нод, не связанных с Entry Point.

  • Исправлена ошибка отображения динамических объектов на неосновных сценах при рендеринге сцены в текстуру.

  • Исправлена ошибка перехода в полноэкранный режим в Safari.

  • Устранена ошибка интерфейса аддона, связанная с системой частиц типа Emitter при отсутствии на объекте материала.

  • Исправлена работа входа Factor в ноде B4W_GLOW_OUTPUT на материале с прозрачностью типа Alpha Clip.

  • Дупли группы с типом дупликации None не экспортируются и не отрисовываются.

  • Исправлен метод append_ray_test() при сообщении ему пустого объекта в качестве первого параметра.

  • Исправлены и оптимизированы некоторые настройки воды.

  • Физические объекты, имеющие родительский объект, теперь корректно обновляют позицию в случае, если на сцене отключена физика.

  • Исправлено поведение нод Camera Data и B4W Vector View для отраженных объектов.

  • Исправлена NLA анимация ноды RGB в материалах.

  • Система частиц типа HAIR больше не будет отображаться, если на объекте-эмиттере выставлен флаг Do Not Render.

  • Исправлена работа метода auto_rotate() для случая EYE камеры.

  • Исправлен экспорт частиц типа Hair, находящихся на неактивной сцене в Blender.

  • Добавлены runtime библиотеки для Windows, без которых возникала ошибка при конвертации ресурсов.

  • Исправлена ошибка генерации шейдера нодового материала в случае наличия в материале более 10 текстур.

Известные проблемы

Начиная с этого релиза описание всех известных проблем и возможных решений находится в отдельном подразделе.

v16.01

Новый функционал

  • Рендеринг линий.

    Теперь поддерживается возможность отрисовки линий, задаваемых процедурным образом. Для этого предусмотрен специальный тип объекта, активируемый с помощью опции Line Renderer в Blender, а также ряд API draw_line, get_line_params и set_line_params.

  • Новые ноды редактора логики.

    • Transform Object: Позволяет перемещать объект в мировой, родительской или локальной системе координат.

    • String Operation: Позволяет проводить операции над строковыми константами и переменными аналогично ноде Math Operation.

  • Упрощена установка SDK.

    Теперь при установке SDK в меню User Preferences в разделе File->Scripts достаточно указать путь к SDK.

  • Улучшения в приложении WebPlayer.

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

    Экранированные символы в адресной строке плеера теперь обрабатываются корректно.

  • Улучшение качество отрисовки для шлемов виртуальной реальности (HMD).

    Для шлемов виртуальной реальности добавлен механизм коррекции дисторсии и устранения хроматической аберрации. Для установки пользовательских настроек коррекции следует использовать функцию set_hmd_params().

  • В модуль controls добавлены два новых сенсора.

    Touch Rotate (метод create_touch_rotate_sensor()) - сенсор, обрабатывающий событие поворота с помощью двух пальцев на touch-устройствах.

    Callback (метод create_callback_sensor()) - сенсор, значение которого определяется callback-функцией, вызываемой каждый кадр.

  • Улучшения в утилите для конвертации ресурсов.

    В утилиту для конвертации ресурсов converter.py добавлены параметры –verbose и –jobs служащие соответственно для вывода детализированной информации и задания максимального количества параллельно выполняемых процессов в процессе конвертации.

  • Добавлен ряд методов API.

    is_line() - проверка, является ли объект специальным объектом типа LINE.

    is_idle() - проверка, завершил ли загрузчик сцен все запланированные действия.

    hover_switch_horiz_rotation() - возможность включать/выключать горизонтальное вращение камеры типа HOVER.

  • Оптимизирован алгоритм обновления нодового дерева.

Изменения

  • Упрощено применение Кубических отражений.

    Теперь кубическое отражение рендерится относительно геометрического центра объекта, а не относительно его центра в Blender. Так же в кубическом отражении больше не отрисовываются плоские отражения, что раньше приводило к нежелательным артефактам.

  • Изменения API.

    В модуль camera добавлены следующие методы: get_vertical_axis(), set_vertical_axis(). Теперь вращение на угол “phi” камеры типа “EYE” методом eye_rotate() происходит вокруг вектора, выдаваемого функцией get_vertical_axis().

    Метод correct_up() теперь принимает в качестве параметра флаг strict. Этот параметр позволяет ориентировать камеру сонаправленно с передаваемым вектором y_axis, а не просто параллельно ему.

    Методы eye_get_vertical_limits, eye_get_horizontal_limits, target_get_vertical_limits и target_get_horizontal_limits теперь могут возвращать лимиты, заданные в мировых и в локальных координатах относительно камеры. Это определяется параметром local.

  • Изменения в редакторе логики.

    Добавлено распределение нод по категориям.

    • В ноде Variable Store добавлена возможность выбора типа переменной между Number и String.

    • В ноде Send Request добавлена возможность использовать строковые переменные для хранения тела запроса и ответа сервера целиком.

  • Удаление устаревшего инструмента Mass Reexporter.

    Панель инструмента Mass Reexporter удалена, поскольку функционал автоматического реекспорта сцен уже имеется в инструменте Project Manager (операция re-export scenes).

  • Устаревший функционал.

    Были удалены методы: mouse.enable_mouse_hover_glow(), mouse.disable_mouse_hover_glow(), anim.get_actions(), anim.get_current_action(), anim.set_current_frame_float(), anim.get_current_frame_float(), anim.get_frame_range(), anim.cyclic(), anim.is_cyclic(), anim.update_object_animation(), controls.remove_sensor_manifolds(), main.redraw(), scenes.set_glow_intensity(), scenes.get_glow_intensity(), scenes.apply_glow_anim(), scenes.apply_glow_anim_def(), scenes.clear_glow_anim(), scenes.set_glow_color(), scenes.get_glow_color(), sfx.speaker_play(), sfx.speaker_stop(), sfx.speaker_playback_rate(), sfx.get_speakers(), trans.set_rotation_quat(), trans.set_rotation_quat_v(), trans.get_rotation_quat().

    Объявлены устаревшими метод set_camera_move_style() и константы SPACE_WORLD и SPACE_LOCAL.

    Также объявлены устаревшими методы has_vertical_limits() и has_horizontal_limits(). Вместо них следует использовать наиболее подходящий из новых методов: has_vertical_rot_limits(), has_horizontal_rot_limits(), has_vertical_trans_limits(), has_horizontal_trans_limits().

Исправления

  • Исправлено позиционирование и мерцание для систем частиц с мировыми координатами.

  • Исправлен Front Facing для кубических отражений.

  • Исправлены ошибки рендеринга для стерео-режимов.

  • Исправлено некорректное позицирование в анимации дочерних объектов.

  • Исправлено зависание загрузки сцены в Safari при использовании аудио файлов формата .ogg в источниках звука типа Background Music.

  • Исправлен баг ноды Move Camera из-за которого не оказывало влияние свойство duration после переоткрытия blend файла.

  • Исправлен крэш при экспорте систем частиц с эммитером со сложным мешем.

  • Исправлена ошибка ноды Switch Select в результате которой осуществлялся неверный переход.

  • Исправлен ряд ошибок при отображении лимитов камеры во вьюпорте Blender.

  • Исправлена ошибка экспорта материалов, привязанных непосредственно к объекту, а не к мешу.

  • Исправлен вызов функции RenderCallback, задаваемой методом set_render_callback().

    Теперь RenderCallback будет выполняться прямо перед рендерингом текущего кадра, поэтому в момент вызова состояние сцены и объектов будет актуальным.

  • Исправлен рендеринг теней от нескольких источников света разных типов (например, POINT и SUN).

  • Исправлен рендеринг Environment текстур при их одновременном использовании в качестве текстуры мира и в стeковом материале.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Изменение фильтрации текстур на некоторых устройствах.

    При использовании iPad или браузера Internet Explorer отключена некорректная фильтрация текстур, которые используются материалами с типом прозрачности Alpha Clip.

  • Некоторые устройства, использующие GPU Mali, требуют принудительного включения WebGL в настройках браузера.

  • На системах Apple macOS и Blender 2.76 для работы локального сервера разработки может потребоваться установка Python 3.4. Это связано с ошибкой Blender https://developer.blender.org/T46623. В Blender 2.76b эта проблема устранена, поэтому рекомендуем обновиться.

  • При использовании драйверов Nouveau скелетная анимация может работать некорректно.

v15.12

Новый функционал

  • Поддержка теней от нескольких источников.

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

  • Экспериментальная поддержка шлемов виртуальной реальности (HMD).

    Добавлена экспериментальная поддержка шлемов виртуальной реальности с использованием WebVR API. На данный момент для использования этой технологии необходимо наличие браузера с поддержкой WebVR и устройства Oculus Rift. Подробнее в соответствующем разделе документации.

  • Привязка объектов к камере в пространстве экрана.

    Новый инструмент Viewport Alignment для привязки объектов к камере в пространстве экрана. Этот инструмент позволяет в удобной форме создавать элементы пользовательского интерфейса, привязанные к краю, углу или центру экрана. В отличие от привязки родитель-потомок, положение объекта автоматически изменяется при изменении разрешения и пропорций экрана.

    Также был расширен функционал метода append_stiff_viewport() для назначения ограничителя Stiff Viewport.

  • Отображение лимитов, назначаемых на камере во вьюпорте Blender.

    Для упрощения задания ограничений добавлена опция Display limits in viewport на панели Data объекта-камеры. При её активации, лимиты будут отображаться непосредственно во вьюпорте Blender. Также были изменены их значения, выставляемые по умолчанию.

  • Улучшение рендеринга анаглифного стереоизображения.

    New anaglyph rendering algorithm has been implemented. It has better color rendering. Also, plane of convergence of the left and right image for a TARGET type camera will now be calculated automatically based on a point around which the camera is rotated.

  • Новые ноды редактора логики.

    • Move To: Позволяет перемещать объект в направлении другого объекта.

    • Console Print: Позволяет выводить полезную информацию (в том числе значения переменных) в консоль браузера.

  • В веб-плеер добавлена кнопка переключения в стерео-режим.

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

  • Добавлены новые методы для работы с объектами.

    Были добавлены новые методы get_selectable_objects и get_outlining_objects, облегчающие работу с объектами.

  • Добавлена возможность удалять динамические объекты.

    Раньше можно было удалять только те объекты, которые были скопированы пользователем.

  • Добавлена возможность взятия объекта аннотации по координатам на канвасе.

    Теперь функция pick_object возвращает объект-аннотацию, если он располагается в указанных координатах.

  • Добавлен новый метод для инициализации медиаресурсов на мобильных устройствах.

    Раньше для обхода ограничений мобильных браузеров по инициализации медиаресурсов (аудио и видео) применялось принудительное блокирование канваса с необходимостью нажатия на всплывающую пиктограмму начала воспроизведения. Теперь можно самостоятельно инициализировать медиаресурсы, используя метод activate_media. Данный функционал может быть полезен, в частности, если мобильное приложение уже включает элементы, требующие нажатия пользователя (кнопка “Старт”, кнопка включения звука итд).

  • Новый тип множества сенсоров (Sensor Manifold) - CT_POSITIVE.

    Новый тип множества CT_POSITIVE предполагает вызов обработчика событий при ненулевом значении логической функции.

Изменения

  • Кнопка Fast Preview для быстрого предпросмотра сцены продублирована на нижней панели интерфейса.

    Позволяет осуществить просмотр сцены без необходимости совершать переход к панели настроек сцены Development Server.

  • Было изменено API для работы с канвас-текстурой.

    Теперь работать с канвас-текстурой стало удобнее. Были добавлены новые методы get_canvas_ctx и update_canvas_ctx. Методы get_canvas_texture_context и update_canvas_texture_context признаны устаревшими и не рекомендуются к использованию. Также для канвас-текстуры больше не присутствует в интерфейсе поле Source ID.

  • Исправлено неверное поведение теней для Alpha Clip материалов.

    Было исправлено неверное поведение теней для Alpha Clip материалов при невыставленном значении прозрачности на материале.

Исправления

  • Исправлено неверное поведение физики скопированного объекта.

    Было исправлено поведение физики скопированного объекта при перемещении его до добавления на сцену.

  • Исправлено некорректное поведение тумана при добавлении на сцену воды

  • Исправлено некорректное расположение интерфейсных панелей Blender в стандартной сцене, создаваемой для новых проектов.

  • Исправлена ошибка при рендеринге cubemap-текстур на видеокартах NVIDIA GeForce 200 Series.

  • Улучшена работа движка на iPhone 4, 4S, 5; iPad 2,3,4 поколений; iPad Mini 1 и 2 поколений.

  • Исправлен некорректный рендеринг теней для billboard-объектов.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Изменение фильтрации текстур на некоторых устройствах.

    При использовании iPad или браузера Internet Explorer отключена некорректная фильтрация текстур, которые используются материалами с типом прозрачности Alpha Clip.

  • Некорректное поведение Depth-текстуры на ОС Windows.

    При использовании стабильной версии Google Chrome 32bit на ОС Windows могут возникать проблемы с поддержкой Depth-текстуры. В настоящее время эта проблема исправлена для бета-версии браузера.

  • Некоторые устройства, использующие GPU Mali, требуют принудительного включения WebGL в настройках браузера.

  • На системах Apple macOS и Blender 2.76 для работы локального сервера разработки может потребоваться установка Python 3.4. Это связано с ошибкой Blender https://developer.blender.org/T46623. В Blender 2.76b эта проблема устранена, поэтому рекомендуем обновиться.

v15.11

Новый функционал

  • Начальная поддержка технологии WebGL 2.0.

    Возможности новых API предоставляются автоматически при наличии совместимого оборудования/браузера.

  • Новые возможности редактора логики.

    • Возможность анимации камеры.

      В ноду Move Camera добавлена возможность плавной смены положения камеры.

    • Возможность задания поведения объектной анимации.

      В ноду Play Animation добавлена возможность задания Поведения (Behavior) анимации.

    • Новая нода Stop Animation.

      Позволяет останавливать объектную анимацию.

    • Новая нода Stop Sound.

      Позволяет останавливать воспроизведение звука спикера.

    • Новая нода Stop Timeline.

      Позволяет останавливать NLA анимацию.

  • Поддержка антиалиасинга MSAA.

    Данный алгоритм сглаживания применяется на конфигурациях, совместимых с WebGL 2.0. На данный момент он позволяет получить максимальное качество изображения в режиме ULTRA, благодаря задействованию алгоритма 16x MSAA.

  • Улучшения в интерфейсе программы-просмотрщика.

    Добавлена кнопка Home, при нажатии на которую осуществляется переход на базовую сцену, указанную в URL-параметрах приложения, либо, при её отсутствии, на стандартную сцену с кубическим лого Blend4Web.

    Кнопка Reset вынесена в правую часть верхней панели приложения и теперь, кроме внутренних параметров, также сбрасывает и URL-параметры просмотщика (например, загружаемую базовую сцену).

    Кнопка Auto View Mode для автоматического прохода всех сцен вынесена на панель Tools & Debug.

  • Высокоточный механизм оценки производительности рендеринга.

    Использование расширения WebGL EXT_disjoint_timer_query позволяет реализовать высокоточные таймеры, способные оценить производительность операций, выполняемых на GPU. При активации режима отладки в программе-просмотрщике (опция HUD Info на панели Tools & Debug) в последней колонке отладочной информации выводится время в миллисекундах, потраченное GPU на рендеринг части сцены (subscene).

  • Улучшения в интерфейсе веб-плеера.

    Добавлено изменение вида курсора при перемещении камеры.

  • Многочисленные добавления и улучшения в документации.

Изменения

  • Кнопка Copy Cursor Location переименована в Look At Cursor, изменено её поведение.

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

  • Изменения API.

    Для совместимости со сторонними приложениями добавлены методы set_matrix, get_matrix, set_matrix_rel, get_matrix_rel, однако, в целях оптимизации рекомендуется использовать set_tsr, get_tsr, set_tsr_rel, get_tsr_rel.

    Теперь функции hide_object и show_object по умолчанию изменяют видимость объекта и всех его дочерних объектов. Для изменения видимости конкретного объекта необходимо передать параметр ignore_children со значением true.

    Следующий метод объявлен устаревшим и будет удален в последующих релизах: create_sep() (модуль tsr). Вместо него теперь следует использовать метод модуля tsr: set_sep().

    API модуля camera претерпело существенные изменения. Были удалены устаревшие методы: is_camera(), rotate_pivot(), rotate_hover_cam(), get_hover_cam_angle(), set_hover_cam_angle(), translate_hover_cam_v(), set_eye_params(), rotate(), get_angles(). Следующие методы объявлены устаревшими: set_look_at, rotate_eye_camera, rotate_target_camera, set_trans_pivot, zoom_object, set_pivot, rotate_hover_camera, get_hover_cam_pivot, get_eye, get_pivot, hover_cam_set_translation, set_hover_pivot, get_hover_angle_limits, get_cam_dist_limits, apply_vertical_limits, clear_hover_angle_limits, apply_hover_angle_limits, apply_distance_limits, clear_distance_limits, get_vertical_limits, apply_horizontal_limits, get_horizontal_limits, clear_vertical_limits, clear_horizontal_limits. Вместо них следует использовать методы, начинающиеся с префикса, соответствующего типу камеры: target_..., eye_..., static_..., hover_.... Также устаревшими объявлены методы set_velocity_params и get_velocity_params; вместо них следует использовать set_velocities и get_velocities соответственно.

    Помимо этого были добавлены методы target_get_distance, target_set_distance и hover_get_distance для работы с расстоянием от текущего положения TARGET/HOVER камеры до pivot-точки.

  • В приложении Viewer добавлены кнопки Play All и Stop All для запуска и остановки всей анимации.

  • Изменения редактора логики:

    • Нода Select и базирующиеся на ней ноды Select & Play Animation и Select & Play Timeline теперь являются устаревшими. В качестве замены рекомендуется использовать комбинации нод Switch Select, Play Animation и Play Timeline.

    • Обновлены примеры в SDK, использующие вышеуказанные устаревшие ноды.

    • Для прозрачности поведения нодовой логики воздействие опции Cyclic NLA отключено.

  • Изменено поведение HOVER-камеры при отсутствии у неё лимитов.

    • Теперь HOVER-камера будет зависать над pivot-точкой на фиксированном расстоянии и под фиксированным углом.

  • Изменение поведения glow эффекта.

    Теперь источники освещения влияют на glow эффект при наличии нод Material, Extended Material.

Исправления

  • Исправлены ошибки в системе управления проектами.

    В списке теперь выводятся ссылки на девелоперские приложения в составе проекта.

    В html-файлах скомпилированных приложений исправлена верстка.

  • Улучшена работа скининга на мобильных платформах.

  • Исправлена ошибка подключения файлов переводчика аддона.

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

  • Исправлено некорректное поведение теней от объектов системы частиц.

    Было исправлено поведение теней от объектов системы частиц типа “Hair”, используемых в качестве билбордов, при изменении размеров основного канваса.

  • Исправлена работа движка на GPU Mali 400 серии.

  • Исправлены плоские отражения и туман для материалов, использующих double_sided_lighting

  • Исправлена ошибка, возникавшая при ограниченной квоте в Local Storage. Проявлялось на Safari в режиме инкогнито.

  • Восстановлена функциональность опции Render Glow Over Transparent Objects в настройках эффекта Glow в Blender.

  • Исправлен ряд ошибок воспроизведения видеотекстур.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Изменение фильтрации текстур на некоторых устройствах.

    При использовании iPad или браузера Internet Explorer отключена некорректная фильтрация текстур, которые используются материалами с типом прозрачности Alpha Clip.

  • Некорректное поведение Depth-текстуры на ОС Windows.

    При использовании стабильной версии Google Chrome 32bit на ОС Windows могут возникать проблемы с поддержкой Depth-текстуры. В настоящее время эта проблема исправлена для бета-версии браузера.

  • Некоторые устройства, использующие GPU Mali, требуют принудительного включения WebGL в настройках браузера.

  • На системах Apple macOS и Blender 2.76 для работы локального сервера разработки может потребоваться установка Python 3.4. Это связано с ошибкой Blender https://developer.blender.org/T46623.

v15.10

Новый функционал

  • Новый функционал в системе управления проектами.

    Проекты теперь можно экспортировать и импортировать. Это существенно упрощает обновление на новые версии SDK, обеспечивает возможность запускать и отлаживать проекты на различных системах, а также позволяет обмениваться проектами с другими разработчиками.

    Стали доступны два новых типа проектов: WebPlayer JSON и WebPlayer HTML. Обе опции позволяют создавать проекты, не требующие программирования и работающие внутри приложения WebPlayer.

    Для удобства навигации по собственным проектам была добавлена функция сортировки по имени, а также скрытия проектов, изначально присутствующих в составе SDK.

    Добавлена возможность удалять проекты из списка.

    Улучшена поддержка ОС Windows, благодаря включению Java в состав SDK, что позволяет собирать приложения без необходимости установки внешних зависимостей.

  • Улучшения антиалиасинга.

    На панель Render > Anti-Aliasing добавлено поле AA Quality, позволяющее выбирать профили качества антиалиасинга. Улучшена технология антиалиасинга; теперь в качестве технологии антиалиасинга используется алгоритм, основанный на FXAA 3.11, что позволило увеличить качество и производительность, особенно при выборе высоких уровней детализации графики.

  • Улучшения нодового редактора логики.

    • Новая нода Move Camera.

      Позволяет задать положение и целевую точку для камеры.

    • Новая нода Play Sound.

      Позволяет проигрывать звук выбранного спикера.

    • Новая нода Switch Select.

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

    • В ноду Math Operation редактора логики добавлена операция Random, позволяющая генерировать случайные числа.

    • В ноду Send Request добавлена возможность отправки POST запроса с заданными параметрами.

  • Добавлена возможность использования типа маппинга Repeat для NPOT-текстур.

    Теперь доступен тип маппинга Repeat для NPOT-текстур (текстур, размеры которых не являются степенью числа 2). Также для этих текстур теперь применяется MIP-текстурирование.

  • Добавлено автоматическое изменение размеров текстур при превышении ими лимитов WebGL.

    В случае, когда размер текстуры превышает лимиты WebGL, будет использовано уменьшение размера текстуры до максимально допустимого (кроме случая с использованием DDS-текстур).

  • Добавлена кнопка Fast Preview для быстрого предпросмотра сцены.

    Кнопка находится на панели Render > Development Server.

  • Поддержка анимации свойств Intensity и Color для источников освещения.

    Теперь возможно анимировать интенсивность и цвет источников освещения как в обычной, так и в NLA-анимации.

Изменения

  • Улучшен интерфейс системы управления проектами.

    Изменена тема оформления, добавлена кнопка для быстрого запуска менеджера проектов в Blender Development Server > Project Manager.

  • Улучшена работа звуковых источников.

    Метод is_play() теперь корректно и с минимальными задержками отображает факт завершения воспроизведения.

  • Добавлено несколько сообщений об ошибках экспорта.

    При экспорте ряда объектов их тип может смениться на EMPTY, например, в случае вырожденной геометрии или отсутствия звукового файла на объекте типа SPEAKER. Сообщения об этом теперь выводятся в консоль браузера.

  • Улучшено отображение селектора объектов для нод редактора логики.

  • Изменено поведение гамма-коррекции в нодовых материалах.

    В связи с изменениями в Blender 2.76 необходимо иначе проводить гамма-коррекцию в нодовых материалах.

  • Изменения API.

    Объявлен устаревшим и будет удален в последующих релизах метод resize из модуля main. Вместо него следует использовать соответствующий метод resize из модуля container.

Исправления

  • Исправлены ошибки в системе управления проектами.

  • Повышена стабильность работы на мобильных платформах при большом количестве лампочек на сцене.

  • Повышена стабильность работы на Unix-подобных системах.

    Улучшена работа движка на Unix-подобных системах, использующих видеокарты AMD и открытые видеодрайверы.

  • Исправлена ошибка, связанная с добавлением аннотаций на сцену.

    Исправлена ошибка, возникающая при добавлении аннотаций на сцену без свойства Object -> Meta Tags.

  • Исправлена ошибка, связанная с некорректным воспроизведением звуков при переключении вкладок браузера.

  • Исправлен ряд ошибок, связанных с работой видеотекстур.

  • Исправлена ошибка, проявляющаяся при использовании пустой нодовой группы в нодовом материале.

  • Исправлена ошибка, если на системе частиц в качестве частицы был выбран объект, имеющий LOD-объекты.

  • В редакторе логики исправлена ошибка ноды Delay, связанная с использованием переменной в качестве параметра.

  • В редакторе логики исправлена ошибка, возникающая при удалении Entry Point.

  • В редакторе логики исправлена ошибка дублирования переменных в выпадающем списке выбора переменных.

  • Исправлена ошибка, возникающая в экспортированной сцене, использующей логическую ноду Play Animation и отключенный флаг NLA.

  • Исправлено и установлено поведение аналогичное Blender для следующих нод нодовых материалов: Math->Power, Gamma.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Изменение фильтрации текстур на некоторых устройствах.

    При использовании iPad или браузера Internet Explorer отключена некорректная фильтрация текстур, которые используются материалами с типом прозрачности Alpha Clip.

  • Некорректное поведение Depth-текстуры на ОС Windows.

    При использовании стабильной версии Google Chrome 32bit на ОС Windows могут возникать проблемы с поддержкой Depth-текстуры. В настоящее время эта проблема исправлена для бета-версии браузера.

  • Некоторые устройства, использующие GPU Mali, требуют принудительного включения WebGL в настройках браузера.

  • На системах Apple macOS и Blender 2.76 для работы локального сервера разработки может потребоваться установка Python 3.4. Это связано с ошибкой Blender https://developer.blender.org/T46623.

v15.09

Новый функционал

  • Система управления проектами.

    Новая система управления проектами позволяет:

    • просматривать список и внутренюю структуру имеющихся проектов

    • запускать приложения, просматривать сцены в программе-просмотрщике, загружать исходные файлы сцен в Blender

    • создавать и конфигурировать новые приложения, в том числе на основе готовых шаблонов

    • осуществлять сборку приложения и его конверсию в вид, необходимый для последующего размещения на сервере

    • конвертировать ресурсы приложения (текстуры, звуки и видео) в альтернативные форматы

    • производить автоматический реэкспорт всех сцен из состава приложения, включая json и html файлы

    Управлять проектами возможно двумя способами: с помощью консольной утилиты project.py, имеющей простой формат вызова и подробную справку, либо в графической форме с помощью веб-приложения, выполняющегося на сервере разработчика. Сервер не требует каких-либо дополнительных настроек и, также как и раньше, запускается с помощью кнопки Open SDK в Blender.

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

  • Управление костями арматурного объекта.

    Существенно расширены возможности для управления арматурными объектами.

    Добавлен новый модуль armature, в котором присутствуют методы для получения и назначения позиций костей в координатах объекта арматуры: get_bone_tsr(), set_bone_tsr() и в относительных координатах кости: get_bone_tsr_rel(), set_bone_tsr_rel(). С помощью данных функций возможно создавать приложения с программным управлением элементами скелета. Например, теперь возможно процедурно анимировать персонажей или упрощенно назначать позиции элементов сложных конструкций, которые имеют в качестве управляющего каркаса арматуру.

    Обеспечена поддержка ограничителей типа COPY_TRANSFORMS для костей. Кости могут копировать положение любых объектов на сцене, в том числе и физических. Таким образом можно например применить технику Ragdoll, чтобы получить физически корректные скелеты.

  • Новые ноды редактора логики.

    • Play Animation: позволяет проигрывать анимацию объекта.

    • Send Request: позволяет отправить HTTP GET запрос на указанный адрес и осуществить простейший разбор ответа.

    • Inherit Material: позволяет скопировать атрибуты материала с одного объекта на другой.

    • Set Shader Node Param: позволяет изменить значение шейдерного нода; в данный момент поддерживаются нода Value и RGB.

    • Delay: позволяет осуществить задержку перед выполнением следующей ноды.

    • Apply Shape Key: позволяет выставить значение shape key для объекта.

    • Outline: позволяет управлять “обводкой” объекта.

  • Для видеотекстур добавлена настройка Allow NLA, позволяющая выбирать использование NLA-анимации индивидуально для каждой текстуры.

  • Добавлен новый функционал в модуле material.

    Добавлены методы set_specular_color_factor и get_specular_color_factor.

  • Расширение функционала веб-приложения для разработчиков.

    На корневой страницы веб-приложения для разработчиков появился новый раздел Tools, включающий инструменты Manage Projects (управление проектами) и WebGL Report (просмотр возможностей WebGL браузера).

  • Улучшения в интерфейсе веб-плеера.

    Добавлен необязательный атрибут alpha, использующийся для установки прозрачности области отрисовки. Добавлено поведение Outline on Select.

  • В утилите project.py добавлен тип сборки приложения update.

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

  • Добавлен новый функционал в модуль app.

    В методе enable_camera_controls() добавлен необязательный параметр disable_zoom. Данный параметр позволяет отключить приближение камеры.

    В модуле app был добавлен метод queue_animate().

  • Добавлен новый функционал в модуль scenes.

    В модуле scenes был добавлен метод has_picking_subs().

  • Добавлен новый функционал в модуль debug.

    В модуле debug был добавлен метод fake_load().

Изменения

  • Аддоны (такие как app, mouse и другие) теперь являются частью скомпилированных версий движка:

    • b4w.min.js - расширенная (advanced) оптимизация (ранее b4w.full.min.js)

    • b4w.simple.min.js - простая (simple) оптимизация

    • b4w.whitespace.min.js - оптимизация пробелов, используемых в коде (whitespace)


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

  • Улучшения нодового редактора логики.

    • Переименованы ноды: Play -> Play Timeline; Select & Jump -> Select, Register Store -> Variable Store.

    • Помимо переменных-регистров теперь можно создавать пользовательские переменные, имеющие произвольные имена.

  • В утилите project.py удален малоиспользуемый тип сборки движка combine.

  • Улучшена документация по конвертеру ресурсов.

  • Улучшена документация по переводу аддона.

  • Изменен экспорт UV-слоев и вертексных цветов.

    Теперь поведение UV-слоев и вертексных цветов после экспорта еще больше приближено к Blender’у.

  • Расширена поддержка NLA-анимации для видеотекстур, поведение которых теперь более приближено к поведению в Blender’е.

  • Добавлено сообщение экспорта об отсутствии в анимации каналов.

  • Добавлена некритическая ошибка экспорта при выборе неподдерживаемого типа Render Type в системе частиц.

  • При наследовании материала (метод API inherit_material) теперь наследуется параметр Specular Color Factor.

  • Изменения API.

    Следующие методы объявлены устаревшими и будут удалены в последующих релизах: is_camera, is_mesh, is_armature.

    Вместо них следует использовать соответствующие методы модуля objects: is_camera, is_mesh, is_armature.

    Также добавлены новые методы: is_speaker, is_lamp и is_empty.

    Метод get_object_by_dupli_name_list теперь возвращает null, если параметр name_list неточно задан. Добавлен метод get_object_name_hierarchy для получения полного списка имен с учетом дуплицирования объектов; возвращаемое этой функцией значение будет валидным параметром для функции get_object_by_dupli_name_list.

    В методе set_debug_params параметр wireframe_mode, ранее бывший строковым, теперь должен быть одной из констант: WM_NONE, WM_OPAQUE_WIREFRAME, WM_TRANSPARENT_WIREFRAME, WM_FRONT_BACK_VIEW, WM_DEBUG_SPHERES.

  • NLA Animation Behavior for dynamically loaded scenes changes.

    Если на таких сценах присутствуют оъекты с NLA-анимацией, то теперь они подчиняются настройкам NLA главной сцены. Ранее такая анимация не поддерживалась.

  • Продолжен рефакторинг внутренней структуры объектов, начатый в предыдущем релизе.

  • Добавлена ошибка экспорта.

    Теперь при использовании объекта, с типом отличным от “Mesh”, в качестве частицы типа “Hair”, будет возникать некритическая ошибка экспорта.

  • В исходные файлы дистрибутива добавлена информация о лицензировании.

  • Теперь при экспорте сцены слоты с картами окружения (Environment Map) содержащими видеотекстуры не экспортируются.

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

Исправления

  • Опция Render Above All теперь корректно отображается на нодовых материалах.

  • Исправлена функция remove_object(), некорректно очищавшая массив объектов.

  • Улучшена стабильность работы частиц типа “Hair”.

    Исправлена ошибка, возникающая при использовании объекта с модификатором в качестве частицы типа “Hair”.

  • Улучшена поддержка Windows Phone.

  • Исправлена ошибка, возникающая при копировании физических объектов.

  • Исправлена ошибка реализации текстурных координат типа Orco в случае, когда объект имеет нулевой размер по какой-либо из осей координат.

  • Исправлена ошибка движка, когда в системе частиц в качестве частицы был выбран объект, имеющий физические настройки.

  • Исправлена ошибка, при которой NLA-анимация могла начинаться не с нулевого кадра.

  • Исправлено поведение ноды Lamp Data: ранее могла не обновляться информация об источниках освещения в процессе загрузки сцены.

  • Исправлена ошибка расчета выхода Normal в ноде Geometry для задней поверхности полигона.

  • Исправлена ошибка расчета выхода Orco в ноде Geometry, появляющаяся при смещении меша относительно его центра в Blender’е.

  • Поправлен расчет конечного кадра NLA-анимации для видеотекстур.

  • Исправлена ошибка движка, связанная с выставлением различных комбинаций настроек выделения (selection) и подсвечивания (outlining) объектов.

  • Улучшена стабильность эффекта Wind bending.

  • Исправлены ошибки рендеринга Alpha Clip материалов.

  • Исправлен перенос текстуры спекуляра (Specular Map) при наследования материала.

  • Исправлена ошибка связанная с источниками освещения в приложениях с несколькими сценами.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Изменение фильтрации текстур на некоторых устройствах.

    При использовании iPad или браузера Internet Explorer отключена некорректная фильтрация текстур, которые используются материалами с типом прозрачности Alpha Clip.

  • Некоторые устройства, использующие GPU Mali, требуют принудительного включения WebGL в настройках браузера.

v15.08

Новый функционал

  • Нодовый редактор логики.

    Нодовый редактор логики позволяет добавлять интерактивность в приложение в более удобной для восприятия форме. Использовавшийся ранее для этих целей слотовый инструмент NLA Script удалён, при этом старые скрипты, созданные при помощи NLA Script, автоматически конвертируются в новый формат при открытии blend-файла.

  • Поддержка различных моделей освещения для нод MATERIAL и MATERIAL_EXT.

    Теперь модель диффузного и спекулярного освещения для каждой ноды будет соответствовать настройкам выбранного в ней материала, в то время как раньше тип освещения был одинаков для всех и соответствовал настройкам самого нодового материала, содержащего данные ноды. Данное нововведение позволяет осуществлять смешиваные различных стековых материалов (за исключением текстурированных) в составе нодового.

  • Улучшения в API для перемещения объектов.

    В модуле transform были добавлены новые методы для перемещения объектов относительно родительских: set_translation_rel(), set_translation_rel_v(), get_translation_rel(), set_rotation_rel(), set_rotation_rel_v(), get_rotation_rel(), set_scale_rel(), get_scale_rel(), set_tsr_rel(), get_tsr_rel().

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

    Также были добавлены методы для осуществления локальных поворотов относительно выбранных осей: rotate_x_local(), rotate_y_local(), rotate_z_local().

  • Улучшена поддержка ОС Windows.

    Добавлена поддержка конвертера ресурсов для ОС Windows. Теперь пользователи этой операционной системы смогут создавать кросс-браузерные приложения, использующие медиаресурсы. Также была добавлена поддержка Windows в сборщике приложений.

  • Поддержка работы движка в браузере Microsoft Edge.

  • Поддержка симуляции физики в основном потоке выполнения.

    Данная функция служит для устранения больших задержек расчёта физики в браузерах мобильных устройств. Ранее симуляция физики всегда производилась в отдельных Worker-процессах. Функция управляется параметром инициализации движка physics_use_workers.

  • Добавлена возможность пересчета ограничивающих поверхностей (bounding box).

    В модуле objects добавлен метод update_boundings(), осуществляющий пересчет ограничивающих поверхностей (параллелепипед, сфера, эллипсоид, цилиндр, конус, капсула).

  • Улучшения в документации.

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

    Существенно расширена и дополнена документация для разработчиков приложений.

  • Добавлен новый функционал в модуле camera_anim.

    В модуле camera_anim были добавлены методы stop_cam_moving(), stop_cam_rotating().

  • Добавлена проверка бинарной совместимости.

    Теперь проверяется совместимость .bin-файла с .json-файлом и текущей версией движка.

Изменения

  • Изменения в интерфейсе редактора материалов.

    Шейдерные ноды Blend4Web перенесены из Group в новый пункт Blend4Web. Исправлена ошибка, связанная с их дублированием в интерфейсе.

  • Рефакторинг объектов.

    Начат рефакторинг представления объектов Blender’а в движке. Объекты теперь будут более строго типизированными, а также будут избавлены от лишних данных, что в итоге приведет к повышению производительности движка.

  • Изменения API.

    Следующие методы объявлены устаревшими и будут удалены в последующих релизах: get_object_dg_parent() (модуль scenes), get_parent() (модуль constraints). Вместо них теперь следует использовать методы модуля objects: get_parent() и get_dg_parent().

  • Улучшено взаимодействие с сервером нескольких открытых одновременно экземпляров Blender’а.

Исправления

  • В утилите project.py исправлена ошибка компиляции проекта во внешнюю директорию.

  • Устранена ошибка работы локального сервера, возникающая на ОС Windows при наличии поврежденной записи в реестре.

  • Устранена проблема зависания экспорта при наличии поврежденных данных в .blend-файле.

  • Исправлен экспорт метаобъектов. Теперь больше не выводятся сообщения о неуниформном масштабе объекта.

  • Исправлена ошибка режима Auto View в приложении Viewer при наличии пустой категории сцен.

  • Исправлена ошибка рендеринга динамически загруженных материалов, имеющих одинаковое имя.

  • Исправлена ошибка экспорта при наличии в сцене констрейнта Copy Transforms.

  • Исправлена ошибка, возникающая при использовании depth-текстур, в браузере Microsoft Edge.

  • Исправлен баг, связанный с отсутствием отклика при использовании touch-скрина на некоторых устройствах в браузере Microsoft Edge.

Известные проблемы

  • В редакторе логики при зацикливании нод часть соединений подкрашиваются красным цветом. Данный дефект никак не сказывается на работе инструмента и может быть проигнорирован.

v15.07

Новый функционал

  • Реализована поддержка типа прозрачности Alpha Clip для нодового материала.

    Теперь маска прозрачности на материале Alpha Clip может быть задана процедурным образом, используя логику нодовых блоков.

  • Реализован эффект мягких частиц.

    Системы частиц типа Emitter получили новое свойство Soft Particles, находящееся на панели Render. При его включении частицы сглаживают края вблизи непрозрачных объектов. Данный эффект работает только для материалов с прозрачностью типа Alpha Sort, Alpha Blend или Add.

  • Новый препроцессор шейдерных инструкций.

    Новый препроцессор имеет более простую структуру и обладает лучшей производительностью, что приводит к уменьшению общего времени загрузки сцены, особенно при использовании множества различных шейдеров.

  • Существенно улучшена производительность приложения Viewer.

    Устранены проблемы, приводящие к замедлению работы просмотрщика, связанные с обработкой событий в библиотеке jQuery Mobile.

  • Добавлена возможность выбора нулевого уровня для камеры типа HOVER.

    Данный параметр представляет собой Z-координату опорной плоскости, в которой лежит точка вращения камеры.

  • Новый тип множества сенсоров (Sensor Manifold) - CT_CHANGE

    Наряду с типами CT_CONTINOUS, CT_TRIGGER, CT_SHOT и CT_LEVEL появился новый тип множества CT_CHANGE, который предполагает вызов обработчика событий при любом изменении значений сенсоров, составляющих данное множество.

  • Добавлен новый функционал в модуле camera_anim.

    В модуле camera_anim были добавлены методы move_camera_to_point(), rotate_camera(), is_moving() и is_rotating().

  • Реализована поддержка возможности привязки материалов к объектам.

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

  • Реализована возможность обработки внешних запросов для локального сервера разработчика.

    Для включения этого функционала необходимо в настройках аддона проставить свойство Enable external requests.

  • В модуле time был добавлен метод clear_animation().

  • Новые методы API камеры.

    API модуля camera расширено методами get_vertical_limits() и has_vertical_limits() для получения и проверки наличия вертикальных лимитов поворота и перемещения.

  • Улучшения в документации.

    Новый дизайн документации, оптимизированный для всех видов устройств.

    Добавлено описание различий систем координат Blender’а и Blend4Web.

  • Поддержка мультиязычности аддона.

    Это позволит перевести аддон на различные языки. Был осуществлен частичный перевод аддона на русский язык.

Изменения

  • Многочисленные изменения в интерфейсе аддона, нацеленные на повышение удобства использования.

  • Новая опция force_container_ratio при инициализации приложения (в методе init()).

  • Упрощенное включение каустики на воде.

    Каустика на воде теперь подключается с помощью флага Caustics на панели материала Water. Текстуры типа Voronoi, использовавшиеся для этого ранее, не поддерживаются.

  • Новый способ расчёта сенсоров, связанных с движением мыши.

    Теперь любые элементы, входящие в контейнер элемента Canvas (например якори), не блокируют обработку событий мыши, что позволяет избежать задержек при движении камеры.

  • Добавлена возможность изменения качества отражений.

    Теперь при использовании отражений имеется возможность выбрать одну из трех степеней качества: LOW, MEDIUM или HIGH.

  • В утилиту project.py добавлены новые свойства --project и --app.

  • Новые API анимации.

    Добавлены функции set_first_frame()/set_last_frame(), упрощающие выставление текущего кадра на начало и конец анимации.

  • Изменено поведение плоских отражений.

    Теперь в случае, когда в поле Reflection Plane не указана нормаль к плоскости отражения, больше не возникает ошибка экспорта. По умолчанию берется локальная ось Z объекта.

  • Изменено поведение SSAO.

    Теперь для использования эффекта постобработки SSAO объекту больше не надо быть генератором тени. Достаточно ее принимать.

  • Изменения настроек параметров анизотропной фильтрации текстуры.

    Теперь в настройках анизотропной фильтрации текстуры присутствует значение Default. Выбор этого значения приводит к использованию настроек анизотропной фильтрации со сцены. Для отключения анизотропной фильтрации текстур следует отключить анизотропную фильтрацию для сцены.

  • Поведение прозрачности для спекулярной модели шейдинга соответствует Blender’у.

  • Размер маски и группы, назначаемых на материалах, участвующих в расчёте физики, увеличен с 8 до 16.

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

  • Удаление модуля shaders.

    Функции этого модуля теперь доступны из модуля debug.

  • Cкрипт упрощенной пакетной обработки экспортированных json и html файлов.

    Скрипты reexporter.py и resaver.py были объеденины в один скрипт process_blend.py, который может вызываться с соответствующими флагами для обработки json и html файлов.

  • Мелкие улучшения и исправления в документации разрабочика.

Исправления

  • Исправлена ошибка неправильных размеров элемента Canvas на начальном этапе загрузки.

  • Исправлен баг освещения, когда у объекта выставлен отрицательный Scale.

    Добавлена обработка этой ситуации с выводом сообщения в консоль.

  • Исправлена ошибка применения вертексной анимации к объекту.

  • Исправлена ошибка анимации при её обратном воспроизведении.

  • Исправлена ошибка с некорректным состоянием сенсоров типа Collision и Ray после удаления объектов со сцены.

  • Корректная обработка Environment текстур имеющих размер, превышающий максимально поддерживаемый на данной конфигурации.

    Теперь подобные текстуры не отключаются, а отрисовываются со сниженным разрешением. Для видеокарт серии NVIDIA GeForce 8000 на Windows Chrome искусственно снижается разрешение.

  • Динамически загруженные сцены больше не выдают сообщения об отсутствующей камере или мире.

  • Исправлена ошибка аддона при старте, проявлявшаяся при отсутствии мира на сцене.

  • Исправлен баг в приложении Webplayer, когда была недоступна кнопка включения/отключения звука на некоторых сценах.

  • Исправлен баг, возникающий при использовании motion blur, без использования других эффектов постобработки.

  • Исправлена работа метода get_material_extended_params() модуля material.

  • Исправлено падение Firefox Mobile при использовании теней, улучшена стабильность работы браузера.

  • Улучшена стабильность реэкспортера.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Версии Google Chrome 43.x под Android имеют баг с рендерингом видео-текстур.

    Баг уже исправлен в бета-версии и должен исчезнуть с будущими обновлениями браузера.

  • Проблемы с использованием источников звука типа Background Music при экспорте в HTML.

    В настоящее время в браузере Google Chrome имеется баг (Issue 511251), при котором возникает ошибка с источником аудиофайла. Во избежание проблем с воспроизведением аудиозаписи, при использовании этого браузера на аудиофайл навешивается атрибут crossOrigin.

  • Изменение фильтрации текстур на некоторых устройствах.

    При использовании iPad или браузера Internet Explorer отключена некорректная фильтрация текстур, которые используются материалами с типом прозрачности Alpha Clip.

v15.06

Новый функционал

  • Новый интерфейс аддона.

    Интерфейс аддона был полностью переработан, для чего был создан специализированный профиль Blend4Web, при переключении в который все панели содержат только те опции, которые поддерживаются движком. Кроме того, на смену многострочным панелям Blend4Web пришли небольшие тематические разделы, в которых значительно проще ориентироваться.

    Кроме того, реализована возможность автоматически определять необходимость включения эффектов, настраиваемых на сцене. В частности, тени, эффекты преломления, эффекты свечения Glow и Outline в настройках рендера имеют опцию AUTO, позволяющую автоматически активировать их при наличии на сцене соответствующих объектов и материалов.

  • Новый редактор нормалей.

    Редактор нормалей был полностью переработан. Теперь он совместим с нативным хранилищем редактируемых нормалей Blender. Редактор имеет более удобный интерфейс пользователя, а также позволяет редактировать раздельные (split) нормали.

  • Поддержка новых нод.

    Были поддержаны недостающие выходы ноды Geometry: Orco и Local. Начата работа по поддержке нод RGB Curves, Vector Curves, ColorRamp, а также всех нод движка Cycles.

  • Поддержка новых моделей шейдинга.

    Были поддержаны модели Minnaert и Toon для диффузного шейдинга и Blinn для спекулярного. Таким образом, начиная с этого релиза движком поддерживаются все без исключения модели шейдинга Blender.

  • Поддержка Blender 2.75.

  • Улучшения в физической подсистеме.

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

    В системе трассировки лучей расширены возможности API, в частности, возможно указание опции автоматической очистки связанного в трассировкой объекта (теста), а также функция трассировки через несколько объектов, расположенных один за другим. Как и в случае с API для определения столкновений, теперь возможно определить позицию и нормаль точки контакта. Сама трассировка лучей может производится от точки до точки в глобальном пространстве, без участия вспомогательных объектов-источников.

    Расширены возможности физических сенсоров Collision и Ray.

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

  • Инструмент для автоматического переэкспорта множества сцен.

    В аддон добавлен инструмент Mass Reexporter, позволяющий осуществить автоматический переэкспорт сцен из указанного списка директорий.

  • Возможность автоматической проверки обновлений.

    Автоматическая проверка новой версии Blend4Web будет осуществляться при включенном флажке Check for Updates on Startup в настройках аддона.

  • API для управления параметрами эффекта постобработки Motion Blur.

    В модуле scenes.js были добавлены функции get_mb_params() и set_mb_params() для управления эффектом Motion Blur.

  • Поддержка Timeline-маркеров.

    В модуль scenes.js была добавлена функция marker_frame(), которая возвращает значение кадра в маркере, расположенном на шкале времени Blender.

  • Добавлен новый функционал в модуле nla.js.

    В модуле nla.js были добавлены функции set_range(), reset_range(), set_cyclic() и clear_callback(). Так же появилась возможность передать callback в функцию play().

  • Появилось API для изменения разрешения Canvas’a.

    Для изменения разрешения элемента Canvas достаточно вызвать функцию set() из модуля config.js, в которую необходимо передать параметры canvas_resolution_factor и value, где value - новое значения фактора разрешения Canvas’a. Данный функционал удобно использовать, когда требуется повышенное разрешение скриншота.

  • Поддержка опции Vertex Groups -> Length для системы частиц типа Hair.

  • Новый формат документации разработчика.

    Разработана новая система формальных типов данных, используемых в целях документирования. Например, если раньше трёхмерный вектор имел в документации тип Float32Array, теперь он имеет формальный тип Vec3, унаследованный от Float32Array. Данное нововведение позволяет более точно описывать используемые в движке типы, что позволяет создавать более надёжный и качественный код приложений.

  • Новые API для работы с цветом.

    Для работы с цветом реализованы два новых модуля: rgb и rgba. Они содержат API для создания и конвертации цветов из различных цветовых профилей.

  • Автоматическое определение пути к SDK в аддоне.

    Путь к SDK автоматически заполняется если аддон подключен из директории SDK blender_scripts.

  • API для корректного расчета 2D-координат над Canvas’ом.

    При работе с позицией курсора или точкой касания на touch-устройстве движку требуются корректно рассчитанные координаты над Canvas-элементом.

    Тонкости расчета и случаи, когда их необходимо учесть, описаны в соответствующем разделе документации.

    В связи с этим в модуле container.js добавлены методы client_to_canvas_coords(), set_canvas_offsets(), update_canvas_offsets() и force_offsets_updating(). Также добавлена настройка конфигурации приложения track_container_position.

  • API для изменения плавности движения камеры.

    В аддоне mouse.js добавлены методы set_plock_smooth_factor() и get_plock_smooth_factor(), позволяющие управлять плавностью движения камеры при использовании режима Pointer Lock. При отсутствии этого режима можно воспользоваться аналогичными методами set_camera_smooth_factor() и get_camera_smooth_factor() аддона app.js.

  • Поддержка иконки favicon в просмотрщике Webplayer.

Изменения

  • Новый формат API для определения столкновений и трассировки лучей.

    Функции append_collision_test() и append_ray_test(), а также create_collision_sensor() и create_ray_sensor() имеют новый формат вызова, несовместимый с предыдущими версиями движка. Разработчикам настоятельно рекомендуется ознакомится с новыми API и внести соответствующие правки в приложения.

  • Изменения рендеринга сцен в текстуру.

    Теперь доступен циклический рендеринг сцен в текстуру, например, когда две сцены рендерят друг друга. Основным условием является то, что имеется хотя бы одна основная сцена, которую никто не рендерит.

  • Отключение опции Apply Default Animation при наличии нелинейной анимации у объекта.

    В случае использования объектом нелинейной анимации, на объекте отключается опция Apply Default Animation, которая приводила к конфликту с другими типами анимации.

  • Изменение поведения лампы типа Hemi.

    В случае использования лампы типа Hemi, для объектов будет использоваться шейдинговая модель Lambert, что соответствует поведению Blender.

  • Поддержка экспорта в HTML-формат для видеотекстур в Firefox.

    Поскольку в Firefox, начиная с 38.0 версии, устранена ошибка, связанная с видеофайлами, записанными в base64, видеотекстуры больше не будут отключаться при экспорте в HTML.

  • Использование UV-слоев в движке приближено к поведению Blender.

    При отсутствии явно указанных UV-слоёв в нодовом материале, они определяются автоматически, в соответствии с поведением Blender.

  • Улучшена стабильность видеотекстуры при HTML-экспорте.

  • Оптимизация рендеринга теней при использовании CSM-схемы.

  • Оптимизация этапа рендеринга глубины в шейдерном конвейере.

  • Оптимизация рендеринга billboard-объектов.

  • Параметр конфигурации приложения resolution_factor переименован в render_resolution_factor.

  • Улучшена поддержка объекта-эмиттера системы частиц, имеющего несколько материалов.

    Распределение частиц по мешу эмиттера, а также наследование вертексного цвета теперь всегда происходит с учетом каждого материала и соответствующей ему части меша.

  • Изменено наследование свойства Wind Bending на системе частиц.

    При выставлении данного свойства в положение Instance у объекта-эмиттера теперь не отключается собственный “Wind Bending”.

  • Обновление сообщений об ошибках несовместимости версий аддона и движка.

    Описание ошибок в документации.

  • Удалены API sensor locks.

    Из модуля controls.js удалены неиспользуемые API, связанные с блокировкий сенсоров: sensor locks.

  • Поддержка поведения Blender’a для нодового материала при отсутствии ноды Output.

Исправления

  • Исправлена работа аддона screenshooter.js.

    Была исправлена ошибка, приводящая к невозможности сделать скриншот.

  • Исправлена работа функции set_frame() из модуля nla.js.

    Была исправлена погрешность выставления кадров функцией set_frame().

  • Улучшена стабильность экспортера.

  • Исправлена ошибка удаления/обновления аддона на Windows.

    Переработана система загрузки бинарной библиотеки.

  • Исправлен ошибка освещения от источников типа SPOT/POINT.

  • Исправлено некорректное определение экранных координат методами get_coords_x() и get_coords_y() аддона mouse.js.

  • Исправлен расчет alpha-канала у эффекта Outline.

  • Исправлена ошибка эффекта Wind Bending.

  • Исправлена ошибка системы частиц, при которой не учитывался Scale самой частицы.

  • Исправлена ошибка, связанная с нарушением синхронизации анимации системы частиц типа EMITTER.

  • Исправлен баг наложения теней на billboard-объекты.

  • Исправлен некорректный экспорт настроек Override Mesh Boundings.

  • Исправлен баг рендеринга billboard-объектов на iPad.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Драйверы NVIDIA версии 331 в Linux могут приводить к программным ошибкам WebGL.

  • Версии Google Chrome 43.x под Android имеют баг с рендерингом видео-текстур.

    Баг уже исправлен в бета-версии и должен исчезнуть с будущими обновлениями браузера.

v15.05

Новый функционал

  • Эффект свечения (Glow).

    Реализован эффект возникновения ореола вокруг светящихся объектов, возникающий вследствие рассеивания света в атмосфере и внутри человеческого глаза.

  • Автоматический запуск локального сервера разработки.

    В настройках аддона появилась опция, включающая автоматический запуск локального сервера разработки при старте программы Blender. Фунционал позволяет запускать разрабатываемые веб-приложения в браузере без проведения какой-либо подготовительной работы.

  • Кубические отражения

    Помимо плоских отражений теперь возможно настроить также и кубические отражения. Для этого в настройках объекта при включенном свойстве Reflective появилась опция Reflection Type, где можно выбрать тип отражений Cube.

  • Поддержка опций нелинейной анимации.

    Добавлена поддержка имеющегося в Blender инструментария для манипулирования полосами NLA: Scale (масштабирование), Muted (сделать неактивной), Reversed (проигрывать в обратном направлении) и Repeat (повторять). Данные опции позволяют существенно расширить инструментарий разработчиков интерактивных сцен.

    Кроме того, для управления нелинейной анимацией через API был создан новый модуль nla.js. В него входят такие методы как play(), stop(), get_frame(), set_frame(), позволяющие проигрывать и останавливать нелинейную анимацию, а также получать и выставлять текущий кадр. Новые методы были задействованы в приложении Viewer для реализации интерфейса панели управления NLA.

  • Расширение возможностей отображения текстур неба.

    Добавлена поддержка параметров вкладки Influence для настройки отображения текстуры неба. К таким параметрам относятся: Blend, Horizon, Zenith Up, Zenith Down, Blend, Negative, RGB to Intensity, DVar.

  • Добавлена обработка соединений входов с выходами разного типа в нодовом материале.

    Теперь в нодовых материалах разрешено соединять входы одного типа с выходами другого типа в виде некритической ошибки экспорта. В движке для данного случая реализовано поведение аналогичное Blender Internal Render.

  • Добавлена поддержка опций на панели Rotation для системы частиц типа Hair.

    Теперь положение частиц, заданное в Blender, полностью воспроизводится движком. В частности, теперь поддерживаются не только позиционирование и масштабирование, но и поворот частиц.

  • Добавлены примеры для демонстрации возможностей постпроцессинговых эффектов.

    Примеры подготовлены для следующих эффектов: Bloom, Depth of Field, God Rays, Motion Blur и SSAO.

  • Добавлен новый модуль container.js.

    С помощью методов модуля container.js можно добавлять DOM-элементы дерева на определенную глубину относительно canvas элемента. Для этого используется метод insert_to_container(). Реализованный метод позволил полностью отказаться от использования CSS-свойства z-index, поскольку глубина расположения элементов теперь определяется исключительно их позицией в контейнерном элементе.

  • Улучшения в физическом движке.

    Добавлена поддержка свойства Margin для физических объектов и материалов. Данная настройка позволяет улучшить стабильность симуляций столкновений объектов. Физический движок Bullet обновлен до версии 2.83.

  • API для изменения режима управления камерой.

    Добавлены методы изменения режима управления камерой. Смену режимов управления демонстрирует пример “Camera Move Styles” в приложении Code Snippets. Также в модуль camera.js добавлен метод set_hover_pivot(), позволяющий перемещать опорную точку для камеры типа HOVER.

Изменения

  • Переработан список сцен из состава SDK.

    Все сцены в приложении Viewer были рассортированы по группам: App - готовые приложения, Demos - демонстрационные сцены-примеры, Tutorial Exports - исходные файлы уроков.

  • Добавлена подсветка синтаксиса в приложение Code Snippets.

    Помимо появления подсветки синтаксиса, немного изменился дизайн самого приложения Code Snippets, а также улучшена его работа на экранах с низким разрешением.

  • Изменено управление видео и canvas-текстурами через API.

    В методах управления этими текстурами появился параметр data_id, соответствующий номеру динамически загружаемой сцены.

  • Изменилось поведение при превышении максимального числа анимационных костей.

    Теперь при превышении максимального числа костей скелетная анимация отключается. Ранее это приводило к ошибке компиляции шейдера и нарушению работы приложения.

  • Некоторые свойства систем частиц были переименованы и теперь отключены по умолчанию.

    В частности, по умолчанию теперь отключены свойства Randomize Location And Size и Randomize Initial Rotation для систем частиц типа Hair.

  • В некоторых браузерах отключен эффект Допплера для источников звука.

    Поддержка эффекта Допплера в Web Audio объявлена устаревшей и будет удалена в браузере Chrome начиная с версии 45. В остальных браузерах данный функционал по-прежнему доступен.

  • Изменено поведение объектов при наличии одновременно скелетной и вертексной анимации.

    При наличии у объекта арматурного модификатора и вертексной анимации одновременно, арматурный модификатор экспортироваться не будет.

  • Оптимизирован рендеринг систем частиц c процедурной анимацией (эффект Wind Bending).

  • Улучшена обработка ошибки загрузки главного json- и bin-файлов сцены.

  • 32-разрядный addon для Windows собран без использования кросскомпиляции на нативной системе.

    Данное нововведение улучшает совместимость аддона с указанными системами.

Исправления

  • Исправлена ошибка, приводящая к установке неправильной высоты элемента с описанием в модуле “anchors.js”.

  • Поддержка работы в Epiphany и других браузерах, работающих на движке WebKit.

    Обеспечена посредством исправления блоков кода, по-разному обрабатывающихся различными движками JavaScript.

  • Отключено использование жестов для touch-устройств на базе Microsoft Windows при использовании Internet Explorer 11.

    Раньше использование жестов (Windows Touch Gestures) в данной конфигурации приводило к нежелательному масштабированию и перемещению HTML-элементов. Ожидается, что корректная работа жестов будет обеспечена в будущих версиях браузера.

  • Исправлена ошибка запекания вертексной анимации при наличии анимационного скелета.

  • Исправлена ошибка рендеринга billboard-объектов на iPad.

  • Исправлена NLA анимация нодовых материалов, используемая на нескольких объектах.

  • Исправлен баг эффекта Motion Blur.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

v15.04

Новый функционал

  • Добавлена поддержка ключей деформации (Shape Keys).

    Была осуществлена поддержка ключей деформации (Shape Keys) в Blender’e. Для применения ключей в модуль geometry.js была добавлена функция set_shape_key_value. Пример использования данного функционала доступен в приложении Code Snippets.

  • Добавлена поддержка фона с использованием Horizon Color и Zenith Color.

    Теперь поддерживается настройка фона сцены с использованием Horizon Color и Zenith Color, а также флагов Paper Sky, Blend Sky и Real Sky.

  • Добавлена поддержка ноды Gamma.

    Силами команды Blend4Web в Blender v2.74 была добавлена поддержка ноды Gamma. Теперь эта нода также доступна и в движке.

  • Улучшения в инструменте для создания подписей Anchors.

    В настройках в Blender добавлена возможность ограничивать размеры подписей. Реализована поддержка динамической загрузки/выгрузки подписей. Добавлена возможность сокрытия подписей с помощью штатных методов show()/hide() или в инструменте NLA Script.

  • Оптимизация шейдеров.

    Улучшение шейдерного компилятора. Добавлен следующий функционал: оптимизация локальных переменных, удаление избыточных фигурных скобок. Улучшение производительности нодовых материалов.

  • Оптимизации физического движка uranium.js.

    Модуль с физическим движком загружается только в тех случаях, когда это необходимо. Размер модуля сокращён на 20%.

  • Расширены инструменты для отладки физики.

    Добавлен метод physics_stat() модуля debug для вывода статистики о количестве физических объектов (по типам), сложности геометрии и прочей информации. Для визуальной оценки производительности физической симуляции добавлена возможность вывода числа итераций: Physics FPS (активируется в модуле config).

  • Новый API для присоединения объектов к камере независимо от соотношений сторон и углов обзора камеры.

    Реализуется с помощью метода append_stiff_viewport() модуля constraints.

  • Новый модуль для применения трансформаций “tsr.js”.

    Позволяет применять произвольные трансформации к объектам с помощью универсальных векторов TSR, включающих в себя перемещение, масштабирование и поворот. Данные векторы могут быть использованы в качестве более удобной и эффективной замены матриц.

  • Добавлена возможность игнорирования директорий для конвертера ресурсов.

    Была добавлена возможность игнорирования директорий для конвертера ресурсов. Для этого надо разместить в этой директории файл с именем .b4w_no_conv.

Изменения

  • Изменен внешний вид документации API движка. Появились ссылки для быстрого перехода к описаниям методов и свойств.

  • Скелетная анимация учитывает взаимное расположение арматуры и объекта.

    Теперь поддерживается родное поведение Blender. Больше нет необходимости размещать арматуру и анимируемый объект в одной точке и с одинаковым поворотом и масштабом.

  • Объектная анимация теперь позволяет анимировать независимо перемещение, поворот и масштаб.

    В объектной анимации теперь нет жесткой простановки ключей на все каналы, что позволяет сохранять изначальные значения в незатронутых каналах или изменять их через API.

  • Опциональная поддержка фона.

    Активация фона или неба регулируется опцией Sky Settings > Render Sky на вкладке World. По умолчанию отключено.

  • Физический движок Uranium теперь состоит из двух модулей.

    Для работы физики теперь требуется два модуля: код движка uranium.js и файл инициализации памяти uranium.js.mem. Оба модуля должны находится в одной директории.

  • Эффект Glow и все связанные с ним компоненты движка были переименованы в Outline.

    Новое имя более ясно описывает суть эффекта: подсвечивание объекта на его границах.

  • Применение ограничителя движения при помощи функции “append_semi_stiff_cam” модуля “constraints.js” теперь разрешено только для камер типа “EYE”.

  • Добавлена возможность запуска локального сервера разработки непосредственно из Blender.

    В качестве локального сервера теперь вместо стандартного SimpleHTTPServer на Python используется Tornado Web Server. Новый сервер имеет высокую производительность, а также содержит расширенные настройки для отключения кеширования браузерами.

  • Добавлено управление слайдерами с помощью клавиатуры в приложении Viewer.

    Теперь управление слайдером осуществляется при помощи клавиш < и >.

  • Изменения в методе “update_object_animation” модуля “animation.js”.

    Добавлен необязательный параметр “force_update”, заставляющий обновлять состояние анимированного объекта даже при остановленной анимации.

  • Изменения API модуля mouse.js.

    Добавлены методы: enable_mouse_hover_outline, disable_mouse_hover_outline.

    Следующие методы объявлены устаревшими и будут удалены в последующих релизах: enable_mouse_hover_glow, disable_mouse_hover_glow.

  • Изменения API модуля scenes.js.

    Добавлены методы: outlining_is_enabled, set_outline_intensity, get_outline_intensity, apply_outline_anim, apply_outline_anim_def, clear_outline_anim, set_outline_color, get_outline_color.

    Следующие методы объявлены устаревшими и будут удалены в последующих релизах: set_glow_intensity, get_glow_intensity, apply_glow_anim, apply_glow_anim_def, clear_glow_anim, set_glow_color, get_glow_color.

  • В панели Object > Blend4Web изменены настройки.

    Добавлен флаг Enable Outline, который устанавливает возможность использования эффекта подсветки контура на данном объекте. Так же добавлен флаг Ouline on Select, устанавливающий активацию анимации подсветки при выделении объекта (раньше данное поведение определялось флагом Selectable).

  • В панель Scene > Blend4Web добавлены новые настройки.

    Добавлено поле Enable Object Outlining, которое управляет возможностью подсветки контура объектов. Аналогично, новое поле Enable Object Selectable управляет возможностью выделения объектов.

  • Теперь свойства объекта Apply Scale, Apply Modifiers, Export Vertex Animation, Export Edited Normals и Export Shape Keys взаимно исключают друг друга.

  • Изменение API модулей.

    В API модуля util.js добавился метод is_armature, позволяющий проверить, является ли данный объект объектом типа ARMATURE.

    В API модуля constraints.js добавился метод get_parent, возвращающий для данного объекта родительский объект.

Исправления

  • Исправлена ошибка, приводящая к исчезновению описания объекта в модуле “anchors.js”.

  • Исправлена ошибка запекателя скелетной анимации при наличии арматурных объектов на скрытых слоях.

  • Исправлено поведение камеры при использовании функции “append_semi_stiff_cam” модуля “constraints.js”.

    Исправлено вертикальное выравнивание камеры относительно родительского объекта. Также теперь учитывается начальная ориентация камеры, что может потребовать корректировки лимитов вращения, передаваемых в эту функцию.

  • Исправлена ошибка обновления плейлиста, если он оказывался пустым.

  • Исправлено некорректное поведение физических объектов при удалении хотя бы одного из них со сцены.

  • Исправлен баг при наличии нулевого масштабирования у объекта, размноженного через DupliGroup.

  • Исправлена ошибка компиляции шейдера воды на Windows и некоторых мобильных устройствах.

  • Исправлена ошибка при наличии дублированных ключей анимации.

  • В анимации NLA теперь можно использовать акторы из разных файлов, имеющие одинаковое имя.

  • Устранено размножение обработчиков перемещения мыши при многократном вызове “pointerlock”.

  • Исправлен тип прозрачности “Alpha Sort” для динамических объектов.

  • Исправлена ошибка сборки аддона, приводящая к неработоспособности на системах Windows без установленного C++ 2010 runtime.

  • Исправлен баг рендеринга billboard-объектов на iPad.

v15.03

Новый функционал

  • Инструмент для создания подписей к трёхмерным объектам.

    Теперь имеется возможность создавать подписи к трёхмерным объектам (“якори”). Данные якори могут быть трёх различных типов: Аннотации (Annotation) - используется информация из мета-тегов, назначенных на объектах, Элементы (Custom Element) - в качестве якоря можно назначить произвольный HTML-элемент с текущей веб-страницы и Общий (Generic) - якорь, положение которого можно определить с помощью API модуля anchors.

  • Анимация и возможность управления через API значениями нод типа Value и RGB.

    Теперь помимо анимации нод типа Value возможна анимация нод RGB. Так же в модуле objects.js появились соответствующие функции для изменения значений таких нод.

  • Новое приложение “Code Snippets”.

    Это приложение было создано для более быстрого и легкого просмотра уроков по функционалу движка. В нем также можно ознакомиться со скриптами, составляющими основу логики работы приведенных уроков. Приложение доступно из файла index.html, находящегося в корне Blend4Web SDK.

  • Новые функции управления эффектом Glow.

    В модуль scenes были добавлены новые API: get_glow_intensity() и get_glow_color().

  • Улучшения в просмотрщике сцен Viewer.

    Изменён дизайн кнопки перехода на “домашнюю” сцену, добавлена кнопка “All objects selectable”, позволяющая отключить автоматическое назначение свойства “Selectable” для всех объектов на сцене. Также в просмотрщике теперь можно увидеть суммарное количество шейдеров, выполняющихся на загруженной сцене.

  • Динамическое копирование объектов сцены.

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

  • Обработка ошибок, связанных со специальной нодой B4W_PARALLAX.

    Добавлена обработка некорректного использования ноды B4W_PARALLAX в виде некритической ошибки экспорта.

  • Новые опции в сборщике приложений.

    В сборщике приложений появились новые опции -j и -c, которые позволяют добавлять в исключения, соответственно, скрипты и стили, не требующие компиляции.

  • Экспериментальный Blend4Web рендер движок.

    Включается в настройках аддона: флаг “Register Blend4Web render engine (Experimental)”. Предназначен для упрощения редактирования свойств объектов. Упрощает интерфейс, отключив неподдерживаемые аддоном панели. В данный момент в режиме Blend4Web рендера отсутствует возможность редактирования шейдерного нодового дерева.

Изменения

  • Изменение точки отсчета лимитов перемещения камеры.

    Выставление лимитов перемещения камеры через API теперь полностью соответствует отсчету значений в системе координат движка. Выставление в Blender’е горизонтальных лимитов для камеры типа TARGET в пространстве координат World Space изменилось, поэтому может потребовать перенастройки для старых сцен.

  • Обновление документации по настройкам камеры.

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

  • Изменения API модуля camera.js.

    API модуля camera.js претерпело ряд изменений.

    Добавились новые методы: is_target_camera, is_eye_camera, is_hover_camera, rotate_camera, rotate_target_camera, rotate_eye_camera, rotate_hover_camera, get_camera_angles, hover_cam_set_translation.

    Объявлены устаревшими и будут удалены в последующих релизах: rotate_pivot, rotate_hover_cam, rotate, set_eye_params, get_angles, translate_hover_cam_v, set_hover_cam_angle.

    Методы set_ortho_scale и get_ortho_scale при применении их к камере отличного от Orthographic типа теперь выводят сообщение об ошибке. Также изменено поведение метода get_hover_angle_limits, который теперь возвращает угловые лимиты для HOVER камеры в формате [down, up] вместо [up, down] как было раньше.

  • Значительно оптимизирована система освещения.

    Многие свойства источников света теперь обрабатываются на этапе компиляции. Теперь нет ограничения в 4 источника для некоторых мобильных устройств.

  • Изменён способ вёрстки приложений, использующих модуль app.

    При инициализации приложения с использованием модуля app размеры создаваемого элемента <canvas> теперь полностью определяются размерами элемента-контейнера. Это нужно иметь в виду, например, в случае использования элемента <div> в качестве контейнера, поскольку по умолчанию его высота равна нулю. Задать правильные размеры контейнера можно с использованием CSS, например с помощью inline-стиля. Также, при любых преобразованиях контейнера теперь необходимо вызывать функцию модуля app resize_to_container(). Аналогичного эффекта можно добиться, если задать опцию autoresize при инициализации приложения (в функции app.init()). Поддержка низкоуровневого метода изменения размеров элемента <canvas> с использованием функции main.resize() сохранена.

  • Функция модуля app enable_controls() теперь вызывается без параметров.

  • Удалены устаревшие методы API.

    Модуль textures.js: stop_video.

    Модуль scenes.js: add_object, get_screen_scenes, set_light_pos, set_light_direction, set_dir_light_color, get_lights_names, remove_all, check_collision, check_ray_hit, get_appended_objs, get_object_by_empty_name.

    Модуль physics.js: set_character_dist_to_water.

    Модуль material.js: set_batch_param, set_max_bones, max_bones.

    Модуль main.js: set_shaders_dir, set_texture_quality.

    Модуль data.js: get_bpy_world.

    Модуль controls.js: sensor_make_positive, sensor_make_negative.

    Модуль camera.js: change_eye_target_dist (также удалена устаревшая константа MS_CONTROLS).

  • Новые условия для изменения положения объектов через API.

    Функции модуля transform.js, связанные с изменением положения объекта, доступны только для динамических объектов.

  • Разрешено использование ноды типа TEXTURE с отсутствующей текстурой.

    Отображение нодового материала в этом случае целиком соответствует Blender’у.

  • Обновление механизма проверки совместимости версий экспортированных файлов и движка.

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

  • Свойство объекта “Do not batch” переименовано в “Force Dynamic Object”

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

Исправления

  • Исправлена ошибка автоповорота камеры в веб-плеере.

  • Исправлена ошибка полноэкранного режима в веб-плеере.

  • Исправлена ошибка определения угловых координат камеры в некоторых положениях.

  • Исправлена ошибка автовращения камеры при наличии горизонтальных лимитов, ограничивающих поворот.

  • Исправлена ошибка множественного добавления специальных нод в blend-файл.

  • Исправлена ошибка замены материала на объекте функцией “inherit_material” из модуля “material.js”.

  • Исправлены ошибки при отражении зеркальной поверхностью объекта, имеющего свойства, измененные с использованием модуля “material.js”.

  • Исправлена генерация сферических WIREFRAME-объектов в режиме отладки сцены.

  • Исправлена процедура оптимизации нод типа TEXTURE в нодовом материале.

  • Исправлена работа опции “Clamp” в ноде типа MixRGB(Linear Light).

  • Исправлена ошибка, возникающая при экспорте, если на сцене присутствуют объекты с разделяемым мешем и настройками “Apply Scale”, “Apply Modifiers”, “Export Vertex Animation” или “Export Edited Normals”.

  • Исправлена ошибка при использовании опции “Blend4Web > Preserve global orientation and scale” на ряде мобильных устройств.

  • Исправлена ошибка рендеринга тумана в отдельных версиях Chrome и Firefox под Windows.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Не работают видеотекстуры в Firefox при экспорте сцены в формате HTML.

v15.02

Новый функционал

  • Добавлена возможность запуска локального сервера разработки непосредственно из Blender.

    При использовании Blend4Web SDK имеется возможность запуска локального сервера разработки. Сервер предоставляет быстрый доступ к содержимому Blend4Web SDK, а также позволяет автоматически открывать экспортированные сцены в просмотрщике сцен.

  • Поддержка теней от источников света типа Spot.

    Ранее на лампах Spot тени строились так же, как для ламп типа Sun. Теперь расчет производится аналогично тому, как это делается в Blender, с учетом расхождения лучей света в пространстве.

  • Добавлена/расширена поддержка объектов типа “Metaball”, “Surface” и “Curve”.

    Была добавлена поддержка объектов типа Metaball, Surface и Curve. Объекты этих типов автоматически конвертируются в меши при экспорте. Поддержка использования объектов типа Curve в модификаторах сохранена.

  • В веб-плеер добавлены кнопки социальных сетей.

    Данные кнопки позволяют разместить ссылку на 3D сцену, а также ее описание в одной их четырёх популярных социальных сетей.

  • Добавлена возможность редактирования файла списка сцен для просмотрщика непосредственно в Blender.

    Была добавлена возможность быстрого редактирования файла assets.json для приложения Viewer через Blender, если используется Blend4Web SDK.

  • Добавлена возможность изготовления скриншотов в приложении Viewer.

  • В веб-плеер добавлена опция fallback_video.

    С помощью опции fallback_video=/path/to/video/ можно указывать видео-файл, который будет проигрываться вместо 3D контента на системах без поддержки WebGL.

  • Расширение функционала рендеринга в текстуру.

    Добавлена поддержка рендеринга сцен сразу в несколько текстур. Сцены теперь могут иметь любую степень вложенности.

  • Для билбордов появилась возможность сохранять ориентацию и масштабирование объектов в мировом пространстве.

    Для этого нужно выставить опцию Blend4Web > Preserve global orientation and scale на панели настроек объекта.

  • Улучшения на главной веб-странице SDK.

    Теперь на главной странице можно узнать версию используемого SDK и проверить систему на совместимость с WebGL.

  • Добавлена поддержка флага Clamp в нодах MATH и MIX_RGB.

    Функциональность была реализована сначала в Blender 2.73, и теперь в движке.

  • Улучшено качество рендеринга при отсутствии аппаратной поддержки текстуры глубины.

    Увеличены возможности рендеринга для устройств, не поддерживающих текстуру глубины. Стали доступны эффекты, такие как отражение, свечение, засветка, размытие при движении, сглаживание.

  • Добавлена новая документация.

    Добавлена документация по модулям vec3, vec4, quat, mat3, mat4, а также глобальному пространству имён b4w. Улучшен дизайн веб-страниц документации.

  • Добавлена возможность иметь несколько запущенных копий движка на одной странице.

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

  • Возможность использования SDK в Apple macOS.

    В macOS теперь доступны все функции SDK, включая сборку движка и приложений, конвертацию ресурсов и генерирование документации.

  • В модуль camera добавлен метод set_trans_pivot().

    Данная функция позволяет устанавливать произвольное положение опорной точки и положение камеры типа Target.

  • В утилиту ``project.py`` добавлено новое свойство ``version``.

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

Изменения

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

    В функции get_url_params() модуля app появился необязательный параметр allow_param_array, по умолчание равный false. При назначении этом параметру true одинаковые опции будут объединены в массив, в противном случае будет использоваться последняя.

  • Улучшения работы источников звука типа ``Background Music``.

    Теперь для таких источников поддерживается возможность указания параметров задержки и времени воспроизведения. Также появилась возможность зацикливать их воспроизведение.

  • Специальные ноды аддона Blend4Web теперь присутствуют в blend-файле по умолчанию.

    Теперь нет необходимости добавлять специальные ноды аддона в файл. Это доступно как при использовании Blend4Web SDK, так и при экспресс-установке аддона.

  • Изменен экспорт пустых объектов типа “Mesh”.

    Теперь объекты типа Mesh, не имеющие полигонов, экспортируются как Empty.

  • Изменения модуля “light.js”

    Была добавлена новая функция get_light_type, а также теперь в функции get_light_params и set_light_params передается не имя объекта, а сам объект типа LAMP. Также теперь доступны для изменения через эти функции свойства spot_blend, spot_size, distance для источника света типа SPOT. Для источника света типа POINT теперь доступно для изменения свойство distance.

  • Улучшение рефракции при низких настройках качества.

    При активации профиля качества LOW, теперь используется упрощённая модель рефракции (без искажений).

  • Оптимизация нодовых шейдеров.

  • Теперь режим автоматического вращения камеры отключается при касании сенсорного экрана.

Исправления

  • Исправлено поведение прелоадера для веб-плеера.

    При открытии веб-плеера в новой вкладке могли наблюдаться артефакты на логотипе B4W.

  • Исправлена ошибка рендеринга однокаскадных теней, связанная с возникновением жесткой неосвещенной линии по границе всего каскада.

  • Исправлена ошибка, связанная с коллизией имен при линковке объектов в Blender’e.

  • Исправлена ошибка с недостаточной оптимизацией приложений из состава SDK.

  • Исправлена проблема экспорта мешей с плоским шейдингом (flat shading) в Linux x32.

  • Исправлено некорректное поведение Target камеры в отдельных случаях.

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

  • Исправлена ошибка, приводящая к снижению FPS в Firefox 35/36 под Windows при включении теней.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Не работают видеотекстуры в Firefox при экспорте сцены в формате HTML.

v15.01

Новый функционал

  • Поддержка режима панорамирования для устройств с сенсорным экраном.

    Движение камеры в режиме панорамирования осуществляется параллельным перемещением двух пальцев по поверхности экрана.

  • Поддержка объектов типа “Text”.

    Данные объекты теперь автоматически конвертируются в меш при экспорте.

  • Расширение функционала инструмента NLA Script.

    Добавлены новые логические слоты: Show Object и Hide Object используются для скрытия и отображения объектов, Page Redirect - для перенаправления на другие веб-страницы, Page Param - для сохранения произвольного параметра веб-страницы в выбранном числовом регистре. Упрощено использование слотов Select & Jump и Select & Play - теперь для выделяемых объектов нет необходимости указывать свойство Selectable.

  • Поддержка экранов сверхвысокого разрешения (HIDPI, Retina).

    Режим HIDPI позволяет достичь существенного улучшения качества картинки на устройствах с высоким разрешением. Режим включается автоматически при запуске приложений с настройками качества ULTRA. При необходимости, высокое разрешение может быть включено и для других профилей качества.

  • Поддержка масштабирования для ортографической камеры.

    Добавлено API для изменения масштабирования камеры типа Orthographic (Orthographic scale в Blender’e).

  • В веб-плеер добавлена опция autorotate.

    Опция autorotate используется для автоматического включения вращения камеры сразу после загрузки сцены.

  • В функцию “enable_camera_controls” из аддона “app.js” добавлен облегченный режим управления с клавиатуры.

    Включить режим можно передав необязательный параметр disable_letter_controls. При этом будет отключено управление посредством алфавитно-цифровых клавиш клавиатуры (WASD и т.д.). Указанная функциональность может быть использована для тех случаев, когда в приложении необходимо использовать клавиши для целей, не связанных с перемещением камеры.

  • Поддержка работы с гироскопом на мобильном устройстве.

    Добавлены два сенсора для работы с гироскопом на мобильных устройствах. Первый сенсор позволяет оперировать с разностью текущего положения устройства с предыдущим, создается функцией create_gyro_delta_sensor из модуля “controls.js”. Второй сенсор - с текущим значением угла. Создается функцией create_gyro_angles_sensor из модуля “controls.js”. Стоит отметить, что все значения вычисляются в радианах. Также был создан аддон “gyroscope.js”, в котором реализовано движение камеры при угловых перемещениях устройства. С примером работы данного функционала для мобильных устройств можно ознакомиться в нашей программе “Viewer”, включив опцию “Gyroscope” в меню программы.

  • Добавлено новое свойство ``Do not Render`` в настройках материала.

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

  • Поддержка видеотекстур на IE 11 и iPhone.

    Поддержка добавлена посредством создания простого формата видео-секвенции *.seq. Более полную информацию можно посмотреть в соответствующем разделе документации.

  • Поддержка тега “title” в веб-плеере.

    Тег “title” для веб-плеера, необходимый для вывода названия сцены в браузере, теперь берется из JSON-файла сцены. С более подробной информацией можно ознакомиться в соответствующем разделе документации.

  • Поддержка мета-тегов в Blender.

    В Blender появилась возмосжность добавлять мета-теги к сцене и к объектам. Для сцены это “title” и “description”, для объекта “title”, “description” и “category”.

  • Добавлена возможность вызова пользовательских функций каждый кадр.

    Для возможности создания более сложных приложений в модуле “main.js” была добавлена функция append_loop_cb, позволяющая вызывать переданную в нее функцию каждый кадр. При этом в эту функцию каждый кадр будут передаваться два параметра: время с начала старта приложения и разница во времени между текущим кадром и предыдущим. Обе величины измеряются в секундах. Для того, чтобы больше не вызывать переданную функцию необходимо удалить ее вызовом функции remove_loop_cb из модуля “main.js”.

  • Добавлена анимация простого экрана загрузки приложения.

    Для создания приложения с анимированным экраном загрузки в функцию create_simple_preloader из модуля “preloader.js” необходимо передать опцию “preloader_fadeout” со значением “true”.

  • Добавлена возможность экспорта конвертированных медиаданных в HTML-файл.

    Теперь при экспорте в html имеется возможность записать конвертированные данные в файл. Для этого при экспорте необходимо задать свойство “Export converted media” в опциях экспорта.

  • Добавлена возможность использования min50 и dds текстур при просмотре сцен через webplayer.

    Для этого необходимо передать атрибут “compressed_textures” при запуске приложения.

Изменения

  • Упрощена файловая структура SDK.

    Директория external больше не существует, всё её содержимое перемещено на уровень выше - в кореневую директорию SDK. Файл со списком сцен для просмоторщика assets.json теперь находится в директории apps_dev/viewer.

  • Изменено поведение автовращения камеры (экспериментально).

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

  • Изменено поведение настройки ``Special: Collision`` в настройках материала.

    Ранее включение опции автоматически приводило к сокрытию объектов, теперь для этой цели необходимо использовать настройку материала Do not Render.

  • Изменен суффикс конвертированных медиаданных.

    Суффикс *.lossconv.* заменен на *.altconv.*.

  • Изменена работа опции “Do not render” на объекте.

    Теперь выставление данной опции на объекте не приводит к потере физических свойств объекта. Объект всего лишь становится невидимым.

  • Доработана комплектация SDK.

    В бесплатной и коммерческой версиях SDK были добавлены новые сцены с примерами использования движка; устаревшие и малоинформативные сцены исключены.

Исправления

  • При выставлении в Blender’е камере типа “Panoramic” в движке принудительно используется камера типа “Perspective”.

  • Исправлено дрожание камеры типа “Target” в отдельных случаях.

  • Небольшие исправления в работе аддона “B4W Anim Baker”.

  • Исправлена проблема со звуком на сценах с несколькими камерами.

  • В модуле “controls” улучшена стабильность работы сенсоров типа “Timer”.

  • Устранена ошибка, возникающая при просмотре сцены через IE при экспорте в HTML.

  • Оптимизирована работа видеотекстуры. Теперь не производится обновление видеотекстуры при остановке видео.

  • Исправлена ошибка рендеринга нодового материала, содержащего ноду ``REFRACTION``.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Не работают видеотекстуры в Firefox при экспорте сцены в формате HTML.

  • Текущая реализация depth-текстур в Firefox 35 приводит к значительному снижению FPS и другим неисправностям.

    В различных сценах наблюдается снижение FPS, например, при включении теней. Также некорректно отображаются тени для текстур с использованием прозрачности, например, ALPHA_CLIP. Соответствующая ошибка, возможно, будет исправлена в ближайшее время в будущих обновлениях браузера.

v14.12

Новый функционал

  • Поддержка настройки скоростей камеры.

    Осуществлена поддержка пользовательской настройки скоростей перемещения, вращения, масштабирования камер типа Target, Hover, Eye. Настройка может быть выполнена как в интерфейсе Blender’а, так и посредством API Blend4Web.

  • Поддержка MIP-текстурирования для Canvas-текстур.

    Осуществлена поддержка MIP-текстурирования для Canvas-текстур.

  • Полная поддержка ноды “MAPPING”.

    Осуществлена поддержка всех возможных значений Vector type для ноды MAPPING: Texture, Point, Vector и Normal.

  • Glow-эффект при наведении курсора мыши на объект.

    Для эффекта подсветки объекта под курсором мыши доступно API модуля mouse.js. Управление эффектом осуществляется с помощью функций enable_mouse_hover_glow() и disable_mouse_hover_glow(). При этом на объекте должно быть выставлено свойство Object > Blend4Web > Selectable.

  • Новая система сборки приложений.

    Теперь пользователи имеют возможность вести разработку приложений непосредственно в составе SDK, благодаря новой утилите project.py. Данный скрипт позволяет собирать приложения вместе с движком, минимизировать JavaScript и CSS-файлы, а также экспортировать готовое приложение для последующего развертывания на сервере.

Изменения

  • Удалена поддержка устаревшей опции текстур “UV translation velocity”.

    Вместо неё рекомендуется использовать функционал нодовых материалов.

  • Удалена поддержка устаревшего интерфейса “Levels of Detail”.

    Аналогичный функционал теперь реализуется штатным инструментом Blender “Levels of Detail”.

  • Аддон pointerlock.js переименован в mouse.js.

  • Добавлено срабатывание события mouseup при покидании курсора мыши вьюпорта приложения.

    Таким образом была исправлена наблюдавшаяся ранее проблема с нарушением контроля камеры.

  • Сообщение об ошибке “Clear parent inverse” более не появляется.

    Ранее при использовании отношения родитель-потомок требовалось сбрасывать перемещение, вращение и масштаб объекта-потомка (Object > Parent > Clear Parent Inverse). Указанная трансформация теперь поддерживается движком.

  • Использование “Apply scale” теперь не приводит к применению модификаторов.

    Для применения модификаторов по-прежнему следует использовать флаг Apply modifiers.

  • Использование карты нормалей в нодовом материале больше не требует наличия нод Material или Extended Material.

    В некоторых случаях (например, рефракция) карты нормалей могут применяться в материалах без освещения.

Исправления

  • Исправлена ошибка воспроизведения звуков через инструмент NLA.

    Ошибка проявлялась вследствие недостаточной точности чисел с плавающей запятой.

  • Исправлен некорректный рендеринг источников света на мобильных устройствах.

  • Исправлено наложение тени при нескольких активных источниках освещения.

    Теперь тень накладывается так же как в Blender, не затеняя те участки, куда попадает свет от других источников.

  • Исправлена ошибка отображения нодовых материалов.

    Ошибка возникала при использовании нод MATERIAL и MATERIAL_EXT с добавленным по ссылке (из другого .blend-файла) материалом.

  • Исправлен сброс позы арматуры при использовании “B4W Animation Bake”.

    Теперь при использовании инструмента запекания анимации арматурный объект остаётся в позе, в которой он находился до запекания.

  • Исправлено резкое движение камеры после старта приложения.

  • Исправлена ошибка, связанная с неверным определением лимитов горизонтального вращения камеры.

  • Исправлена ошибка, связанная с экспортом неиспользуемых текстур.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Не работают видеотекстуры в Firefox при экспорте сцены в формате HTML.

v14.11

Новый функционал

  • Поддержка видео-текстур.

    Осуществлена поддержка видео-текстур для текстур типа Image or Movie.

  • Частота кадров.

    Добавлена поддержка изменения частоты кадров для анимации и видеотекстур. Частоту кадров можно задать опцией Scene > Dimensions > Frame rate.

  • Поддержка текстур типа Canvas.

    В качестве текстуры используется HTML-элемент Canvas. Работа с ней описана в документации.

  • Camera panning.

    В режиме вращающейся вокруг точки камеры (Target) теперь имеется возможность перемещения точки вращения в плоскости обзора (т.н. панорамирование) при зажатой правой или средней кнопках мыши. Функция включена по умолчанию и при необходимости выключается в настройках в Blender’е.

  • Новый режим управления камерой - Hover.

    Реализован режим скольжения камеры над плоскостью (Hover), включающий возможность приближения и удаления. Этот режим камеры позволяет реализовывать сценарии удобного просмотра протяженных в двух измерениях сцен (помещений, игровых уровней).

  • В SDK добавлена корневая веб-страница index.html для упрощения навигации по дистрибутиву.

  • Поддержка преобразования форматов видео-файлов в конвертере ресурсов.

  • Добавлена система сборки, ранее отсутствовавшая в публичных дистрибутивах SDK.

  • Поддержка режима экспорта “Strict mode” в аддоне.

    Активация режима Strict mode позволяет вывести все возможные ошибки и предупреждения, связанные с некорректной настройкой сцены. Опция полезна для финальной отладки сцены с целью получения максимально корректных и оптимизированных ресурсных файлов.

  • Поддержка воспроизведения звуков на устройствах с iOS.

Изменения

  • Опция “bg” веб-плеера переименована в “fallback_image”.

    Также притерпела изменение логика поведения опции. При указании fallback_image информация об отсутствии поддержки WebGL теперь не выводится, вместо неё пользователю демонстрируется изображение.

  • В веб-плеере опция отключения звука теперь не показывается для сцен, не имеющих источников звука.

  • Улучшена стабильность работы стековых материалов.

  • В сенсор “mouse_down” добавлен код нажатой кнопки мыши, который доступен в поле payload сенсора.

  • Значительно оптимизирован экспорт систем частиц типа Hair.

Исправления

  • Карты нормалей теперь работают с типами текстурных координат Generated и Normal.

    При использовании карт нормалей теперь нет необходимости использовать UV-развертку.

  • Исправлена проблема с неверными путями к физическому движку в веб-плеере.

    Ошибка проявлялась при перемещении файла uranium.js из директории с главным HTML-файлом веб-плеера.

  • В аддоне исправлена проблема с упакованными текстурами, проявляющаяся при экспорте при включённой опции “Automatically Pack Into .blend”.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

v14.10

Новый функционал

  • Новый веб-плеер.

    Новый минималистичный дизайн веб-плеера удачно сочетается с любыми трёхмерными сценами, имеет упрощённый интерфейс и встроенную подсказку по управлению. Веб-плеер работает на всём спектре оборудования, включая мобильные устройства.

  • Улучшение системы теней.

    Добавлена возможность выбора некаскадной модели теней на основе одной оптимизированной карты теней. Такая модель проще в настройке и хорошо подходит для небольших сцен. Подробности в документации.

  • Многочисленные улучшения в системе нелинейной анимации (NLA).

    Появилась возможность создания сложной логики в инструменте NLA Script с помощью блоков Conditional Jump, Register Store и Math Operation, а также переменных, сохраняемых в регистрах.

    Возможность использования в NLA всех типов анимации, поддерживаемых движком, включая воспроизведение звуков, вертексную анимацию и эмиссию частиц. Анимацию различных типов теперь возможно проигрывать параллельно.

  • Поддержка биллбординга объектов.

    Объектам добавлены опции, позволяющие настроить биллбординг.

  • Поддержка режима “XYZ Euler” для анимации поворота.

    Объектная и скелетная анимация теперь поддерживают режим XYZ Euler для анимации поворота.

  • Поддержка текстурных координат типа GENERATED.

  • Добавлена поддержка загрузки ресурсов с удаленного сервера (Cross-origin resource sharing).

  • Упрощен процесс экспорта сцен.

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

  • Добавлена поддержка опции “Do not export” для системы частиц.

  • Улучшена стабильность работы приложений на устройствах с мобильной операционной системой Apple iOS.

Изменения

  • В SDK изменился путь для настройки экспорта в HTML.

    В настройках аддона, установленного через SDK, теперь достаточно указывать путь непосредственно к корневой директории SDK. Ранее требовалось указывать путь к приложению embed. Обратите внимание, старое поведение более не поддерживается.

  • Объявлена устаревшей опция текстур “UV translation velocity”.

    Опция будет удалена начиная с версии 14.12.

  • Удалена опция “Do not export” на панели “Object data”.

  • Опция Blend4Web>Animation>Cyclic на вкладке свойств объектов удалена.

    Вместо неё следует использовать опцию Blend4Web > Animation > Behavior, расположенную там же. В сценах, где циклическая анимация назначается по умолчанию, возможно нарушение работы анимации, соответственно в них необходимо установить поведение в Cyclic.

  • Изменена реализация алгоритма SSAO.

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

Исправления

  • Исправлена ошибка рендеринга материала типа HALO.

  • Исправлена ошибка рендеринга объекта при выставлении опции “Force Dynamic Object”, если он имел родительский объект.

  • Исправлена ошибка назначения горячих клавиш на экспорт аддона Blend4Web.

    Устранена ошибка, не позволяющая назначить горячие клавиши на экспорт в форматы JSON и HTML: File->Export->Blend4Web(.json) и File->Export->Blend4Web(.html).

  • Исправлена ошибка загрузки текстур, превышающих допустимый размер для данного устройства.

  • Исправлены ошибки анимации нодовых материалов, приводившие к нестабильной работе движка.

  • Устранена ошибка нодовых материалов, содержащих сложные группы нод (Node Groups).

  • Исправлены ошибки компиляции шейдеров на устройствах с мобильной графикой Qualcomm Adreno 305.

  • Исправлена ошибка рендеринга при использовании ноды REFRACTION на непрозрачных материалах.

  • Исправлен сброс значения текущего кадра анимации после её запечения при помощи инструмента “B4W Vertex Anim Baker”.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Карты нормалей не работают с типом текстурных координат Generated.

    При использовании карт нормалей необходимо использовать UV-развертку.

v14.09

Новый функционал

  • Поддержка типа ABSOLUTE для ноды MATH.

  • Поддержка специализированной ноды LEVELS_OF_QUALITY.

    Позволяет управлять сложностью материала в зависимости от профиля качества, указанного пользователем при загрузке движка.

  • Поддержка специализированной ноды SMOOTHSTEP.

    Упрощает создание некоторых эффектов в нодовом материале.

  • Поддержка нодовых групп.

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

  • Возможность вывода промежуточных результатов рендеринга с целью отладки.

    Результат рендеринга конкретной стадии теперь можно вывести поверх основного изображения. Настройка осуществляется в модуле config.js опциями группы debug_subs.

  • Реализация логики управления NLA-анимацией в Blender с помощью визуального редактора.

    В интерфейс Blender добавлен инструмент NLA Script, который позволяет с помощью визуальных блоков реализовывать простые сценарии, например осуществить управление текущей анимацией в ответ на действия пользователя.

  • Многочисленные улучшения системы сенсоров.

    В модуле controls разрешено регистрировать множества сенсоров глобально, без привязки к конкретному объекту, для чего в соответствующие API необходимо подавать параметр null. Обеспечена более предсказуемая и надёжная обработка логики сенсоров, в соответствии с последовательностью создания их множеств. Обработчики событий, связанных с действиями пользователя теперь назначаются с помощью функций вида register_<inputtype>_events(). В данные функции теперь можно подавать флаг prevent_default, позволяющий заблокировать стандартное поведение браузера, происходящее после возникновения соответствующих событий.

  • Поддержка использования физики в веб-плеере.

    Работает только в версии веб-плеера с раздельной загрузкой JSON-файлов. В одиночных HTML файлах физика не поддерживается.

  • Поддержка смешивания различных скелетных анимаций.

    В модуле animation.js добавились API, позволяющие осуществлять плавные переходы между скелетными анимациями: get_skel_mix_factor() - для получения текущего значения коэффициента смешинвания и set_skel_mix_factor() - для его назначения.

  • Поддержка анимации ноды Value в нодовых материалах.

    Функциональность работает аналогично другим видам анимации. Поддерживается работа в NLA.

  • Поддержка параметров Specular и Diffuse в источниках освещения.

  • Возможность рендеринга полупрозрачного объекта поверх остальных объектов на сцене.

    Активируется с помощью опции Render above all для прозрачных материалов (т.е. не Opaque).

  • Автоматическое применение масштаба к мешу объекта.

    Реализуется включением опции Apply scale в настройках объекта.

  • Поддержка профиля высокого качества (включая тени, динамическое отражение и антиалиасинг) для iOS.

Изменения

  • Улучшение рендеринга теней.

    Существенно изменена система отрисовки теней, которая теперь основывается на технике Stable Cascaded Shadow Maps. Техника позволяет существенно уменьшить мерцание краев теней при движении камеры. Между каскадами реализовано сглаживание. Также тени последнего каскада плавно исчезают при удалении. Для рендеринга мягких теней реализована техника Percentage Closer Shadows. Переработана и упрощена система пользовательских настроек теней. Теперь можно задавать размеры карт теней, степень размытия, настройки для компенсации ошибок самозатенения. Новые настройки подробно документированы.

  • Настройка качества графики в веб-плеере теперь сохраняется для каждой сцены независимо.

  • Изменено поведение настроек конфигурации приложения: physics_uranium_path, smaa_search_texture_path и smaa_area_texture_path.

    Данные настройки конфигурации теперь рассчитываются автоматически в зависимости от местоположения запускаемого HTML-файла, если они не были переопределены при инициализации приложения.

  • Завершён переход на систему модулей, подключаемых через вызов b4w.require().

    Это также означает, что начиная с текущей версии в релиз-версии движка модули нельзя вызывать с помощью устаревшего интерфейса b4w.<module>. С целью совместимости создан аддон ns_compat.js, подключение которого позволяет восстановить старое поведение.

  • Добавлена возможность сокрытия панели управления в веб-плеере.

  • Скелетная анимация применяется только к объекту арматуры.

    Нет необходимости применять скелетную анимацию к объектам типа MESH. Eсли они привязаны к какой-либо анимированной арматуре, скиннинг будет происходить автоматически.

  • Демонстрационные приложения и обучающие материалы приведены в соответствие с новым функционалом.

Исправления

  • Индикатор загрузки не скрывался, если в процессе происходила ошибка загрузки ресурса (текстуры либо звукового файла).

  • Исправлены лаги при масштабировании и повороте на touch-устройствах.

  • Устранено дрожание камеры типа TARGET при небольших поворотах.

  • Исправлено управление камерой типа EYE на мобильных устройствах.

  • Улучшено управление в приложении Ферма в браузере Safari.

  • Исправлены ошибки при использовании неподдерживаемых моделей освещения на нодовых материалах.

  • Для объектов без материалов теперь работает опция “Selectable”.

  • Более нет необходимости включать “Force Dynamic Object” для объектов, анимирующихся с использованием NLA.

  • Исправлена ошибка для систем частиц, в которых дуплицируемый объект входит в иерархию с другими объектами.

Известные проблемы

  • Проблемы с обновлением старых версий аддона.

    Рекомендуется перезагрузка Blender после обновления аддона.

  • Смешивание скелетной анимации не работает в некоторых браузерах.

    Если при использовании API смешивания скелетной анимации возникают необработанные ошибки, следует переопределить стандартную функцию Math.sign следующим образом:

    var m_util  = require("util");
    Math.sign = m_util.sign;