Metal By Tutorials Ray Wenderlich Update for IOS 13 Xcode 10 and Swift 5 - Programming Ebook


Download Programming Ebook

Thursday, December 6, 2018

Metal By Tutorials Ray Wenderlich Update for IOS 13 Xcode 10 and Swift 5

Metal By Tutorials
Metal By Tutorials

Book Details 
             TitleMetal By Tutorials Ray Wenderlich
         Author: Caroline Begbie and Marius Horga
     PublisherRazeware LLC
    Language: English
        SubjectSwift / Computers & Technology / Programming / Apple Programming
         Format: PDF, EPUB, Full Source code

Recently I bought a set of 10 books advanced IOS and Swift bundle by Ray Wenderlich. As you can see in the image above, which includes Metal By Tutorials Ray Wenderlich Update for IOS 13 Xcode 11 and Swift 5. And now I want to transfer it to you for $ 60 (10 books), All books are the latest version that supports swift 5 and have full source code.  I will share it for you for $ 60 Includes PDF, EPUB file and full source code, you can download on Google Drive. When book have new version, i will get it for you.

List books: 

1, Advanced Apple Debugging
2, Server Side Swift with Vapor
3, Push Notifications by Tutorials
4, Arkit books 
5, Data Structures and Algorithms in Swift
6, Realm Building Modern Swift Apps with Realm
7, RxSwift Reactive Programming with Swift
8, Metal by Tutorials
9, Machine Learning by Tutorials
10, Advanced iOS App Architecture

Please contact me by Email:

Thank you.

About this book

This book introduces you to low-level graphics programming in Metal — Apple’s framework for programming on the graphics processing unit (GPU). As you progress through this book, you’ll learn many of the fundamentals that go into making a game engine and gradually put together your own engine. Once your game engine is complete, you’ll be able to put together 3D scenes and program your own simple 3D games. Because you’ll have built your 3D game engine from scratch, you’ll be able to customize every aspect of what you see on your screen.

 How did Metal come to life?

Historically, you had two choices to take advantage of the power of the GPU: OpenGL and the Windows-only DirectX. In 2013, the GPU vendor AMD announced the Mantle project in an effort to revamp GPU APIs and come up with an alternative to Direct3D (which is part of DirectX) and OpenGL. AMD were the first to create a true low- overhead API for low-level access to the GPU. Mantle promised to be able to generate up to 9 times more draw calls (the number of objects drawn to the screen) than similar APIs and also introduced asynchronous command queues so that graphics and compute workloads could be run in parallel. Unfortunately, the project was terminated before it could become a mainstream API.

Metal was announced at the Worldwide Developers Conference (WWDC) on June 2, 2014 and was initially made available only on A7 or newer GPUs. Apple created a new language to program the GPU directly via shader functions. This is the Metal Shading Language (MSL) based on the C++11 specification. A year later at WWDC 2015, Apple announced two Metal sub-frameworks: MetalKit and Metal Performance Shaders (MPS).

The API has continued to evolve, and WWDC 2017 introduced an exciting new version of the API: Metal 2. Metal 2 adds support for Virtual Reality (VR), Augmented Reality (AR) and accelerated machine learning (ML), among many new features. Fall 2017 brought new updates to Metal including image blocks, tile shading and threadgroup sharing, which are available on iOS devices powered by the A11 Bionic chip, which comes with the first GPU ever designed in-house by Apple. MSL was also updated to version 2.0 in Fall 2017 and is now based on the C++14 specification.

Why would you use Metal?

Metal is a top-notch graphics API. That means Metal can empower graphics pipelines and, more specifically, game engines such as the following:

Unity and Unreal Engine: The two leading cross-platform game engines today are ideal for game programmers who target a range of console, desktop and mobile devices. However, these engines haven’t always kept pace with new features in Metal. For example, Unity announced that tessellation on iOS was to be released in 2018, despite it being demonstrated live at WWDC 2016. If you want your game to use cutting-edge Metal developments, you can’t always depend on third-party engines.
  • The Witness: This award-winning puzzle game has a custom engine that runs on top of Metal. By taking advantage of Metal, the iPad version is every bit as stunning as the desktop version and is highly recommended for puzzle game fans.
  • Many Others: From notable game titles such as Hitman, BioShock, Deus Ex, Mafia, Starcraft, World of Warcraft, Fortnite, Unreal Tournament, Batman and even the beloved Minecraft.
    But Metal isn’t limited to the world of gaming. There are many apps that benefit from GPU acceleration for image and video processing:
  • Procreate: An app for sketching, painting and illustrating. Since converting to Metal, it runs four times faster than it did before.
  • Astropad: An app for drawing using Apple Pencil. The most notable improvements since adding Metal show a 30% increase over wifi and two times faster overall performance on most Macs.
  • Pixelmator: A Metal-based app that provides image distortion tools. In fact, they were able to implement a new painting engine and dynamic paint blending technology powered by Metal 2.
  • Affinity Photo: A recent release, available on the iPad. According to the developer Serif, “Using Metal allows users to work easily on large, super high-resolution photographs, or complex compositions with potentially thousands of layers.”
Metal, and in particular, the MPS sub-framework, is incredibly useful in the realm of machine and deep learning on convolutional neural networks. Apple presented a practical machine learning application at WWDC 2016 that demonstrated the power of CNNs in high-precision image recognition.

Why should you use Metal?

GPUs belong to a special class of computation that Flynn’s taxonomy terms Single Instruction Multiple Data (SIMD). Simply, GPUs are processors that are optimized for throughput (how much data can be processed in one unit of time), while CPUs are optimized for latency (how much time it takes a single unit of data to be processed). Most programs execute serially: they receive input, process it, provide output and then the cycle repeats.

Those cycles sometimes perform computationally-intensive tasks, such as large matrix multiplication, which would take CPUs a lot of time process serially, even in a multithreaded manner on a handful of cores. In contrast, GPUs have hundreds or even thousands of cores which are smaller and have less memory than CPU cores, but perform fast parallel mathematical calculations.

Choose Metal when:
  • You want to render 3D models as efficiently as possible.
  • You want your game to have its own unique style, perhaps with custom lighting and shading.
  • You will be performing intensive data processes, such as calculating and changing the color of each pixel on the screen every frame, as you would when processing images and video.
  • You have large numerical problems, such as scientific simulations, that you can partition into independent sub-problems to be processed in parallel.
  • You need to process multiple large datasets in parallel, such as when you train models for deep learning. 

No comments:

Post a Comment