Metal Programming Guide
Home > Computing and Information Technology > Graphical and digital media applications > Metal Programming Guide: Tutorial and Reference via Swift
Metal Programming Guide: Tutorial and Reference via Swift

Metal Programming Guide: Tutorial and Reference via Swift

|
     0     
5
4
3
2
1




International Edition


About the Book

Master Metal: The Next-Generation Graphics and GPU Programming Platform for Apple Developers   Metal enables Apple developers to maximize performance in demanding tasks like 3D graphics, games, scientific programming, visualization, and GPU-accelerated machine learning. Metal® Programming Guide is the authoritative, practical guide to Metal for all iOS programmers who are interested in graphics programming but don’t know where to start.   Pioneering Apple developer Janie Clayton covers everything from basic draw calls to advanced parallel computing, combining easy-to-understand conceptual explanations with well-tested Swift 4/Xcode 9 sample code (available for download at GitHub).   Clayton introduces the essential Metal, graphics, and math concepts every graphics programmer needs to know. She also discusses key graphics-specific libraries, concepts, and Metal Classes, presenting techniques and examples you’ll find valuable for both graphics and data processing. Clayton also provides coverage of the Metal Compute Pipeline, demonstrating practical GPU programming applications ranging from image processing to neural networking. Quickly get a basic Metal project running Work with Metal resources and memory management Learn how shaders are compiled and accessed by the CPU Program both 2D and 3D graphics with Metal Import 3D models and assets from Blender, Maya, and other programs Apply imported textures to model objects Use multipass rendering to efficiently implement computationally expensive techniques Leverage tessellation to reduce mesh detail Use the GPU for a wide spectrum of general-purpose computing applications Get started with the Metal Performance Shaders Framework

Table of Contents:
Preface xvii Acknowledgments xxiii About the Author xxv   Part I: Metal Basics 1   Chapter 1: What Is Metal? 3 History of Graphics APIs 4 Metal: The New Way to Do Graphics on Apple Platforms 6 Metal in Context: How Metal Complements and Supports Other Platform Frameworks 10 Summary 10   Chapter 2: Overview of Rendering and Raster Graphics 13 Representing the GPU 14 Preparing Data for the GPU 16 Summary 24   Chapter 3: Your First Metal Application (Hello, Triangle!) 25 Creating a Metal Application in Xcode (without Using a Template) 25 Creating a MTLDevice 28 Creating a CAMetalLayer 28 Creating a Vertex Buffer 29 A First Look at Shaders 31 Libraries, Functions, and Pipeline States 34 Introducing Render Passes 35 Introducing MetalKit Features and MTKView 39 Summary 40   Part II: Rendering and Graphics 41   Chapter 4: Essential Mathematics for Graphics 43 Language of Mathematics 43 Coordinate Spaces and Moving among Them 44 Points, Vectors, and Vector Operations 46 Normalization and Unit Vectors 49 Pythagorean Theorem 50 Sine, Cosine, and Tangent 52 Matrices and Matrix Operations 53 Transformations: Scale, Translation, Rotation, Projection 55 Summary 60   Chapter 5: Introduction to Shaders 61 Metal Shading Language Overview 61 Setting Up Shaders 63 Your First Shader: Pass Through 63 Writing Your First Shader 68 Uniform Buffer 74 Summary 82   Chapter 6: Metal Resources and Memory Management 83 Introduction to Resources in Metal 83 The Argument Table: Mapping between Shader Parameters and Resources 84 Buffers 85 Resource Options: Storage Mode, Cache Mode, Purgeability 86 Preparing Data for the Vertex Shader and Vertex Descriptors 87 Copying to and from Buffers 88 Introduction to Textures 89 Copying to and from Textures 93 Compressed Texture Support 94 The Blit Command Encoder 94 Generating Mipmaps 96 Summary 97   Chapter 7: Libraries, Functions, and Pipeline States 99 What Are Libraries and Functions? 99 The Metal Two-Phase Compilation Architecture 100 Creating Libraries at Compile Time and Runtime 101 Command Encoders 103 Render Pipeline Descriptors and State 104 Pipeline Reflection 105 Summary 105   Chapter 8: 2D Drawing 107 Metal Graphics Rendering Pipeline 107 Sample Project: Build a Star 108 Metal Primitive Types 113 Responding to MTKViewDelegate Methods 115 Retrieving a Drawable 115 Creating a Command Buffer 116 Creating a Command Encoder 117 Fixed-Function State on the Command Encoder 119 Passing Data to Shaders 121 Issuing Draw Calls 124 Scheduling and Enqueuing Command Buffers 124 Summary 126   Chapter 9: Introduction to 3D Drawing 127 Model-View-Projection Transformations 127 Clip Space and the View Frustum 131 Shading Models 136 Basic Lighting 138 Animation 140 Summary 141   Chapter 10: Advanced 3D Drawing 143 Constructing a Hierarchical World with Scene Graphs 143 Instanced Rendering 145 Summary 155   Chapter 11: Interfacing with Model I/O 157 What Are Model Files? 158 Importing a Model 161 Meshes and Submeshes 163 Render State Pipeline 164 Asset Initialization 165 Render State Setup and Drawing 166 Exporting Files 167 Summary 168   Chapter 12: Texturing and Sampling 169 Texture Mapping 169 Mipmapping 171 Sampling 172 Precompiled Sampler States 175 Passing Textures and Samplers to Graphics Functions 177 Summary 182   Chapter 13: Multipass Rendering Techniques 183 When (and Why) to Use Multipass Rendering 183 Metal Render Pass Descriptors 184 Creating and Managing Render Targets 185 Revisiting Load-Store Actions 188 Summary 190   Chapter 14: Geometry Unleashed: Tessellation in Metal 191 Removing Bottlenecks by Using Tessellation 191 Catmull-Clark Subdivision 192 Per-Patch Tessellation Factors 195 Metal Tessellation Fixed-Function Pipeline 197 Setting Up a Tessellation Kernel 201 Post-Tessellation Vertex Function 202 Draw Patches 204 Summary 208   Part III: Data Parallel Programming 209   Chapter 15: The Metal Compute Pipeline 211 Introduction to GPU Programming 212 Concurrency versus Parallelism 213 Using GPUs for General Computation 216 Kernel Functions 217 The Metal Compute Command Encoder 218 Issuing Grids of Work 220 Finding Your Way in the Grid inside the Kernel Function 223 Reading and Writing Resources in Kernel Functions 223 Summary 224   Chapter 16: Image Processing in Metal 225 Introduction to Image Processing 225 Creating a Metal Texture 227 Desaturation Kernels 230 Convolution and Dispatching a 2D Grid 232 Blur Effects 235 Selecting an Optimal Threadgroup Size 238 Summary 239   Chapter 17: Machine Vision 241 How a Computer Sees the World 241 Noise and Smoothing 242 Sobel Edge Detection 244 Thresholding 245 Histograms 246 Facial Recognition 246 Summary 253   Chapter 18: Metal Performance Shaders Framework 255 Overview of Metal Performance Shaders Framework 255 Image Processing with the MPS Framework 257 Matrix Operations with MPS 267 Summary 269   Chapter 19: Neural Network Concepts 271 Overview of Neural Networks 271 Neural Network Components 272 Neural Network Architecture 281 Summary 283   Chapter 20: Convolutional Neural Networks 285 History of Convolutional Neural Networks 285 MPSImage 289 Convolutional Neural Network Kernels 290 Convolution Data Source 296 Neural Network Graph 298 Summary 299   Index 301


Best Sellers


Product Details
  • ISBN-13: 9780134668949
  • Publisher: Pearson Education (US)
  • Publisher Imprint: Addison Wesley
  • Height: 246 mm
  • No of Pages: 352
  • Spine Width: 23 mm
  • Weight: 860 gr
  • ISBN-10: 0134668944
  • Publisher Date: 18 Jan 2018
  • Binding: Paperback
  • Language: English
  • Returnable: Y
  • Sub Title: Tutorial and Reference via Swift
  • Width: 189 mm


Similar Products

Add Photo
Add Photo

Customer Reviews

REVIEWS      0     
Click Here To Be The First to Review this Product
Metal Programming Guide: Tutorial and Reference via Swift
Pearson Education (US) -
Metal Programming Guide: Tutorial and Reference via Swift
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

Metal Programming Guide: Tutorial and Reference via Swift

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals

    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!