Verge3D 3.3 for Blender发布
28 七月, 2020 作者
Verge3D 3.3 for Blender发布
Verge3D中国

作为面向艺术家与设计师的WebGL开发套件,Verge3D一直在可用性和易用性角度做出改进与升级。

Verge3D 3.3 版显著加快了应用的加载速度及整体性能,引入了用拼图将Verge3D场景导出为glTF格式的方式,并实现了动态画布纹理。此版本还增加了一些新的拼图,改进了导出器插件的一致性,支持了Woocommerce的全局产品属性。请从下文中了解更多新增特性与性能改进。


加载速度

基于用户的关注,此版本我们将优化的重心放在优化加载效率方向。着色器编译通常是加载过程中的瓶颈,经过新版本对此执行的一系列优化,场景的加载速度有了显著地提升(部分场景可达3倍)。



这些优化措施包括:

  • 引入了并行着色器编译,(在着色器逐个编译之前)若存在KHR_parallel_shader_compile WebGL扩展,编译将更高效;
  • 优化了代表环境光的着色器;
  • 优化了与实时阴影有关的着色器;
  • 优化了材质着色器;
  • 重组了加载流程,整个加载过程更为平滑和快速;

其中一些优化嗨提高了Verge3D的渲染性能,尤其是在低端硬件或移动设备上。


glTF导出

现在可以以glTF格式导出对象、对象组或整个场景,可用.gltf或.glb(二进制)两种格式。

此拼图可用于保存应用中的配置好的物体。

为了获得最佳效果,以及创建可由第三方glTF查看器(如Microsoft Windows 10的默认glTF查看器)打开的标准glTF文件(不带Soft8Soft/Verge3D扩展名),我们建议您使用与glTF兼容的材质


摄影机补间轨迹

您现在可以在tween camera(摄影机补间)拼图中选择球形轨迹了。球形轨迹意味着摄影机将围绕中心轴,以插值距离作为半径,旋转到新位置。

当新的视点位于模型后面时,此功能尤其有用。对于轨道摄影机,球面轨迹更为自然,可以防止摄影机在移动途中与模型发生交叉现象。

另外,tween camera(摄影机补间)拼图现在可以使用附近物体的坐标,坐标可以用列表或向量方式提供给拼图。



画布纹理

HTML画布现在可以作为材质纹理使用了。可以使用新引入的HTML拼图create canvas elem来创建<canvas>元素,并如之前一样为材质指定纹理,即使用replace texture(替换纹理)拼图。

一旦创建好,画布即可通过JavaScript进行绘制。您可以在以应用名开头的js文件(your_app_name.js)的runCode() 功能更新画布。为此,请在此处使用拼图中指定的ID来检索画布纹理:

var canvasTex = v3d.puzzles.canvasTextures['my_canvas'];

之后,您可以按如下方式访问HTML画布元素:

var canvas = canvasTex.image;

您可以使用可用于在HTML画布上绘制的标准方法。例如,如下代码即在白色背景上画了一个蓝色的笑脸:

var ctx = canvas.getContext("2d");

ctx.fillStyle = 'white';
ctx.strokeStyle = 'blue';

ctx.fillRect(0, 0, canvas.width, canvas.height);

ctx.beginPath();
ctx.arc(75, 75, 50, 0, Math.PI * 2, true); // Outer circle
ctx.moveTo(110, 75);
ctx.arc(75, 75, 35, 0, Math.PI, false);  // Mouth (clockwise)
ctx.moveTo(65, 65);
ctx.arc(60, 65, 5, 0, Math.PI * 2, true);  // Left eye
ctx.moveTo(95, 65);
ctx.arc(90, 65, 5, 0, Math.PI * 2, true);  // Right eye
ctx.stroke(); 


最后,如果您希望更新在3D渲染中立即可见,则应该将画布纹理标记为动态:

canvasTex.needsUpdate = true;


Blender集成

为更新相关文档,我们审查了所有的Eevee节点,并修复了其中发现的一些问题:

  • 修复了Glass BSDF(玻璃BSDF)节点阴影的一些小问题。
  • Hue/Saturation(色相/饱和度)节点现在可以在设置 >1 或 <0 时正常工作。
  • Mapping(映射)节点现在支持非均匀比例。
  • Clamp(节点)Min(最小值)超过Max(最大值)时也可以正常运行。

当缺少世界材质时,保持灯光与场景中的设置一致。

Point(点光)Spot(聚光)灯光中支持了Custom Distance(自定义距离) 参数。

修复了曲线对象缺少材质时导致的导出器崩溃问题。

为以下节点优化了着色器代码:Diffuse BSDF, Glossy BSDF, Glass BSDF, Translucent BSDF, 和Refraction BSDF. 这样有助于提升整体性能并加快加载速度(见上文描述)。


拼图

将拼图库中的Misc(杂项)类重命名为了Advanced(高级),并在此类中新增wait promisepromise value拼图

可以使用这些拼图取回来自JavaScript promises 中检索的数据,这些数据由generate normal map(生成法线贴图)export glTF(导出glTF)拼图返回。

部署了新的Material(材质)拼图:get color(获取颜色)get value(获取值)先前可用的set color(设置颜色)set value(设置值)拼图在一起。

拼图get object transform(获取对象位移)现在可以使用列表同时检索三个坐标系信息。

这个选项可以用于直接为矢量拼图提供输出。


JavaScript

现在在JavaScript方法 Geometry.fromBufferGeometry() 中可以正常使用顶点色了。

新版提供了之前仅在企业版中提供的Verge3D运行时(run-time)变体v3d.module.js。这一方式修复了运行示例代码时遇到的大部分问题。

如果需要在JavaScript代码中导入声明,,可以使用此运行时。这个模块也简化了您在自己的编程项目中嵌入Verge3D代码的过程。


其他改进

在Verge3D WordPress插件中支持了WooCommerce的全局产品属性。

为3.2版本中引入的高级代码合并功能做了进一步的改进、加速和稳定性优化。

为引擎着色器代码做了一些代码清理和重构。

在稳定中做了各种小的改进,包括修复失效链接、缺失的媒体文件等。


故障修复

修复了应用管理器中与应用更新功能相关的一些错误,同时提高了更新的稳定性。

修复了退出应用时的内存泄漏错误。

修复了论坛中上报使用JavaScript为对象指定自定义材质时的崩溃问题

修复了论坛中上报的create environment(创建环境)拼图出现的翻转问题


立即升级

一如既往,在Verge3D最新发行版下载一文中获取最新预览版的百度盘分享链接吧!欢迎通过论坛、微信公众号、QQ群电子邮件提出建议与意见!


发布时间:2020年7月27日
下载地址:https://verge3d.funjoy.tech/get-verge3d