Verge3D 2.10 Blender/3ds Max 发布

Verge3D 2.10  Blender/3ds Max 发布

话题转回 Verge3D,经过潜心月余持续对预发行版的改进,现在我们正式为大家发布 Verge3D 2.10 for Blender/3ds Max!这个版本中,我们增加了许多新特性:试验性 VR 支持,自动更新应用程序,部署第一人称控制,增加动态加载拼图,截图,通过网络发送接收数据,增加对一些 Max 新贴图的支持,增加对 Blender EEVEE 节点的支持等等。

Virtual Reality - 虚拟现实

在最新版中我们引入了实验性 VR 支持,即开发中的浏览器技术 WebXR(Web 上的 eXtended Reality),它允许创建增强现实(AR)和虚拟现实(VR)在线体验。

目前在 WebXR 堆栈中,虚拟现实特性较为稳定。鉴于此,我们在 Verge3D 中暂时只添加了 VR 拼图,待 WebXR 规范稳定后再推出 AR 拼图。

我们强大的工业机器人 demo 现已升级为 VR 演示器。通过使用注视点控制的方法,为无控制手柄的 VR 设备(例如 Cardboard)执行对 3D 对象的交互。

截图自三星 S6 Edge 手机 Cardboard 演示,当前注视点正在触发按钮 #1。

对于有控制手柄的 VR 设备(例如 HTC Vive, Oculus, Google Daydream 等),交互控制则通过手柄来实施。

截图自三星 S8 手机 Google Daydream 演示,当前控制手柄的激光指针正在触发按钮 #2。

因此,您可以使用标准 when hover(光标移入) 或 when clicked(光标点击) 拼图来处理用户事件。关于场景设置和使用 VR 功能的详细信息,请参阅用户手册。

应用管理器改进

新版应用程序创建对话框已进行重新组织设计,现有 2 个应用程序模板:基于拼图的标准应用模板,和为喜欢 JavaScript 编程的用户提供的基于代码的应用模板;另外还添加了启用 Internet Explorer 11 和旧版 VR 模块兼容的选项。

创建新应用面板

简化了应用程序更新过程。您现在不仅可以方便地更新引擎模块,还可以更新 HTML / CSS / JavaScript 模板。请务必在更新前备份项目,因为此功能会覆盖文件! 

一键更新应用程序

为使用基于物理特性的工作流,Blender 和 Max 的默认应用模板一并进行了升级。当前模板使用了中等多边形模型,删除了法线贴图,从而使默认项目更加简洁。

新版默认立方体

新模板中包含了 HDR 环境纹理,您可以在项目中重复使用(官网最新教程系列中有详细介绍)。

第一人称控制

现在可在 Blender 与 3ds Max 项目中开启第一人称控制功能。您可以为地板指定用于进行碰撞检测的材质 ,从而实现在场景中行走的功能。

3ds Max(左侧)和 Blender(右侧)中的第一人称控制选项。

Blender 版本中的城市 Demo 已更新,现可允许进行第一人称控制。

启用了第一人称控件的城市 Demo

动态加载

现在可以通过 Puzzles 或 JavaScript 支持在替换和追加模式下加载场景以及卸载场景。此功能是创建具有大量场景或高多边形模型的应用程序的关键,现在可以按需加载(定制器,游戏关卡等)。

加载新的 gltf 文件并将其附加到主场景。

可以指定预加载器来显示加载进度。摄像机和灯的加载是可选的,默认情况下禁用,以防止浪费内存和处理能力。

通过 JavaScript 启用功能

感谢用户的贡献,我们实现了暂停和恢复渲染的可能性,以及通过 JavaScript 降低帧速率,如下所示:

app.disableRendering(); 
app.enableRendering();
app.setFrameRateDivider(2); // enables maximum 30 FPS instead of 60 

具体使用方法,请参阅 3ds Max 和 Blender 版 Verge3D 中提供的名为 “Load Unload” 演示应用。
此外,实现了用于释放 CPU 和 GPU 资源的 JavaScript 方法dispose()。如果您的网站创建并动态删除了 Verge3D 应用程序实例,此方法非常有用。
例如,如果用户单击某个页面上的某个按钮或标签以导出 3D 应用时,而无需重新加载整个页面,只需呼出

app.dispose();  

这样引擎不会将加载的场景保留在内存中,也不会在后台进行渲染。

更多拼图

除了上面提到的 VR 和场景谜题之外,还增加了一堆新的谜题,包括:

  • is visible  用于检查对象是否可见或隐藏

  • get material  用于检索对象的材质

  • screenshot  用于捕捉品目截图并以 data URI(统一资源标识符) 格式返回

  • all variable names – 返回一个包含全部已使用的变量的名称列表

  • variable value by name  作为标准变量值使用的拼图,但没有下拉列表

新的变量拼图

所有对象,材质和动画拼图现在都可以使用 Text 拼图指定名称。如果要按需加载场景,当对象选择器下拉列表中没有其他场景中的对象名称时,这将非常有用。

使用选择器或文本拼图指定对象。这两种形式都可以正常运行。

另一项改进涉及 tween camera(补间相机) 拼图,适用于飞行摄像机类型。

Puzzles Editor(拼图编辑器) 现在在所有活动选项卡及编辑器选项卡中的缩放比例、视图中心多会在保存时保留下来,以便再次开启式恢复上次编辑状态。你一定会喜欢这一项功能。

还有更多的拼图

添加了通过拼图保存和恢复应用程序状态的实验性支持。例如,此功能可用于实现自定义程序的 “撤消” 按钮。

Save state 和 undo state 拼图

在执行您希望能够撤消的某个操作(例如隐藏对象)之前,使用 save state 拼图保存该对象的状态。之后,你可以使用undo state 拼图撤销隐藏。这些拼图也适用于动作序列,因此您可以像在 3D 编辑器中一样撤消多个动作。

添加了 Dictionary(词典)(又名 map,地图)数据类型到拼图。它可用于方便地存储和检索基于键值的数据。

添加了以纯文本或 JSON 格式通过网络发送和接收数据的实验性支持。这对于以 RESTful 方式与网站后端进行交互非常有用。

上述特征可用于可视化从远程网站检索到的数据。例如,在访问网站 ip.jsontest.com 特定的词典时,可返回如下的 IP 地址:

{"ip": "77.91.80.242"}

因此,您可以通过检索 “ip” 键的值来检测 3D 应用程序中用户的 IP 地址。

使用拼图轮询远程服务器

图形性能改进

【仅 3ds Max】因以下新特性的支持,材质预设现在可以更好地支持 Verge3D 了:位图贴图(Bitmap map)的输出贴图(Output map)和输出面板(Output panel),以及物理材质的粗糙度不可见开关(Roughness Invisible),(此开关使粗糙度表现为光泽度)。

位图贴图(Bitmap map)的输出贴图(Output map)和输出面板(Output panel)

物理材质的粗糙度不可见开关(Roughness Invisible)

【仅 Blender】实现了对多个 EEVEE / Cycles 节点的支持,其中包括 Refraction BSDF, Glass BSDF 和 Wave Texture。 此外也可使用 Principled BSDF 的 Transmission 输入,及 Noise Texture 的 Detail 输入。

EEVEE 的 Wave Texture 可以产生各种图案

新支持的 EEVEE 节点将用作即将推出的珠宝材质库的基础。 

即将发布的珠宝材质库的一些宝石

其他特性

在教程系列中创建的名为 “Simple Configurator” 的完整应用已添加到包含入门文件的 3ds Max 和 Blender 版本中。

为学习目的而创建的简单配置器应用

Verge3D Network 的缓存超时减少到 15 分钟(之前为 1 小时)。这可能有助于更新部署的应用程序。

现在安装后无需配置路径

【仅 3ds Max】自动配置选项已添加到安装程序(默认启用)以自动设置 Verge3D 插件路径。

【仅 3ds Max】现在可以为对象提供 Rendering order(渲染顺序) 和 frustum culling(视体体剔除) 选项。

【仅 Blender】现在可以使用对象选择器方便地设置摄像机目标,并且可以相应地更新视图方向。

现在更容易定义相机目标

WordPress 插件

Verge3D 的 WordPress 插件现在支持以 JSON 格式发送的订单,并且现在还支持自定义通知邮件(使用templates/order_email_body.php)和管理页面(templates/order_admin_form.php)。要在 WordPress 中启用这些模板,请将它们复制到 WordPress 主题的 verge3d 文件夹中。

Bug 修复

  • 【仅 Blender】修复了使用 Child Of 约束时 Blender 2.8 中的崩溃问题。还修复了由最近的 Blender 2.8 更新后由透明材质引起的崩溃。

  • 解决了启用透明背景时别名的问题。

  • 现在可以在 Verge3D 应用程序中加载由第三方导出器创建的 gltf 场景。

  • 修复了 Firefox 移动版上的黑屏渲染问题。

  • 修复了 SSAO 效果在启动时产生像素化效果的问题。

  • 修复了错误阻止克隆非轨道相机的问题。

  • 修复了点击拼图不能使用 Flying 相机类型的错误。

  • 修复了使用变换拼图缩放对象的错误。

  • 【仅 Blender】隐藏了 Blender UI 中不相关的对象属性。

  • 【仅 Blender】修复了在 Blender 2.8 中打开具有旧版 GLSL 材质的场景时导出崩溃的问题。

结语

这是一个大版本更新!非常感谢我们积极主动的社区用户,在过去几周内下载和测试我们发布的 4 个预发布版本,并提出宝贵的建议。一如往常,期待您留下评论或论坛中提供的反馈和建议!

——Yuri Kovelenov 撰写

——FunJoy Tech 中文化