3d设计能够扎下根来,并将迅速从“有也不错”发展成可以令设计师(和企业)脱颖而出的前沿技能。adobe于17年推出了3d工具adobe长期以来vr设备就有着不凡的发展速度,相信未来也是一如既往,势如破竹。
dimension
cc,帮助用户轻松将2d设计转换为完整的真实世界可视化。dimension的强大之处在于,它不是直接针对3d内容创作者,而是面向平面设计师。艺术家现在能够在photoshop,illustrator和indesign中创建2d设计,并能将它们变成逼真环境中的3d模型。dimension的主要目标是普及3d,向任何人开放,并简化从产品设计到合成摄影的工作流程。
然而,有时候设计师希望分享的不仅仅只是2d渲染。如果他们希望分享完整的3d作品并供他人探索和评论,这时又该如何是好呢?或者他们可能希望将其发布到上并供大众消费。在这样的情况下,如果能拥有一个3d发布功能不是很好吗?adobe的michael
bond日前分享了他们是如何为dimension构建3d发布功能,以下是映维的具体整理:
1. 通过gltf将dimension项目发布至络
在dimension 2.0中,adobe增加了一项允许用户导出3d场景的功能,这样任何有用户都可以通过链接直接在web浏览器中进行查看。我们可以通过gltf进行实现。
gltf这种文件格式旨在实现运行时之间3d
asset的高效传输。由于多种原因,它非常适合呈现dimension场景的实时版本。gltf
2.0规范包括一个基于物理(pbr)的材质系统,并且与adobe
dimension所使用的材质系统非常接近,而gltf旨在支持快速加载。另外,对 谷歌
draco几何压缩等技术的支持使得adobe能够将通常非常大的场景缩小至更适合下载的大小。
然而,将dimension项目导出至gltf并非没有问题。用户希望场景的实时版本看起来能够尽可能接近他们在dimension中所看到的一切,而且gltf规范中缺少可能实现这一点的数个关键功能。作为gltf
working group的成员,adobe通过帮助定义规范的新扩展来解决上述难点,并确保dimension用户能够以最高质量导出其项目。
2. 照明
第一个缺失的功能是,核心gltf规范不包括任何环境信息,如场景照明。个中原因是gltf
asset最常是加载到3d引擎内运行的现有场景中,因此能够从中继承照明信息。这样做的好处在于不会增加文件大小。然而,这意味着浏览者总会看到与asset创建者略有不同的元素。对于dimension的用户群,这是一个关键问题。在dimension中构建场景的设计师可能对将作品导出至游戏或虚拟世界不感兴趣。他们分享艺术作品的目的可能只是单纯希望观众准确地理解其创作意图。
dimension中包含两种用于忠实表示场景的照明类型。第一种是“阳光”,它不仅模拟直接来自太阳的光线,同时包括“云量”因子,可用于模拟太阳光的云层反射。adobe帮助设计和规定了
khr_lights_punctual扩展
(包括定向灯,聚光灯和点光源)。“阳光”可以利用定向灯进行最佳建模,因此这个扩展完成了dimension照明要求的第一块拼图。“云量”因子不包含在扩展中,因为它特定于太阳的使用情况,而非一般的定向灯。除非在gltf中存在另一种描述这种效果的方法,我们现在只有将gltf中的自定义标记中添加有关云量的信息,并只能用于adobe的gltf查看器。
dimension的第二种照明类型是基于图像的照明(image-based
lighting;ibl)。这种类型的照明基本上是使用图像(通常是hdr)来从每个角度存储场景的照明。接下来,图像将用于渲染在对象表面漫射和反射的光线。当然,实际情况要复杂得多。当光线在表面反射时,其路径可能会因微瑕疵而受到略微或多次的干扰,从而导致材质看起来粗糙或光滑。无法实时有效地计算这一点,因此通常的解决方案是预先过滤ibl图像以获得各个级别的材质粗糙度,并存储可在渲染最终场景时使用的一系列图像。adobe与
微软 的babylon.js团队进行了合作,共同定义了 ext_lights_image_based扩展
,而现在已经可以从dimension导出这种数据。尽管由此产生的照明看起来并不像是高质量的dimension渲染,但未来对照明输出的优化将有助于进一步缩小保真度的差距。
左:由dimension渲染的2d图像;右:在web浏览器中查看时的全交互式3d gltf
3. 透明度
尽管gltf
2.0的pbr材质系统与dimension所使用的adobe standard
material非常吻合,但它缺乏的一个元素是透明度,其仅支持简单的alpha覆盖值。虽然我们可以用来令材质透明,但只有在光线既不折射也不反射的情况下才能实现。一个典型的例子是纱布这样的松散面料。但是,诸如塑料或玻璃等更加普遍的材质涉及与光线更复杂的相互作用。例如,为了渲染令人信服的玻璃,当光线达到并穿过其表面时,光线将折射和反射。另外,部分光可以被吸收或散射,从而有效地改变其到达观察者眼睛的颜色。对于dimension的用户来说,渲染玻璃,塑料和各种液体等常见材质非常重要,因此能够在gltf中重新创建它们十分有必要。
为此,adobe定义了
adobe_materials_thin_transparency扩展
,从而能够处理最简单的光学透明情况。这个扩展仅涉及细薄材质,并且为了简单起见排除了动态散射效应。adobe表示他们将继续与gltf社区合作,将这项功能纳入未来的规范之中。
4. cameras
dimension提供了一个名为bookmarks(书签)的功能,可用于保存场景的特定视图。对于每个书签,设计人员可以配置camera属性,如fov,焦点和景深。由于gltf
camera仅包含fov,因此adobe定义了另一个扩展以包含更高级的camera信息。
5. the dimension web viewer
对于设计师从dimension发布他们的场景,其可以通过creative
cloud web界面进行查看。接下来,设计人员可以与任何人分享链接,后者可以通过adobe dimension web
viewer来在web浏览器中浏览。这个查看器是用babylonjs进行构建,尽管它可以加载和显示任何gltf(或glb),但它尤其擅长预览dimension项目。这是因为dimension项目可以包含并非真正属于gltf等通用场景格式的功能,因此adobe最终将它们作为自定义数据包含在已发布文件中,仅供dimension查看器使用。这些功能包括静态背景和不可见的接地面等等,可用于将对象阴影和反射与背景图像混合。
除了重新创建你在dimension中看到的内容之外,查看器当前的功能不多。项目所有的camera书签均可在查看器中使用,这样设计人员就能轻松设置和展示特定镜头,并提供评论面板以接受反馈。adobe同时表示,他们十分关注用户的反馈,任何人都可通过这个
feedback portal 留下自己的意见。
6. 写在最后
adobe正致力于继续优化dimension的导出管道,并与gltf社区合作来推进规范和支持用户的需求。在接下来的数个月里,大家可以期待即将登陆这个页查看器的功能与优化。