Замечания к релизам¶
v18.05¶
Новые возможности¶
Новая версия Веб-плеера - 3.0 - готова к использованию в ваших проектах.
Новый, современный дизайн с плоским интерфейсом и плавной анимацией.
“Умный” интерфейс самостоятельно добавляет элементы в зависимости от содержания сцены: например, если сцена использует NLA-анимацию, Веб-плеер добавит элемент
Timeline
; на мобильных устройства содержание страницы справки зависит от используемого типа камеры.Мультиязычный интерфейс - на данный момент поддерживаются английская и русская версии.
Дальнейшая поддержка материалов Cycles
В ноде
Principled BSDF
появилась начальная поддержка рефракции. Теперь входыIOR
иTransmission
могут использоваться для настройки прозрачности материала (Transmission
управляет прозрачностью, аIOR
отвечает за интенсивность эффекта рефракции). ПараметрRoughness
контролирует шершавость материала.Добавлена поддержка неоднородного масштабирования по осям координат. Функция
Apply Scale
больше не нужна (в большинстве случаев)!Теперь масштабирование может применяться независимо вдоль каждой оси.
Для дочерних объектов, масштабирование применяется вдоль их локальных осей координат.
Улучшения Менеджера проектов и системы сборки приложений.
Появился тип приложения
Custom Build Type
, позволяющий задать пользовательскую команду сборки. Такая команда может содержать переменные окружающей среды ($NODE
и$NPM
обрабатываются как исполняемые файлыnode
иnpm
, интегрированные в SDK).Добавлен скрипт для генерации extern’ов на основе исходного кода движка с использованием
google closure compiler
. Он может применяться в пользовательских конфигурациях сборки, использующихgoogle closure compiler
(см. скрипты сборки обновлённого веб-плеера).Добавлено поле
Editor Ignore List
, позволяющее удалять файлы из списка файлов проекта, доступного в текстовом редакторе Менеджера проектовТеперь динамическая загрузка данных с помощью метода
m_data.load
поддерживает отраженияПоддерживаются как плоские, так и кубические отражения.
Доступна загрузка как отражающие, так и отражаемых (reflexible) объектов.
Изменения¶
Код движка был серьёзно переписан для поддержки неоднородного масштабирования.
Метод get_quat_view модуля tsr объявлен устаревшим.
Оптимизированы вычисления освещённости для
PBR
-шейдеров.Теперь объекты типа
Empty
могут создаваться динамически.Теперь объекты типа
Empty
могут копироваться динамически.Синхронизация с WebVR API 1.1.
Приложение
AR
перемещено в каталог projects. Для отладки https-соединений, необходимых для работы приложения на мобильных устройства, добавлен webpack.config.js.google closure compiler
удалён из директории tools. Вместо него используется версия в каталоге node_modules.NodeJS
иJava
обновлены до более новых версий.Теперь версии NodeJS для разных операционных систем находятся в SDK в своём исходном виде (т.е., в виде архива, который распаковывается по запросу системы сборки приложения).
Исправления¶
Исправлено некорректное поведение метода
rotate_camera
при использовании отрицательных углов.Исправлены крэши приложения при использорании физики.
Исправлен крэш в ноде
Transform Object
.Исправлен вызов callback-функции
change_image
и соответствующий пример кода.Исправлены внутренние ошибки сборки приложения и отладки шейдеров.
Исправлен крэш, происходивший при многократном обащении к ноде
Entry Point
с помощью JavaScript-функций.Исправлена нода
Page Param
.Исправлена ошибка
long names
, возникавшая при распаковкеSDK
в Windows.Исправлена автосборка движка для ES5-проектов.
Исправлен крэш при сборке проектов типа
Compile
.Исправлено использование внешних модулей при сборке проекта под Windows
Исправлена компиляция “на лету” при использовании wss с протоколом https.
Известные проблемы¶
Для сборки Веб-плеера под Windows требуется установить Oracle Java (https://java.com/download/). Если вы столкнулись с другими проблемами, откройте папку projects/webplayer и выполните команду
npm install
.
v17.12¶
Новые возможности¶
Поддержка модулей ES6
Появилась возможность импортировать модули Blend4Web при помощи команды import
Старые модули, подключаемые при помощи команды b4w.require, также работают; старые приложения не требуют никаких модификаций
Для сборки системы с поддержкой модулей ES6 используется Webpack
Поддержка NPM
Теперь node.js интегрирован в Blend4Web SDK и запускается при помощи команды scripts/node.sh
Теперь Blend4Web SDK поддерживает установку модулей из NPM. Для установки необходимых пакетов используйте команду scripts/npm.sh install (имя пакета)
Кроме того, движок Blend4Web добавлен в репозиторий NPM!
npm install blend4web
Теперь кнопка Fast Preview работает в аддоне Blend4Web
В модуль
physics
добавлены новые методы для управления ограничивающими объёмами объектов, используемыми при определении столкновенийsync_bounding
применяется для синхронизации ограничивающий объём объекта после изменения ключей формыsync_mesh
используется для синхронизации collision mesh объекта после изменения ключа формыДальнейшая поддержка материалов Cycles
Появилась начальная поддержка ноды
Principled BSDF
. Поддерживаются входыBase Color
,Metallic
,Roughness
иNormal
. Эта нода позволяет создавать PBR-материалы в соответствии с ситемой Roughness/Metallic.Расширена поддержка ноды
Transparent BSDF
. Теперь эта нода включает дополнительный парметрUse Alpha
, позволяющий создавать полупрозрачные материалы, аналогичный материалам Blend4Web с режимом прозрачностиAlpha Sort
.Добавлена поддержка вершинных цветов посредством ноды
Attribute
. ВыходColor
работает по тому же принципу, что выходVertex Color
нодыGeometry
вBlender Internal
.
Изменения¶
Теперь параметр background_color в config влияет только на цвет canvas’а, в то время как внутренние буферы кадра сохраняют цвет по умолчанию (чёрный).
Исправления¶
Исправлено перемещение камеры в случаях, когда вертикальная ось не совпадает с осью Z.
Исправлена работа нод Material и Extended Material: теперь для входов Diffuse и Specular не выполняется операция ограничения
Исправлена работа методов set_nodemat_rgb, get_nodemat_rgb, set_nodemat_value и get_nodemat_value.
Исправлен крэш шейдера в Google Chrome.
Исправлено некорректное определение рекурсии в Редакторе логики.
Исправлен баг в sphinx_rtd_theme, приводивший к неработоспособности поиска в документации.
Исправлена передача и преобразование глобальных переменных в Редакторе логики.
Исправлен экспорт на жесткий диск, отличный от того, на котором находится движок, в Windows.
Исправлено повторение параметров в Редакторе логики.
Исправлена работа нодовой логики: теперь для предотвращения мерцания при использовании нод
Show
иHide
обрабатывается максимальное количество нод за кадр.
Известные проблемы¶
Проблема при распаковке SDK под Windows при использовании стандартного архиватора. В качестве решения следует использовать сторонний архиватор, напр.
7zip
.
v17.10¶
Новые возможности¶
Добавлен режим стереорендеринга side-by-side.
Автозапуск сервера разработки.
Теперь закрытие одной из копий Blender не приводит к остановке сервера разработки при наличии другой копии с запущенным сервером.
Добавлена синхронизация Blender с Просмотрщиком сцен.
Улучшения в физическом движке.
Добавлена возможность управлять вектором гравитации в сцене. Кроме того, теперь ограничитель
HINGE
работает стабильнее, а в модуль physics добавлен метод set_character_vert_move_dir_angle.Добавлены новые логические ноды:
Define Function
,Call Function
,Switch
В ноду
Select
добавлено полеDestination
, предназначенное для задания переменной, содержащей выбранный объект.В Редактор логики добавлен тип переменной
Object
В интерфейсе некоторых нод, работающих с объектами, появилась возможность задавать объекты с помощью переменных.
Улучшен алгоритм рассчёта освещения от окружающей среды для материалов Cycles с нодами
Glossy BSDF
иDiffuse BSDF
.
Изменения¶
Теперь NLA-анимация, запущенная при помощи логических нод, может быть остановлена методами API.
Для работы рекомендуется версия Blender 2.79.
Оптимизирован рендеринг LoD’ов.
Переименованы некоторые логические ноды:
Switch Select
->Select
,Conditional Jump
->Branch
.Теперь наш аддон использует новую возможность Blender 2.79 -
Datablock pointer properties
. Это может приводить к некоторым проблемам совместимости (см. замечания к релизу Blender 2.79).Благодаря нашему патчу для Blender (D113) упрощена процедура прикрепления нодового дерева к сцене: удалена кнопка Refresh.
Исправления¶
Исправлены артефакты глубины резкости при использовании эффекта боке. Теперь для работы эффекта требуется расширение WebGL для работы с render target’ами в формате с плавающей точкой; в противном случае боке автоматически отключается.
Исправлен экспорт
Cycles
-материалов окружения в формат HTML.Исправлено ошибочное срабатывание предупреждения
B4W WARN: Canvas size exceeds platform limits, downscaling
.Исправлена видимость панели управления в AR-демо на IE11.
Исправлена работа метода rotate_camera модуля camera_anim.
Исправлен ряд неточностей в документации API.
Исправлен низкий FPS в приложении “Сказ о Пятигоре”
Исправлена видимость сумеречных лучей на ряде мобильных устройствах.
Исправлена работа ноды
Mapping
при нулевом масштабе.Исправлена работа методов translate_view и set_fov модуля camera.
Исправлена работа метода get_materials_names модуля material.
Исправлено вращение персонажа при помощи методов set_character_rotation и set_character_rotation_v модуля physics.
Исправлена ошибка, в некоторых случаях приводившая к отсутствию слоёв UV и вершинного цвета на объекте после применения метода inherit_material.
Исправлена загрузка видеотекстур с расширением ”.mp4”.
Исправлена работа метода get_ortho_scale модуля camera.
Исправлена работа метода enable_camera_controls модуля app.
Исправлен крэш движка, возникавший при использовании ноды Value в материале частиц типа Emitter.
Исправлена работа методов set_nodemat_value, get_nodemat_value, set_nodemat_rgb и get_nodemat_rgb модуля material.
Исправлен рассчёт масштаба для объектов типа
Curve
со включённым параметромApply Scale and Modifiers
.Исправлена ошибка инициализации NLA. Ранее она влияла на стартовый кадр анимации.
Исправлен тач-сенсор на устройствах с низкой производительностью.
v17.08¶
Новые возможности¶
Поддержка контроллера Leap Motion.
В Code Snippets добавлен пример работы с Leap Motion. Используйте его как образец при добавлении поддержки Leap Motion в ваши собственные приложения. Пример включает два режима: с реалистичными руками и с руками, состоящими из простых геометрических фигур.
Новая логическая нода “Date & Time”.
Используется для получения текущей даты (год, месяц, день) и времени (часы, минуты, секунды). Поддерживается локальное время и UTC.
Новая логическая нода “Elapsed”.
Эта нода возвращает время (в секундах), прошедшее с момента визуализации предыдущего кадра. Может быть очень полезна для создания стабильной и плавной процедурной анимации.
Улучшен текстурный кэш. Добавлен конфигурационный параметр
enable_texture_cache
.Текстурный кэш используется для ускорения загрузки сцен, загружаемых динамически (это достигается за счёт повторного использования уже существующих текстур вместо создания новых). Использование текстурного кэша включается и выключается опцией
enable_texture_cache
; эта опция включена по умолчанию.Новые методы API для управления видимостью групп объектов.
В модуль objects добавлены методы hide_all_by_data_id и show_all_by_data_id. Они применяются для управления видимостью объектов на основе параметра
data_id
и могут применяться для скрытия и показа целых сцен, загруженных динамически.В модуль textures добавлен метод replace_image. Кроме того, метод change_image объявлен устаревшим.
Оптимизация процедурных материалов.
Внедрён новый алгоритм упаковки для GLSL-ноды Value. Этот алгоритм использует массив переменных типа vec4 вместо float (как предыдущая версия) и позволяет использовать большее количество нод Value без риска столкнуться с аппаратными ограничениями GPU.
Новый внутренний модуль
material.js
.Содержит внутренние инструменты движка для работы с материалами. Ввиду появления этого модуля после загрузки новой версии SDK для старых проектов потребуется выполнить команды
Check Modules
иUpdate Modules
в Менеджере проектов.Переработан интерфейс редактора логики.
Появилась новая категория Time, содержащая ноды
Get Timeline
,Delay
,Date & Time
иElapsed
.Улучшения в физическом движке.
Библиотека Bullet, используемая физическим движком, обновлена с версии 2.82 до 2.86. Кроме того, теперь по умолчанию включена версия физического движка, скомпилированная с применением WebAssembly. Её преимущества: меньший размер файлов физического движка, более быстрая инициализация, повышенная стабильность физики и более высокий FPS.
Изменения¶
Версия формата экспорта JSON/BIN повышена до 6.03.
Рекомендуется повторно экспортировать старые .blend-файлы для работы с новой версией движка.
Оптимизирован рендеринг эффекта Френеля.
Опция
Preserve Global Rotation and Scale
на панелиObject->Billboard
переименована вPreserve Global Rotation
.Теперь billboard-объекты всегда масштабируются в мировом пространстве координат.
Добавлено сообщение об ошибке, появляющееся при создании рекурсивных ограничителей или ограничителей, использующих ограничиваемый объект в качестве целевого, с помощью модуля API constraints.
Добавлено предупреждение при экспорте, появляющееся в случае использования нескольких ограничителей на одном объекте.
Неиспользуемый python-модуль ‘requests’ удалён из аддона.
В документацию добавлены следующие материалы:
Подробное описание пользовательского интерфейса Blender
Руководство по использованию смешивания анимаций.
Описание методов модуля API constraints.
Исправления¶
Ряд исправлений в CSS-файлах приложения Code Snippets и игры “Сказ о Пятигоре”.
Из-за ошибок рендеринга на устройствах с GPU ARM Mali-T720 вместо режима прозрачности Alpha-AntiAliasing используется Alpha Clip.
Исправлен ряд крэшей Менеджера проектов, возникавших при сборке приложений.
Исправлена редкая ошибка, приводившая к неправильному начальному положению камер типа HOVER.
Для предотвращения артефактов постпроцессинга в Firefox под Windows отключено использование текстур глубины на GPU AMD.
Исправлен ряд проблем, приводивших к ошибкам рендеринга на мобильных устройствах.
Исправлена чувствительность колеса мыши (ранее она могла быть неточной в некоторых случаях).
Включена поддержка текстур глубины и сопутствующих эффектов (SSAO, динамическая трава, сглаживание береговой линии и пр.) для GPU AMD в браузере Chrome под Windows и для GPU других производителей в Firefox под Windows.
Теперь ограничивающие объёмы billboard-объектов рассчитываются корректно, что позволило исправить ошибки отсечения по зоне видимости.
Исправлен рендеринг процедурного тумана.
Ввиду плохой производительности и ошибок рендеринга на GPU Mali-T720 отключено использование MSAA.
Исправлен ряд неточностей в документации API.
Исправлен баг, приводивший к невозможности рендеринга прозрачного материала с нодой Glow Output в случае, если значение прозрачности равно нулю. Этот баг появлялся в браузере Safari.
Исправлено получение координат мыши и touch-событий в IE11 и Edge в случае, когда canvas приложения не выровнен относительно верхнего левого угла окна браузера.
В Google Chrome 60 для macOS отключен MSAA, т.к. он работал некорректно и мог приводить к крэшам движка.
Ряд незначительных улучшений стабильности WebVR.
Исправлено кэширование текстур для динамически загружаемых сцен. Ранее оно могло приводить к чрезмерному расходу памяти GPU.
Исправлено применение модификатора
Array
для мешей с несколькими слоями UV-карт и вершинных цветов.Исправлена ошибка, приводившая к невозможности использования нескольких анимаций материала на одном объекте.
Исправлено разрешение отладочной подсцены.
Исправлено непредсказуемое поведение констрейнтов в IE11.
Исправлены ошибки видимости якорей.
Исправлена потенциальная утечка памяти; удалены неиспользуемые отладочные буферы кадра.
Исправлено использование атрибутов hasOrientation и hasPosition из API WebVR. В последних WebVR-сборках Chromium эти атрибуты могут быть не определены.
Исправлен крэш движка при использовании кубической карты окружающей среды без изображения.
Исправлены ошибки кодирования в Менеджере проектов под macOS.
Исправлена синхронизация физического worker’а с основным потоком в Chrome 61+; устранена соответствующая задержка физики.
Удалён хак для прозрачных нодовых материалов в Firefox под Linux, т.к. он приводил к различиям в рендеринге цвета в разных браузерах.
Исправлено вращение камеры при помощи метода rotate_camera в случае, если параметр
is_abs
имеет значениеtrue
.Исправлен баг, приводивший к тому, что для проектов типа “Compile” вне зависимости от настроек всегда использовался тип оптимизации “simple”. Также исправлен уровень оптимизации для Blend4Web Player, использующего тип “advanced”. Таким образом, размеры плеера и приложений на его основе (т.е., сцен, экспортированных в формат HTML) стали несколько меньше.
Исправлена загрузка видеотекстур на iPad при экспорте в формат HTML.
v17.06¶
Новые возможности¶
Поддержка основных констрейнтов Blender.
На данный момент поддерживаются
Copy Location
,Copy Rotation
,Copy Transforms
иTrack To
. Кроме того, добавлены следующие методы API: append_copy_loc, append_copy_rot и append_copy_trans.Экспериментальная поддержка дополненной реальности.
В последующих релизах мы намерены существенно усовершенствовать эту возможность, а сейчас ознакомиться с ней можно, запустив демонстрационное AR-приложение. Оно находится в каталоге
apps_dev/AR
, а также доступно из Менеджера проектов.Новая логическая нода
Set Camera Limits
.Нода позволяет изменять ограничители движения камеры. Каждый ограничитель может быть настроен отдельно. При исполнении ноды применяются только те ограничители, которые совместимы с типом камеры.
Улучшения рендеринга AA.
Переработана схема рендеринга постэффектов. Новая схема обеспечивает повышенное быстродействие и более высокое качество антиалиасинга.
Экспериментальный алгоритм освещения от окружающей среды для сцен с материалами
Cycles
.Использование материалов с нодами
Glossy BSDF
иDiffuse BSDF
автоматически включает освещение от окружающей среды, которое учитывает шероховатость компоненты Glossy.Для корректной работы нового алгоритма требуется поддержка WebGL 2.0 или WebGL 1.0 с расширением EXT_shader_texture_lod.
Оптимизация рендеринга отражений.
Оптимизированы кубические отражения для сцен, в которых отсутствуют отражаемые объекты. Теперь отражения в таких сценах не рассчитываются индивидуально для каждого отражающего объекта; для таких объектов используется изображение неба.
Поддержка загрузки камер.
Теперь динамическая загрузка может использоваться для загрузки дополнительных камер.
Улучшения в физическом API.
Добавлен метод set_angular_velocity. Он может применяться для установки угловой скорости объекта.
Изменения¶
Опция “pivot” в группе параметров “params” метода target_setup стала необязательной.
Переработан модуль API Material. Добавлено два новых метода: is_node_material и is_water_material. Кроме того, консольные сообщения об ошибках стали более чёткими и понятными.
Видео в формате .SEQ больше не используется в качестве резервного варианта для видеотекстур в MS Edge ввиду поддержки HTMLVideoElement.
Исправления¶
Исправлен некорректный рендеринг материалов, использующих карты нормалей.
Исправлен пример кода VR.
Исправлены события клавиатуры при работе движка в контейнере iframe.
Теперь MSAA отключён на GPU Adreno 4xx/5xx для устранения ряда ошибок рендеринга.
Исправлено перемещение и вращение неактивных камер.
Исправлено получение координат при помощи методов get_coords_x и get_coords_y.
Исправлен баг, приводивший к невозможности остановки зацикленного звука в Firefox при последовательном вызове методов stop и play.
Исправлена перерисовка неба после изменения параметров нодового материала объекта
World
.Отключено автоматическое применение модификаторов к объектам с модификатором
Array
.Исправлены артефакты рендеринга, появлявшиеся в Firefox под Linux при использовании нодовых материалов с прозрачностью.
Исправлено применение анимации нодового материала после наследования материала.
С целью повышения стабильности физики в IE11 и MS Edge отключено использование Worker’ов для физических симуляций.
v17.04¶
Новые возможности¶
Поддержка материалов окружающей среды в
Cycles
.Теперь рендеринг неба можно настраивать с помощью нод
Cycles
. Для управления итоговым цветом окружения применяется нодаBackground
. Поддерживаются также сферические карты окружающей среды с типами проекцииEquirectangular
иMirror Ball
. Материалы окружающей среды могут быть анимированы при помощи нодValue
иRGB
(поддерживается как обычная анимация, так и NLA). ОпцияUse Nodes
продублирована на панели настроекWorld
.Экспериментальная поддержка WebAssembly в физическом движке.
Теперь вы можете использовать оптимизированную версию физического движка Uranium.js (нашего порта движка Bullet на JavaScript). Эта возможность включается при помощи нового конфигурационного параметра
physics_use_wasm
. Возможность считается экспериментальной и по умолчанию отключена.Экспериментальная поддержка VR-контроллеров
Добавлен метод enable_controllers. Обновлен пример VR из приложения Code Snippets. Также добавлены методы create_gamepad_orientation_sensor и create_gamepad_position_sensor.
Добавлена поддержка материалов с типом прозрачности Alpha Anti-Aliasing.
На совместимом оборудовании этот вариант техники Alpha Clipping выглядит намного лучше стандартного. Для использования этого типа прозрачности требуется поддержка MSAA, поэтому он работает только на устройствах, поддерживающих WebGL2. В других случаях вместо него будет использоваться тип прозрачности
Alpha Clip
.Поддержка загрузки ресурсов с компрессией GZIP.
Теперь приложение может загружать сжатые файлы ”.json.gz” и ”.bin.gz” вместо стандартных ”.json” и ”.bin”. То же относится и к текстурам в форматах DDS и PVR. Эта возможность включается в веб-плейере при помощи URL-параметра “compressed_gzip”. В обычном приложении она активируется передачей флага “assets_gzip_available” в методе init. Сжатые файлы генерируются при помощи команды “convert resources” в Менеджере проектов. Эту возможность, однако, следует использовать только в тех случаях, когда сжатие не может быть настроено на сервере. Более подробная информация доступна в разделе документации “Компрессия GZIP”.
Улучшения системы LOD.
Появилась возможность плавного переключения уровней LOD на основе техники alpha test. Соответствующая опция называется
LOD Smooth Transitions
и расположена на панелиScene -> Object Clustering & LOD
. Следует иметь в виду, что включение этого параметра для всех объектов может существенно снизить скорость работы приложения.Также появилась новая опция
Max LOD Hysteresis Interval
. Она предназначена для устранения слишком частых переключений уровней LOD в ситуации, когда камера движется рядом с границей между двумя уровнями LOD. Эта опция заменяет старый параметрLOD Transition Ratio
на панелиObject->Levels of Detail
.Подробное описание находится в разделе “Уровни LOD”.
Поддержка RGBA-теней.
Это позволяет использовать тени на устройствах, не поддерживающих текстуры глубины.
Улучшения эффекта Bloom.
Реализован новый алгоритм расчёта эффекта Bloom. Он работает со всеми типами источников света и не зависит от направления освещения. Также добавлена возможность расчёта адаптивной средней яркости.
Поддержка текстур типа
Non-Colour Data
в Filmic Blender.Резервный вариант для сжатых текстур.
Теперь, если сервер возвращает ошибку 404 при обращении к текстурам в форматах gzip/dds/pvr, движок попытается загрузить несжатые изображения.
Отладочный флаг этапов загрузки
В метод init добавлен флаг
debug_loading
, позволяющий отслеживать этапы загрузки через консоль.Улучшения в редакторе нормалей.
Для смешивания итоговых и начальных положений нормалей в некоторых операторах появился параметр
Factor
.Появилась возможность использовать оператор
Face
с несколькими полигонами.Появился новый оператор
Scale
, предназначенный для масштабирования нормалей по осям координат.Функциональность ряда операторов переработана, а их названия изменены в соответствии с новыми возможностями:
Tree
->3D Cursor
,Foliage
->Axis
.Добавлен API для визуализации нормалей динамических объектов.
В модуль debug добавлены методы show_normals и hide_normals.
Изменения¶
Удалены предупреждения для объектов Force Field типа
None
.Теперь метод get_sky_params возвращает значение null для непроцедурного неба.
Теперь параметр
Use Custom Color
на панелиMist
по умолчанию отключён.Теперь метод append_object работает также и с недуплицированными объектами.
Верхняя граница диапазона значений параметра SSAO
Influence
увеличена до 2.0.Размер canvas’а больше не меняется на 320x240 в случаях, когда одна или обе его стороны имеют нулевые размеры.
Теперь размеры кубической карты неба изменяются автоматически при изменении текстуры.
Исправления¶
Исправлен русский перевод пунктов меню “Справка” в аддоне.
Исправлен ряд неточностей в документации API.
Исправлен параметр
Do Not Export
для объектов с уровнями LOD (ранее он не работал).Исправлено снижение FPS в Просмотрщике сцен после выбора объекта.
Исправлено переключение уровней LOD для динамических объектов (ранее движок мог визуализировать более одного уровня LOD одновременно).
Теперь одинаковые запакованные изображения и звуковые файлы при экспорте распаковываются в один файл, а не в несколько одинаковых файлов.
Исправлено ограничения параметра strength ноды Normal Map. Теперь значения ниже 0 не влияют на нормали.
Удалены ненужные обновления тумана при анимации окружающей среды.
Использование объектов типа
Empty
с динамическими материалами не приводит к крэшу движка.Исправлена ошибка клонирования текстур, вызывавшая утечки памяти.
Исправлена сортировка батчей по параметру alpha_clip.
Исправлен крэш текстуры Foam + ShoreMap в материале воды.
Исправлено преобразование пространства в редакторе нормалей.
Исправлено поведение Менеджера проектов в нестандартном Python-окружении.
Исправлен некорректный рендеринг материалов, использующих карты нормалей.
Исправлена фильтрация текстур для правого глаза в режиме VR.
Исправлен крэш на IE11 при использовании client_to_element_coords.
Исправлены методы is_hideable, show_object и hide_object.
Исправлен крэш
Cycles
-материалов с несоединёнными выходамиSurface
.
v17.02¶
Новые возможности¶
Улучшения в менеджере проектов.
Добавлен визуальный конфигуратор проекта. Конфигуратор позволяет редактировать только те настройки, которые доступны для данного проекта, кроме того, все изменения обратимы. Для вызова конфигуратора достаточно нажать ссылку [config] рядом с названием проекта на главной странице Менеджера проектов.
Появилась команда clone project.
Появились карты кода (source maps) JavaScript. Карты кода позволяют просматривать сжатый программный код в первоначальном виде, используя особую “карту”. Для генерации карты кода следует установить флаг -b для скрипта project.py при сборке проекта.
Улучшения интерфейса.
Чтобы упростить создания Blend4Web-контента, мы переработали интерфейс Blender.
Меню Render и Help переработаны для движка Blend4Web.
Добавлены консольные сообщения о неподдерживаемых редакторах.
Панель ‘Rigid Body’ отсутствует в интерфейсе при использовании движка Blend4Web.
Номер версии Blend4Web добавлен на экран загрузки Blender.
Дальнейшая поддержка материалов
Cycles
.Добавлена поддержка выхода
Displacement
. Он применяется для быстрого добавления рельефа к материалу.Добавлена поддержка ноды
Transparent BSDF
. Нода относится к категорииShader
и применяется для создания прозрачных материалов без рефракции: свет проходит через такую поверхность, как если бы её не было.Расширение поддержки наследования материалов.
Метод inherit_material был серьёзно усовершенствован и теперь поддерживает нодовые материалы. Для его использования необходимо включить опцию
Dynamic Geometry & Materials
(ранее известную какDynamic Geometry
) на панелиObject
как для целевого объекта, так и для объекта-источника. Кроме того, теперь экспортируются все UV-карты и слои вертексного цвета, которые также будут доступны для материала, применяемого к целевому объекту. Более подробно эта возможность описана в соответствующей главе документации.Улучшения “Примеров кода”.
Появилась функция “Make project”. Она позволяет создать новый проект, основанный на примере кода, что даёт пользователю возможность использовать готовые примеры для дальнейшей разработки.
Улучшения камеры.
Добавлена поддержка методов подгонки изображения
Horizontal
иAuto
.API для настройки Wind Bending.
Теперь параметры Wind Bending могут быть установлены при помощи метода set_wind_bending_params и получены при помощи get_wind_bending_params. Следует заметить, что эти функции работаю только для динамических объектов. Кроме того, отдельное меню для настройки Wind Bending добавлено в Просмотрщик сцен.
Настройка качества отражений и размытия теней.
Поддержка индивидуальной настройки аддона Blend4Web.
Для упрощения настройки аддона Blend4Web появилась возможность добавлять поля b4w_custom_prop в блоки данных Object и Scene. Эти параметры экспортируются в формат Blend4Web и доступны при помощи методов scenes.get_custom_prop и objects.get_custom_prop. Пример использования можно увидеть в файле addons/blend4web/custom_prop_example.py, входящем в SDK.
Изменения экспорта UV-слоев.
Удалено ограничение в два UV-слоя на меш. Кроме того, если UV-слой не задан, по умолчанию используется активный, а не первый в списке, как раньше. Неиспользуемые UV-слои не экспортируются, за исключением случаев, когда для объекта активирован параметр
Dynamic Geometry & Materials
.
Изменения¶
Изменения в Менеджере проектов.
Тип движка “External” объявлен устаревшим и автоматически заменятся на тип “Copy”.
Теперь пустые слоты материалов экспортируются корректно и не останавливают процесс экспорта.
Аддон перемещён в отдельную категорию
Blend4Web
.В интерфейс Blender добавлены предупреждения о неподдерживаемых ограничителях и форматах текстур.
Теперь смешивание скелетных анимаций корректно работает с двумя анимациями. Эта возможность остаётся экспериментальной, API для неё может меняться в будущем.
Теперь при динамической загрузке или выгрузке статичных физических объектов последние корректно влияют на сцену.
Ряд улучшений в модуле fps. В метод enable_fps_controls добавлено несколько параметров для настройки. Подробнее изменения описаны в документации API.
Изменения API
Методы set_canvas_offsets, update_canvas_offsets и force_offsets_updating модуля container объявлены устаревшими и будут удалены в будущих релизах. Вместо них следует использовать метод client_to_canvas_coords или client_to_element_coords.
Добавлен модуль screen.
Методы request_fullscreen_hmd, enable_split_screen, disable_split_screen , request_fullscreen, exit_fullscreen и check_fullscreen объявлены устаревшими и будут удалены в будущих релизах. Вместо них следует использовать методы request_fullscreen_hmd, request_split_screen, exit_split_screen, request_fullscreen, exit_fullscreen и check_fullscreen.
Методы draw_mixer_strip, plot_array и shot объявлены устаревшими и перемещены в модуль screen. Модули hud и screenshooter объявлены устаревшими.
Метод set_hmd_fov объявлен устаревшим.
Метод API util.ground_project_quat переименован в ground_project_cam_quat.
Удалены следующие устаревшие методы: camera.set_move_style, camera.has_vertical_limits, camera.has_horizontal_limits, camera.move_pivot, camera.set_velocity_params, camera.get_velocity_params, camera.clear_horizontal_limits, camera.clear_vertical_limits, camera.clear_hover_angle_limits, camera.set_look_at, camera.rotate_eye_camera, camera.rotate_target_camera, camera.set_trans_pivot, camera.zoom_object, camera.set_pivot, camera.rotate_hover_camera, camera.get_hover_cam_pivot, camera.get_eye, camera.get_pivot, camera.hover_cam_set_translation, camera.set_hover_pivot, camera.get_hover_angle_limits, camera.get_cam_dist_limits, camera.apply_vertical_limits, camera.apply_hover_angle_limits, camera.apply_distance_limits, camera.clear_distance_limits, camera.get_vertical_limits, camera.apply_horizontal_limits, camera.get_horizontal_limits, controls.register_keyboard_events, controls.register_mouse_events, controls.register_wheel_events, controls.register_touch_events, controls.register_device_orientation, controls.unregister_keyboard_events, controls.unregister_mouse_events, controls.unregister_wheel_events, controls.unregister_touch_events, controls.unregister_device_orientation, app.resize_to_container, app.set_camera_move_style, app.enable_controls, app.disable_controls, hmd.get_hmd_device, hmd.reset, animation.get_first_armature_object, animation.get_bone_translation, constraints.get_parent, util.line_plane_intersect, util.is_mesh, util.is_armature, tsr.create_sep, sfx.is_play, scenes.check_object, scenes.get_object_dg_parent, nla.check_nla_scripts, main.resize, main.global_timeline, main.get_canvas_elem.
Добавлены методы add_click_listener и remove_click_listener.
Изменения режима VR.
Теперь переключение в режим VR происходит без перезагрузки приложения (при использовании мобильных браузеров или браузеров с поддержкой WebVR).
Отключена авторотация камеры в режиме VR.
Добавлена поддержка WebVR 1.1.
Теперь метод is_character не возвращает значение
true
, если приложение не использует физику.Параграф Нестандартное расположение и ориентация элемента Canvas переписан в соответствии с изменениями в движке.
Кроме того, добавлен новый параграф Мобильные веб-приложения, затрагивающий некоторые аспекты ориентации и масштабирования страницы браузера.
В документацию добавлен раздел Методы API для работы с материалами. В нём описывается использование методов модуля API material.
Структура объекта
SSAOParams
, используемого в методах set_ssao_params и get_ssao_params, стала более корректной.Метод object_distance объявлен устаревшим. Вместо него следует использовать метод distance.
Методы create_ray_sensor и new_event_track больше не принимают нефизические объекты в качестве аргументов (это приводило к крэшу движка).
Теперь видеотекстуры не могут изменяться при помощи метода change_image.
Исправления¶
Исправлен баг, приводивший к тому, что описание якоря состояло не только из текстовых нод.
Исправлен крэш, возникавший при использовании некорректных материалов системой частиц типа
Emitter
.Исправлены ошибки, возникавшие при использовании связанных объектов или групп с одинаковыми именами.
Удалена дублирующая панель
Simplify
, которая создавалась Blend4Web в других системах рендеринга.Исправлено кэширование текстур при использовании несовместимых источников.
Исправлены нормали частиц эмиттера.
Исправлен рендеринг в текстуру, который в предыдущем релизе работал некорректно.
Ряд исправлений в методе prefetch.
Исправлена SRGB-коррекция цвета в режиме
Ultra
.Исправлено снижение FPS в браузерах для iOS.
Исправлена загрузка исполняемых файлов в случае, если директория tmp не поддерживает их запуск. В этом случае используется стандартная tmp-директория Blender, пусть к которой может быть задан вручную.
Более корректное раскрытие меню Add в нодовом редакторе.
Файл assets.json удалён из всех blend-файлов.
Исправлена перезагрузка бинарного модуля при нажатии F8.
Исправлена работа конфигуратора HMD.
Исправлен баг, приводивший к тому, что видимость слоёв сцены в Blender могла изменяться после экспорта.
Исправлено некорректное поведение видеотекстур в Firefox.
Исправлены тени и отражения для динамической травы.
Исправлен крэш при компиляции шейдеров, происходивший в том случае, если был выбран профиль качества LOW.
Исправлен выбор объектов и тени от объектов с нодовыми материалами, использующими режим прозрачности Alpha Clip.
Исправлена проверка неподдерживаемых размеров текстур.
Исправлена функция Override Bounding Volumes для объектов с ключами формы.
Исправлен выбор и подсветка LOD-объектов.
Исправлен крэш движка, возникавший, если к какому-либо объекту в Blender применялся модификатор Array.
Исправлены баги, связанные с методом set_ssao_params.
Google Closure Compiler, используемый для компиляции скриптов движка и приложений, обновлён до последний версии. Это помогло исправить несколько мелких багов.
Исправлен крэш движка при применении ключа формы к объекту с системой частиц типа HAIR или EMITTER.
Исправлено свойство “Hidden” объектов типа
EMPTY
, используемых в качестве якорей.
v16.12¶
Новые возможности¶
Улучшения в менеджере проектов.
В редактор файлов проекта добавлены кнопки
New File
иSave As
. Кроме того, теперь редактор подсвечивает изменённые файлы для упрощения навигации.Теперь сборщик приложений Менеджера проектов уменьшает скомпилированные HTML-файлы, что ускоряет их загрузку.
Поддержка новых нод
Cycles
.Добавлена поддержка ноды
Emission
. Эта нода относится к категорииShader
и отвечает за излучение материалом света. Среди входных параметров этой ноды -Color
иStrength
. В Blend4Web эта нода влияет только на вид материалов, в которых используется, и не превращает объекты в источники света.Улучшения рендеринга LOD-объектов.
Теперь объекты с уровнями детализации объединяются в батчи в зависимости от их пропорций и настроек расстояния. Таким образом, движок визуализирует LOD-объекты с максимальной эффективностью, стараясь сохранять достаточное количество объектов, объединённых в батчи. Для настройки этой возможности на панель Scene->Objects Clustering добавлен параметр
LOD Cluster Size Multiplier
.Новые методы API prefetch и unfetch.
Первый метод используется для предварительной загрузки и кэширования ресурсов сцены (текстур, звуков, файлов сцены и т.п.). Второй метод применяется для очистки кэша.
Поддержка выбора объектов на VR-устройствах.
Добавлен метод pick_center. Этот метод использует функцию выбора объектов и позволяет пользователю выбрать объект, находящийся в центре окна приложения. Он работает как на VR-устройствах, так и в обычных приложениях.
Улучшения интерфейса аддона.
Из аддона удалена панель сервера разработки. Добавлены подробные предупреждения о том, что сервер разработки недоступен в аддоне.
Кэширование текстур.
Теперь все текстурные изображения кэшируются. Если запрашивается новая текстура с похожими параметрами, она берётся из кэша. Это снижает расход памяти и значительно увеличивает быстродействие метода change_image для нескольких объектов.
Изменения¶
Изменения в Менеджере проектов.
Переработана структура файлов Менеджера проектов. Теперь новые проекты размещаются в директории
projects
. Все медиаданные размещаются в каталоге проекта.Обратите внимание, что в новой файловой структуре метод get_std_assets_path() больше не возвращает путь к директории проекта. Вместо него следует использовать метод get_assets_path().
Для перевода старых проектов на новую структуру добавлена кнопка
upgrade file structure
.Текст в редакторе Менеджера проектов теперь выделяется пробелами, а не табуляциями.
Теперь источники света с неподдерживаемым типом
Area
при экспорте преобразуются в источники типаSun
. При этом в консоли браузера выводится соответствующее сообщение об ошибке.
Исправления¶
Исправлен баг с видеотекстурами в мобильной версии Chrome.
Исправлен баг с типом прозрачности “Alpha Sort” для статических объектов.
Исправлен баг, приводивший к некорректному рендерингу материалов, использующих карты нормалей.
Исправлен баг, приводивший к тому, что уровни детализации объекта переключались с заметной задержкой, во время которой не выводился ни один из уровней.
Исправлен баг с динамической травой в WebGL 2.0.
Исправлена ошибка взаимодействия с планшетами Wacom.
Исправлено сообщение “Export to different disk is forbidden”, которое появлялось при использовании функции быстрого просмотра.
Исправлен крэш при экспорте дупли-групп без привязанных объектов.
Теперь прозрачные материалы корректно воспринимают значения прозрачности более 1.0.
Нода
Parallax
больше не вызывает крэш нодового дерева в случае, если её входящая текстура используется в каких-либо Outout-нодах за исключением самой нодыParallax
.Теперь нодовые материалы очищаются от неиспользуемых нод при экспорте.
Исправлена привязка к камере в режиме VR.
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.Экспериментальный конфигуратор геймпадов и контроллеров
Новые примеры кода.
Добавлены новые примеры кода. Их названия - 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 имеют опциональный последний параметр.
Теперь состояние клавиатурной клавиши хранится в полезной нагрузке сенсора клавиатуры.
За более подробной информацией обратитесь к разделу документации разработчика, посвящённому методу 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. Также были изменены их значения, выставляемые по умолчанию.Улучшение рендеринга анаглифного стереоизображения.
Был реализован новый алгоритм рендеринга для режима анаглиф с улучшенным цветом изображения. Также плоскость сходимости левого и правого изображения для камеры типа TARGET теперь рассчитывается автоматически на основе опорной точки камеры.
Новые ноды редактора логики.
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.
Исправления¶
Исправлены ошибки в системе управления проектами.
Повышена стабильность работы на мобильных платформах при большом количестве лампочек на сцене.
Повышена стабильность работы на 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-анимации для динамически загружаемых сцен.
Если на таких сценах присутствуют объекты с 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 для работы с цветом.
Автоматическое определение пути к 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.
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;