Like every year, June
is my favorite month of the year for several reasons, but WWDC is most likely the top one! Watching the opening Keynote
and the Platforms State Of The Union
sessions yesterday revealed a plethora of new features and even a few new frameworks. In this article, I am only going to focus on what’s new in the Graphics and Games track.
Let’s start with Metal, obviously. By far, the hottest and most anticipated feature is support for Tessellation which enables 3D apps and games to render more details by efficiently describing complex geometry to the GPU
. Another feature is Function Specialization which helps with creating a collection of functions particularly optimized to handle material and light combinations in a scene. Also new this year are the Resource Heaps and Memoryless Render Targets for finer-grained control of resource allocation and performance optimization in iOS
and tvOS
. Finally, the Metal System Traceis a macOS
-only feature that helps us analyzing the graphics pipeline by profiling the interaction between the CPU
and the GPU
, thus helping us finding performance optimization points for Metal-based apps.
The Model I/O framework brings support for the USD file format. The MDLMaterialPropertyGraphclass now makes it easier to support runtime procedural changes to models. Also, the MDLVoxelArrayclass now adds support for signed distance fields. Finally, you can now add assisted light probe placement through the MDLLightProbeIrradianceDataSource protocol.
The GameplayKit framework brings us Procedural noise generation that can be used to generate richer game worlds, more sophisticated textures, more realistic to camera movements. Next, Spatial partitioning lets us partition game world data so that it can be searched efficiently. Also, the new Monte Carlo strategist helps us model games where exhaustive computation of possible moves is difficult. The new decision tree API can enhance our game-building AI when adopting decision-tree learning to generalize behavior based on data mining of logged player actions.
The ReplayKit framework introduces support for tvOS and for broadcasting so we can broadcast recorded media through a third-party site.
The SceneKit framework introduces a new Physically Based Rendering system that empowers us to create more realistic results with simpler asset authoring. Also, the new HDR features and effects help us creating even more realism.
The SpriteKit framework introduces a new tilemap solution to support square, hexagonal, and isometric tilemaps. The Xcode editor also provides support for organizing the tiles and the tilemap.
The Accelerate framework introduces support for quadrature
(integral calculus), basic functions for constructing neural networks, and geometric predicate functions to test for object intersections.
The Core Image framework now allows us to insert custom processing into a Core Image
filter graph. Core Image
kernel code can now request a specific output pixel format. Finally, Core Image
adds five new filters to the existing filter collection.
Stay tuned for more news, and have a great WWDC
!