WWDC2017回顾

来源:互联网 发布:笔记本跑分软件 编辑:程序博客网 时间:2024/06/12 22:45

在WWDC上苹果都说了啥,先看ZEALER的文章 。

下面重点说ARVR:

AR:苹果随iOS11正式发布ATKit,虽然演示效果很牛X,但是对于开发者来说好不好用又是另一回事。就好像当初发布Metal API,虽然比OpenGL ES好用且效率高,但是国内能搞的人毕竟太少。对于AR来说,挑战之一:如何方便快速的将FBX导入到应用中并能读取其中的动画。挑战之二:如何制作出逼真的Shader(如反射,折射,次表面散射等等),对于ARKit,开发者如果想开发出真实的效果是不是还需要用Metal写底层的Shader代码?如果是这样,估计很多开发者会止步。。。。。。挑战之三:目前大多数AR开发者都是用Unity引擎,很多对iOS开发并不是很熟悉,能否提供一套官方的插件给引擎比较关键(依据苹果的尿性,估计不会) 。如果不提供插件,那就必须将Unity工程导出后进一步编辑,这个估计又会难倒一大批开发者。下面粘贴出官方文档给出一些案例代码。

let cubeNode = SCNNode(geometry: SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0))cubeNode.position = SCNVector3(0, 0, -0.2) // SceneKit/AR coordinates are in meterssceneView.scene.rootNode.addChildNode(cubeNode)

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {    // This visualization covers only detected planes.    guard let planeAnchor = anchor as? ARPlaneAnchor else { return }    // Create a SceneKit plane to visualize the node using its position and extent.    let plane = SCNPlane(width: CGFloat(planeAnchor.extent.x), height: CGFloat(planeAnchor.extent.z))    let planeNode = SCNNode(geometry: plane)    planeNode.position = SCNVector3Make(planeAnchor.center.x, 0, planeAnchor.center.z)    // SCNPlanes are vertically oriented in their local coordinate space.    // Rotate it to match the horizontal orientation of the ARPlaneAnchor.    planeNode.transform = SCNMatrix4MakeRotation(-Float.pi / 2, 1, 0, 0)    // ARKit owns the node corresponding to the anchor, so make the plane a child node.    node.addChildNode(planeNode)}


VR:苹果虽然从软件和硬件环境都开始支持VR硬件,但如果我们理性的分析一下。首先硬件成本,能够开发VR的显卡本身不便宜,再加上同等配置下,苹果和Windows的性价比肯定是Windows更高。然后,市场占有量上,Mac与Windows相比,市场占有量差距太大。几乎只有新款的Mac才支持VR,貌似还要外接硬件。最后开发工具上,由于一些原因,很多引擎和第三方开发工具对Windows的支持普遍好于Mac,关键还是要看苹果的整合能力啦。

总体上来说,苹果开始发力VR AR是好事,但是个人觉得没那么容易,毕竟起步晚,成本高,市场容量不乐观。