重新访问SceneKit的第2部分:灯光,动作,网格

我对正在使用的3D模型非常满意,现在可以在现场(SCN)文件中完成更多工作。

我希望能够在某个时候将SCN文件与ARKit一起使用。 苹果在创建用于增强现实的虚拟内容方面有一些指导原则。

使用SceneKit提供3D虚拟内容| Apple开发人员文档

由于ARKit会自动将SceneKit空间与现实世界相匹配,因此放置一个虚拟对象使其看起来像…

developer.apple.com

是否创建场景(SCN)文件的多个变体? 实际上,我能够使用场景文件引用来使项目更易于维护。 这是Scene Kit中非常强大的功能(Sprite Kit也支持引用)。 您可以将场景拆分为多个文件。 几年来,使用情节提要文件的视图控制器已提供此功能。

您可以在媒体库表中查看场景,并将其拖到场景图窗口或主场景工具箱编辑器视图中。 您也可以从文件导航器中拖放SCN文件。

我会详细说明; 我有一个3D食物对象,并且想在以下情况下使用该模型:

  • 一个带有灯光的演示场景和一些动画,引用了chesee汉堡
  • 带有汉堡包的带有阴影纹理的平面的奶酪汉堡

最终,我创建了3个场景文件:

burger.scn-基本的汉堡场景文件

burger_arkit.scn —此文件使用其他3D元素引用burger.scn文件:以阴影纹理贴图作为材质的平面。

burger_dressed.scn-此文件引用burger.scn文件,并包括照明和SceneKit操作。

简要说明一下:Xcode中的SceneKit编辑器具有时间轴功能,可让您将动作应用于场景。 我添加了一个无限循环的旋转动作来不断旋转汉堡。 您可以完全在Scene Kit编辑器中设置复杂的动作,而无需编写任何代码。

我个人觉得很讨厌的一件事是,您不能只双击时间轴视图中的动作来编辑动作的值。 您可以在检查器的“属性”选项卡中编辑操作的设置(我会将其写在便笺上,以备将来参考)。

SCN动作

您最常使用动作来更改动作所附加的对象的结构和内容,但是您可以…

developer.apple.com

当我开始在穿着汉堡的场景文件中点亮场景时,我还需要编辑汉堡场景文件并调整一些材质设置。 默认的镜面反射设置使汉堡包反射光。 我将镜面反射值更改为黑色,以指示面包不真正反射光。 是的,我会在材质设置fast上有些松懈,这是我在使用各种3d引擎和框架时不断学习的东西。

高光

声明镜面反射阴影描述了材料直接反射到……的光的数量和颜色。

developer.apple.com

汉堡看起来更好,但正如您所看到的,肉饼看起来并不那么逼真。 理想情况下,我将与材料和照明专家合作。 汉堡肉饼网格可以使用法线贴图使它看起来更像真实的东西。

如果您想看一些很棒的实时3D渲染食物,请查看《最终幻想XV》。

《最终幻想XV》中的食物疯狂逼真

在2006年,视频游戏开发商Square Enix宣布了一款名为《最终幻想对决XIII》的游戏,旨在将其作为衍生产品……

www.eater.com

现在,基于物理的渲染(PBR)呢? 考虑到正在使用的芝士汉堡模型在Scene Kit中看起来不太现实-我想我现在将保留它。

2017年8月更新

Watch应用程式无法与Watch OS Beta搭配使用; 我很高兴地说,从Watch OS 4 beta 5开始,它又可以正常工作了。该项目还有其他调整项,可以使用SCN文件进行旋转汉堡的动作。

它位于GitHub的此分支中:

ManjitBedi / 3D-汉堡

3D-Burger –在iOS设备和Apple Watch上使用usng Scene Kit的示例

github.com