美文网首页
动画与光线-让幻像变现实

动画与光线-让幻像变现实

作者: iOSDevLog | 来源:发表于2019-02-28 17:23 被阅读4次

在本节中,我们将主要使用我们的3D模型。让它看起来很漂亮!为了使您的3D模型看起来非常好,您基本上需要学习如何为其设置动画并使用场景照明。我们还将学习如何在屏幕上应用反射并放置阴影。

下载动画和照明

要学习本教程,您需要Xcode 10。您可以下载Final Xcode项目,以帮助您与自己的进度进行比较。

变换:旋转

用于演示的最常见和最简单的动画是通过Y轴旋转3D对象。你几乎到处都能看到这种动画。为此,请声明一个新函数,将其放在渲染器方法上方并将其命名为:rotateObject。应用旋转操作,您会注意到该度量采用Radian。我认为使用度数要容易得多,因此Xcode有一个内置的公式可以将Degrees转换为Radian。然后,声明一个新动作以重复循环中的最后一个动作。

func rotateObject() -> SCNAction {
    let action = SCNAction.rotateBy(x: 0, y: CGFloat(GLKMathDegreesToRadians(360)), z: 0, duration: 3)
    let repeatAction = SCNAction.repeatForever(action)
    return repeatAction
}

现在,调用iPhoneNode并使其运行旋转动作。运行模拟器,你会看到一个漂亮的旋转iPhone X.

iPhoneNode.runAction(rotateObject())

世界原点

你可能会注意到iPhone正在以一种奇怪的方式旋转。转到iPhoneX.scn并单击设备。您会注意到World Origin位于左下方,这就是为什么我们的手机在这一点上转动的原因。要解决这个问题,让我们将World Origin定位在3D模型的中间。在iPhoneNode定位后放置代码。

let min = iPhoneNode.boundingBox.min
let max = iPhoneNode.boundingBox.max
iPhoneNode.pivot = SCNMatrix4MakeTranslation(
    min.x + (max.x - min.x)/2,
    min.y + (max.y - min.y)/2,
    min.z + (max.z - min.z)/2)

在手机上运行模拟器,3D模型应该正常工作。

WorldOrigin

缩放

当您跟踪图像时,3D模型突然出现,我们可以添加更平滑的过渡,例如缩放动画。声明动画师及其用于缩放iPhoneNode的动作。

let animator = SCNAction.scale(by: 10, duration: 3)

iPhoneNode.runAction(animator)

通过这样做,您的模型将大10倍。您需要在iPhoneX.scn中更改手机缩放并将其除以10 。(0.004)您也可以将此操作声明为函数,并在每次检测到图像时调用它。

灯光

最后一步是使用灯光并应用完美的阴影。应用良好的照明真的很难,你需要玩很多。转到ViewController.swift,让我们将一些光照应用到场景中。在sceneView声明中,启用默认光照以及更新光照方法。

sceneView.autoenablesDefaultLighting = true
sceneView.automaticallyUpdatesLighting = true

在下面,配置声明,启用光估计功能。

configuration.isLightEstimationEnabled = true
镜面之后的地球

聚光灯

iPhoneX.scn中,您将看到一个聚光灯。这个场景带有一个灯光,但如果您使用自己的3D模型,则需要通过拖放对象库中的光源来自己定位。这是聚光灯的设置。

别忘了启用投射阴影!

SettingsLight

LightNode

让我们声明并搜索我们场景中的聚光灯。将新的lightNode添加到我们的planeNode。

let iPhoneLight = iPhoneScene.rootNode.childNodes.filter({ $0.name == "spot" }).first!

planeNode.addChildNode(iPhoneLight)

结论

如果您运行该应用程序,您将在您的环境中看到3D模型的精美演示。灯光和阴影产生了巨大的差异。我希望你喜欢这一节。我们学会了如何在应用良好照明的同时缩放和制作模型动画。

原文: https://designcode.io/arkit-lighting

相关文章

  • 动画与光线-让幻像变现实

    在本节中,我们将主要使用我们的3D模型。让它看起来很漂亮!为了使您的3D模型看起来非常好,您基本上需要学习如何为其...

  • 转瞬即逝的

    #《the mostfleeting》-Balmorhea # 我尝试用语言绘制幻像, 那里树海漫漫,光线不很热烈...

  • 书话:读书是另一种意义上的探险

    前不久看了一部电影,叫《夏洛特的网》,动画片,很好看。有时候觉得动画片比现实人物好看,可爱的表情与动作,让人...

  • 浅谈VR、AR、MR

    现实即幻像,只是非常稳定罢了-----阿尔伯特·爱因斯坦 我感觉,VR就是造梦的行业。 虚拟现实(VR),首先我们...

  • 美丽心灵:心无畏惧,步履不停

    《美丽心灵》,讲述了一个伟大的经济学家的故事,也描绘了一个与自我抗争的故事。 纳什饱受精神分裂的困扰,现实与幻像,...

  • 如何在 Lightroom 中修饰阳光光线教程

    有些拍摄的后期照片为了实现太阳的光线照射效果,需要对阳光光线进行修饰,但不当的后期修改,那么让照片变的非常糟糕,互...

  • 38规律与幻像

    历史是要用历史的视角去看的, 现在的事情也会是未来的历史, 所以, 面对现实也要用历史的视角去看。 要顺应历史大趋...

  • 游宜春仰山寺

    禅机千变终归一,浮云田耕皆佛理。 幻像五彩目视空,水能平物无高低。

  • 如果爱17性别塑造

    一个是在幻像中建立和认同自我,一个是在幻像中不停的追求完满的自我,而在实际的现实世界中,是没有这个完美完满充分的自...

  • 聊聊动画

    前言 动画主要的目的是让UI的变动变柔和,增强用户体验。 优秀的动画让用户感觉不到页面的跳转、感觉一切操作很自然。...

网友评论

      本文标题:动画与光线-让幻像变现实

      本文链接:https://www.haomeiwen.com/subject/mvlkuqtx.html