iOhYes Retired

iOhYes

A podcast by iOS developers for iOS developers, delivering news, tips, and rants for professional iOS/Mac developers, with something for enterprise and indie developers alike.

Hosted by Darryl Thomas and John Sextro.



← Previous Episode   |   Next Episode →

54: Episode 54 - Who wants to support Android anyway?

January 30, 2015 at 9:00AM • 1 hour 3 minutes • Wiki Entry

Tweet Shoutouts

The Discussion

SceneKit

For a discussion of Apple’s Metal Framework, see Episode 44

Here you go, Ilea, this one’s for you…

  • What is SceneKit?
    • Objective-C framework for building apps and games that use 3D graphics
    • High-performance rendering engine
    • High-level, descriptive API
    • Supports animation based on the Core Animation framework with defined animatable properties
    • Abstracts away the rendering algorithms used to display a scene, meaning you don’t need to worry about things like:
      • Object ordering
      • Culling
      • Shaders (though you can write your own if you like)
  • What is SceneKit not?
    • A game engine (you must provide your own logic)
    • An escape from linear algebra
    • Cross-platform (but who wants to support Android anyway?)
    • A fully-featured substitute for solutions like Unity3D
  • Why use SceneKit?
    • Very easy way to get your feet wet with 3D graphics
    • Suitable for simple games
    • Rapid implementation of visualization apps
  • Major features
    • Available on Mac OS X and iOS
    • Integrated inspection (model viewer, material editor, particle editor) and debugging in Xcode
    • COLLADA importing
    • Supports geometries, materials, lights and cameras
    • Animatable properties
    • LoD substitution (level-of-detail, allowing for variable geometry complexity)
    • Actions (allows for animation triggers, sound effects, etc)
    • Skinning and Deformations
    • Static/dynamic shadowing
    • Physics, including joints and inverse kinematics
    • Particles
    • Ray casting/hit testing
    • Custom OpenGL shader programs
    • JavaScriptCore bridging
    • SpriteKit overlays for performant 2D UI elements that don’t require an additional compositing pass
  • The basics (iOS-specific)
    • Assets are contained within a Scene Assets container in your Xcode project
    • Xcode performs optimizations at build-time (up-axis correction, vertex interleaving, PVRTC image format favoring, etc)
    • Scenes can be imported from COLLADA (in Xcode. The dae file is converted to a bplist [retaining the .dae extension] before it is put on the device) or un-archived from plists.
    • Scenes consist of a graph of nodes.
      • Root node: defines the world’s coordinate space
      • sub-Nodes: populate the world with visible content by attaching:
        • Cameras
        • Lights
        • Geometries
    • Scenes can be built-up (or modified after load) programmatically.
    • sub-Nodes from other scenes can be added to a scene, but a root node must not be added to another scene.
    • Important classes
      • SCNView - a view that displays SceneKit content
      • SCNScene - The container for all SceneKit content
      • SCNNode - The basic building block of a scene
      • SCNGeometry - A three-dimensional object that can be attached to a node. Also known as a mesh or model. SceneKit has several built-in primitives that can be used, or custom meshes can be imported or built from vertex data. Surface appearance is defined by materials attached to the geometry.
      • SCNMaterial - A reusable definition of surface appearance properties for an object
      • SCNLight - A light source that can be attached to a node, providing shading in the rendered scene
      • SCNCamera - A virtual camera that can be attached to a node, providing a point of view for rendering a scene.

Open-Source Project of the Week

  • iOS-8-SceneKit-Globe-Test - @schwa iOS 8 Scene Kit (swift!) project showing a spinning (earth) globe with diffuse, ambient, specular and normal materials. Also cloud layer. Yum.

Picks

John

Darryl 

Alternative show title suggestions

  • Shader writing
  • Lots of polygons
  • bones and joints
  • inverse kinematics
  • draw call, draw call, draw call
  • root node for the world
  • particle emitters
  • hold on to the root node
  • root node
  • the maths
  • skin is a reserved
  • not a geologist
  • camera bob
  • the one with the monkeys