趣文网 > 作文大全

AR内容开发的四个关键字:建模 材质 空间 照明

2020-11-19 06:10:01
相关推荐

文章相关引用及参考:映维网

本文来自《Escape The Room—AR》开发团队

(映维网 2018年05月16日)作为一名iOS开发者,苹果在去年夏天发布ARKit是我迷上AR的缘起,而我当时马上就开始学习有关这方面的一切知识。我的AR之旅使得我开始通过Blender学习3D艺术,利用Unity探索游戏开发。借助这些技能,我开始制作AR体验《Escape The Room—AR》,而这款作品即将要登陆iOS设备。我花费了一定的时间来摸索出我需要学习的知识,而我一直在想,如果当时有人给我指点一下方向那该有多好。所以,我希望通过这篇文章向大家介绍4个可以帮助你加速AR/VR开发的概念。

1. 建模

3D建模是你在3D中看到的对象的基础。海盗游戏中的宝箱?这是模拟物。射击游戏中的枪支?这是模拟物。游戏中的大多数物理对象都是3D模型。3D模型的结构由“网格”确定。你以前可能已经看过这样的照片:

这就是3D“网格”。网格由顶点,边缘和面组成。通过操控这些元素,3D美工可以创建任何形状。皮克斯电影中的角色?它们都是由网格组成。

对于AR开发,你可能不希望自行制作模型。事实上,你并不需要这样做。网上存在大量的免费3D模型,如TurboSquid,或者如果你是Unity用户,Asset Store将是一个合适的选择。

1.1 建模的关键点

你的用户在AR或VR中的大部分时间都是与模型交互。无论是按下按钮,浏览一个对象,或者是欣赏美丽的风景,它们都是模型。模型不仅只是由网格组成。模型通常是搭配以“材质”。我将在下一节介绍材质,但首先:

1.2 如何制作自己的模型

模型是通过3D建模软件制作而成,如Blender,Maya和Cinema4D都属于热门的工具。

如果你希望原创的模型,而不说网上参差不齐的模型,你可能有意学习如何制作属于自己的模型。对此,我的个人建议是Blender。Blender是一款免费的开源3D软件包。它同时拥有一个优秀的社区和大量的教程。我个人认为,随着AR和VR开始蓬勃发展并达到大众市场的渗透率,Blender将继续成长并发展为3D开发的主要产品。其他3D创作平台非常昂贵,比如游戏行业标准之一的Maya每年需要支付数千美元的授权费用…所以我宁愿选择确实优秀,而且免费的Blender社区。

现在我们已经有了网格,下一步是美化我们的对象,而这需要材质。

2. 材质

没有材质的网格就如同裸身相见。

如何令它更好看呢?我们需要材质。材质允许对象搭配以我们所设想的照明,颜色和发射。如果你有一张椅子的网格,你可以通过相应的材质将其变成一种木制椅子,或者铁制椅子。材质可以为你的AR体验增添光彩。

2.1 如何制作材质

制作材质取决于你如何开发应用。Unity的材质系统不同于Unreal。Blender材质的开发方式不同于Unity。如果你是用Swift在Xcode中开发,材质将不同于上述工具。

关于材质我可以说上一天,所以我会尽量精简内容。在本文中我将介绍PBR材质。PBR指基于物理的渲染,是将不同图像整合在一起的总和,它们将以我们想要的方式渲染对象。每个图像都有其要改变的一个特定方面。这些图像通常被称为“贴图”。这些贴图或图像通常是指纹理。本文由很多专业术语,但你会习惯的。

材质的“Albedo”贴图改变对象的颜色。你希望它看起来像是木制对象吗?只需添加看起来像是木色的albedo,你的材质将变成如下所示:

“Normal”贴图则用于确定材质是否存在任何凹凸。

然后还有很多用于高光,反射,以及其他更为复杂元素的贴图。与寻找免费模型的地方一样,你可以在那里找到免费的材质。如果你希望自行制作材质,你只需要你为对象构思的形状的图像。你可以订阅为你提供大量超高质量PBR图像的服务,从而开始制作优秀的材质。我使用的而且非常喜欢的工具是Megascans。

上图是文章开头那个空白网格的最终作品。我采用了normal贴图和roughness贴图来实现对象上的划痕。我利用albedo贴图改变了对象的颜色,然后在材质上使用发光属性来令外星文字发光。材质是一种艺术,而且非常有趣。你可以一直捣鼓,直到你创作出酷炫的对象。

3. 3D空间

本节很短,但很重要。在AR/VR中进行开发不同于网络开发或移动开发,因为用户可以在3D空间中与数字对象进行交互。在AR中,用户可以在3D空间移动,而3D空间的原点通常是用于确定用户开始会话的位置。

对于2D移动应用,用户面对的只是一个平面,然后你为他们构建这个界面即可。对于AR,他们可以自由移动。引擎之间的坐标空间有所不同,有些引擎使用(X,Y,Z),有些则使用(X,Z,Y)。在本文中,我们将使用(X,Y,Z),X是向前,Y是向上,Z则是向右。如果用户从(0,0,0)坐标开始,他们有可能会立即转身,所以你设置在(5,0,0)位置的前方对象可能不是用户正在关注的内容。

你需要掌握引擎的Camera属性。在Unity中,你可以轻易将Camera移动至用户的注视点方向,然后根据旋转和定制放置对象。对于AR,你需要灵活处理,在编写代码时需要考虑用户所处的多个潜在环境。这更多的是关于设计vs开发的讨论,但可以为你节省大量的时间。

对于《Escape The Room》,我一开始的设想是让用户扫描他们的地板,然后对象将自动呈现在检测到的水平表面上。但我发现做起来比想象中要难很多。因为用户可以面向不同的方向,平面大小会改变,对象会过于靠近墙壁,从而变得无法触及。我最终是让用户将对象直接放置在周围的地板。

VR则有点不同,因为对象已经放置在场景之中,但你仍然需要考用户在第一次是如何在3D空间中移动,以及他们将会体验到什么内容。

记住,目前我们仍处于XR的早期,所以向用户清晰地讲解如何在3D空间中移动是关键。他们最终所做的事情往往会超出你的想象,所以设计体验时要有一定的灵活性。

4. 照明

照明就像是餐桌上的礼仪。如果一切顺利,你将不会注意到这一点,但如果出现不符合的行为,你马上就会皱起眉头。AR和VR在这方面存在一定的差异,因为VR中的照明由开发者掌握,但AR则取决于用户所在环境的照明情况。这对AR而言是一个重大的设计挑战,所以你需要解决这个问题才能实现优秀的体验。

在设计AR体验时,第一件事情是告诉用户它们的照明环境非常糟糕。如果摄像头难以检测环境,你会从ARKit中获得提示,这时你的应该告诉用户这一点。如果你不告诉用户,他们不会知道哪里出了问题,如果你让用户提供额外的照明,或者更换一个更光亮的房间,你可以为他们带来整体更优秀的体验。

照明是在AR中检测平面的关键,这可以帮助你设置体验。照明同时可以令体验感觉真实,我以往曾谈过这一点,在本文中我将简单地说明其中的关键要点。

下图是糟糕照明下的对象:

它看上去很假,而且跟环境不搭。调整一下照明条件,你会令对象变得更好看:

你可以为场景添加自己的照明,但需要小心。添加照明会影响设备的性能,尤其是对移动设备而言。Unity中的反射探针可以令金属对象看起来更真实。对于如何利用照明和反射来提高对象的真实感,我计划在未来进行详细的探讨。

文章《AR内容开发的四个关键字:建模、材质、空间、照明》首发于 映维网。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

托物言志的作文 梅花 成功需要什么作文 三年级人物作文300字 职业规划作文800字 全国三卷高考作文 从那以后作文 游北京作文400字 描写打雪仗的作文 滑雪作文200字 故乡作文800字高中 换个角度看问题作文 以时间为话题的作文 我的城市我的家作文 西游记作文600字 社会实践作文800字 做时间的主人作文 冬景作文500字 关于玩雪的作文 myfather英语作文 有你真好作文开头结尾 写邓稼先的作文 高考语文作文开头结尾 四年级上册第二单元作文 给我一双翅膀作文 我长大了作文800字 我的家族日语作文 学习的目的作文 故乡的春节作文 什么真了不起作文 走过那个拐角作文