## New Course: Beginning Metal

Caroline Begbie

Today I’m happy to announce my brand new course on raywenderlich.com: Beginning Metal!

Metal is Apple’s low-level GPU access API. It’s the underlying framework for all of Apple’s graphics and game APIs such as Core Animation, Core Graphics and SpriteKit. And we’re able to hook into Metal when we need to render 3D graphics or do any heavy parallel computation.

This is a course for complete beginners to Metal. It’s perfect if you want to gain a better understanding of how 2D and 3D graphics actually works under-the-hood in iOS.

It’s also fully up-to-date with Swift 3, Xcode 8, and iOS 10!

Here’s an overview of what’s inside:

Videos 1-2: 3D Graphics Basics. You’ll start by learning what the GPU does and what the graphics pipeline is.

Videos 3-4: Hello, Metal! You’ll then move on to the Hello World of graphics – rendering triangles.

```struct Constants {
float animateBy;
};

vertex float4 vertex_shader(const device packed_float3 *vertices [[buffer(0)]],
constant Constants &constants [[buffer(1)]],
uint vertexId [[vertex_id]]) {
float4 position = float4(vertices[vertexId], 1);
position.x += constants.animateBy;
return position;
}
```

Video 5: Metal Shaders. Shader functions are little programs that run on a GPU. You’ll learn about the Metal Shading Language, how shaders fit into the pipeline, and how to position and color vertices.

Video 6: Texturing. You’ll learn how to map textures to your model’s vertices to make your graphics start looking great!

Videos 7-8: 2D to 3D Matrix Transformations. Probably the most complex aspect to 3D is understanding how transforms work, and how amazing matrices are. You’ll learn how to set up a series of matrix transformations to move your app from 2D to 3D.

Videos 9-10: Model I/O. Just last year, Apple introduced Model I/O. You’ll learn how to use this to import models from Blender or other 3D modeling apps with ease.

Videos 11-12: Lighting. You’ll learn how to implement lighting with a simple shading method called Phong, using ambient, diffuse and specular lighting.

Videos 13-15: Making a Simple Game Engine. By this point you’ll have learned enough to put it all together to create a simple 3D app, so you’ll learn how to create a simple game engine and make a Breakout clone!

## Where To Go From Here?

Want to check out the course? The first two parts are available now for free:

The rest of the course is for raywenderlich.com subscribers only. Here’s how you can get access:

• If you are a raywenderlich.com subscriber: You can access to the first three parts of Beginning Metal today, and the rest will be coming out in the next few weeks.
• If you are not subscribed yet: What are you waiting for – subscribe now to get access to our new Metal course and our entire catalog of over 500 videos.

We hope you enjoy, and stay tuned for more new Swift 3 courses and updates to come! :]

Caroline Begbie

I’m an indie iOS developer. When I’m not developing, I’m playing around with 2D and 3D animation software, or learning Arduino and electronics.
In my past I’ve taught the elderly how to use their computers, done marionette shows for pre-schools, and created accounting and stock control systems for mining companies.

... 27 total!

... 84 total!

... 44 total!

... 16 total!

... 4 total!

... 32 total!

... 8 total!

... 8 total!

... 4 total!