کتاب Metal by Tutorials, 3rd Edition: Beginning Game Engine Development With Metal (Metal بوسیله آموزش، ویرایش سوم، شروع توسعه موتور بازی با Metal) یک منبع کامل و کاربردی برای آموزش Metal جهت ایجاد بازیهای رایانهای است.
در ادامه مقدمهای از کتاب Metal by Tutorials را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Metal by Tutorials:
به Metal by Tutorials خوش آمدید!
Metal یک رابط برنامهنویسی کاربردی (API) یکپارچه، سطح پایین و کم سربار برای واحد پردازش گرافیکی یا GPU است. این یکپارچه است زیرا هم برای گرافیک سه بعدی و هم برای پارادایم های محاسبات موازی داده اعمال میشود. Metal یک API سطح پایین است زیرا دسترسی تقریبا مستقیم به GPU را برای برنامهنویسان فراهم میکند. در نهایت، Metal یک API کم سربار است زیرا هزینه زمان اجرا را با چند رشته و پیش کامپایل کردن منابع کاهش میدهد.
اما فراتر از تعریف فنی، Metal مناسبترین راه برای استفاده از قدرت پردازش موازی GPU برای تجسم دادهها یا حل چالشهای عددی است. همچنین برای استفاده برای یادگیری ماشینی، پردازش تصویر/ویدئو یا همانطور که کتاب Metal by Tutorials توضیح میدهد، رندر گرافیکی طراحی شده است.
درباره کتاب Metal by Tutorials
کتاب Metal by Tutorials شما را با برنامهنویسی گرافیکی سطح پایین در Metal – چارچوب اپل برای برنامهنویسی در واحد پردازش گرافیکی (GPU) آشنا میکند.
با پیشرفت در کتاب Metal by Tutorials، بسیاری از اصول اولیه ساخت موتور بازی را خواهید آموخت و به تدریج موتور خود را کنار هم قرار میدهید. هنگامی که موتور بازی شما کامل شد، میتوانید صحنههای سه بعدی را کنار هم قرار دهید و بازیهای سهبعدی ساده خود را برنامه ریزی کنید. از آنجا که شما موتور بازی سه بعدی خود را از ابتدا ساختهاید، میتوانید هر جنبه ای از آنچه را که روی صفحه نمایش خود میبینید شخصی سازی کنید.
Metal چگونه زنده شد؟
از لحاظ تاریخی، شما دو انتخاب برای استفاده از قدرت پردازنده گرافیکی داشتید: OpenGL و DirectX فقط ویندوز. در سال 2013، AMD، فروشنده GPU، پروژه Mantle را در تلاش برای اصلاح APIهای GPU و ارائه جایگزینی برای Direct3D (که بخشی از DirectX است) و OpenGL معرفی کرد.
AMD اولین شرکتی بود که یک API کم سربار واقعی برای دسترسی سطح پایین به GPU ایجاد کرد. Mantle قول داده بود که بتواند تا 9 برابر بیشتر از APIهای مشابه، فراخوانهای ترسیمی (تعداد اشیاء کشیده شده به صفحه) ایجاد کند و همچنین صفهای دستوری ناهمزمان را معرفی کرد تا حجم کاری گرافیکی و محاسباتی به صورت موازی اجرا شود. متأسفانه، پروژه قبل از تبدیل شدن به یک API اصلی خاتمه یافت.
Metal در کنفرانس جهانی توسعه دهندگان (WWDC) در 2 ژوئن 2014 معرفی شد و در ابتدا فقط بر روی A7 یا پردازندههای گرافیکی جدیدتر در دسترس قرار گرفت. اپل یک زبان جدید برای برنامه ریزی GPU به طور مستقیم از طریق توابع سایه زن ایجاد کرد. این زبان سایه Metal (MSL) بر اساس مشخصات C++11 است. یک سال بعد در WWDC 2015، اپل دو فریم فریم Metalی را معرفی کرد: MetalKit و Metal Performance Shaders (MPS). در سال 2018، MPS اولین حضور تماشایی خود را به عنوان یک شتاب دهنده Ray Tracing انجام داد.
API همچنان به تکامل خود ادامه میدهد تا با ویژگیهای هیجان انگیز Apple GPUS جدید طراحی شده توسط اپل کار کند. Metal 2 پشتیبانی از واقعیت مجازی (VR)، واقعیت افزوده (AR) و یادگیری ماشینی تسریع شده (ML) را در میان بسیاری از ویژگیهای جدید، از جمله بلوکهای تصویر، سایهزنی کاشیها و اشتراکگذاری گروههای نخی اضافه میکند. MSL نیز در پاییز 2017 به نسخه 2.0 به روز شد و اکنون بر اساس مشخصات C++14 است.
چرا از Metal استفاده میکنید؟
Metal یک API گرافیکی درجه یک است. این بدان معناست که Metal میتواند خطوط لوله گرافیکی و به طور خاص موتورهای بازی مانند موارد زیر را تقویت کند:
- Unity و Unreal Engine: دو موتور بازی بین سکویی پیشرو امروزه برای برنامه نویسان بازی که طیف وسیعی از دستگاههای کنسول، دسکتاپ و موبایل را هدف قرار میدهند، ایده آل هستند. با این حال، این موتورها همیشه با ویژگیهای جدید متال همگام نبوده اند. به عنوان مثال، Unity اعلام کرد که Tessellation بر روی iOS قرار است در سال 2018 منتشر شود، علیرغم اینکه در WWDC 2016 به صورت زنده نمایش داده شد. اگر از پیشرفتهای پیشرفته Metalی استفاده میکنید، همیشه نمیتوانید به موتورهای شخص ثالث وابسته باشید.
- Divinity – Original Sin 2: استودیو Larian از نزدیک با اپل همکاری کرد تا بازی شگفتانگیز AAA خود را با استفاده از متال و سختافزار GPU اپل به iPad بیاورد. این واقعا یک تجربه بصری خیره کننده است.
- The Witness: این بازی پازل برنده جایزه دارای یک موتور سفارشی است که روی Metal اجرا میشود. با بهرهگیری از Metal، نسخه آیپد به اندازه نسخه دسکتاپ خیرهکننده است و برای طرفداران بازیهای پازلی بسیار توصیه میشود.
- بسیاری دیگر: از عناوین قابل توجه بازی مانند Hitman، BioShock، Deus Ex، Mafia، Starcraft، World of Warcraft، Fortnite، Unreal Tournament، Batman و حتی Minecraft محبوب.
اما متال به دنیای بازی محدود نمیشود. برنامههای زیادی وجود دارند که از شتاب GPU برای پردازش تصویر و ویدئو بهره میبرند:
- Procreate: برنامه کاربردی برای طراحی، نقاشی و تصویرسازی. از زمان تبدیل به Metal، چهار برابر سریعتر از قبل اجرا میشود.
- Pixelmator: یک برنامه مبتنی بر Metal که ابزارهای اعوجاج تصویر را ارائه میدهد. در واقع، آنها توانستند یک موتور رنگ آمیزی جدید و فناوری ترکیب رنگ پویا را که توسط Metal 2 طراحی شده بود، پیادهسازی کنند.
- Affinity Photo: در iPad موجود است. به گفته سازنده Serif، “استفاده از Metal به کاربران اجازه میدهد تا به راحتی بر روی عکسهای بزرگ و با وضوح فوقالعاده بالا یا ترکیببندیهای پیچیده با هزاران لایه کار کنند.”
Metal و به ویژه فریم فریم MPS در حوزه یادگیری ماشینی و عمیق در شبکههای عصبی کانولوشنال بسیار مفید است. اپل یک برنامه کاربردی یادگیری ماشینی در WWDC 2016 ارائه کرد که قدرت CNN ها را در تشخیص تصویر با دقت بالا نشان داد.
چه زمانی باید از Metal استفاده کرد؟
پردازندههای گرافیکی به کلاس خاصی از محاسبات تعلق دارند که طبق طبقهبندی فلین، دادههای چندگانه تک دستورالعمل (SIMD) را بیان میکند. به سادگی، GPU ها پردازندههایی هستند که برای توان عملیاتی بهینهسازی شده اند (چه مقدار داده را میتوان در یک واحد زمان پردازش کرد)، در حالی که CPU ها برای تأخیر بهینه شدهاند (زمان لازم برای پردازش یک واحد داده). اکثر برنامهها به صورت سریال اجرا میشوند: ورودی دریافت میکنند، آن را پردازش میکنند، خروجی ارائه میدهند و سپس چرخه تکرار میشود.
این چرخهها گاهی اوقات وظایف محاسباتی فشردهای را انجام میدهند، مانند ضرب ماتریس بزرگ، که پردازش سریال زمان زیادی را به پردازندهها میبرد، حتی به صورت چند رشته ای روی تعداد انگشت شماری از هستهها.
در مقابل، پردازندههای گرافیکی صدها یا حتی هزاران هسته دارند که کوچکتر و حافظه کمتری نسبت به هستههای CPU دارند، اما محاسبات ریاضی موازی سریع انجام میدهند.
زمانی که Metal را انتخاب کنید:
- شما میخواهید مدلهای سه بعدی را تا حد امکان کارآمد ارائه دهید.
- شما میخواهید بازی شما سبک منحصر به فرد خود را داشته باشد، شاید با نورپردازی و سایههای سفارشی.
- مانند پردازش تصاویر و ویدئو، فرآیندهای داده فشرده مانند محاسبه و تغییر رنگ هر پیکسل روی صفحه نمایش در هر فریم را انجام خواهید داد.
- شما مشکلات عددی بزرگی دارید، مانند شبیهسازیهای علمی، که میتوانید آنها را به زیرمسائل مستقل تقسیم کنید تا به صورت موازی پردازش شوند.
- شما باید چندین مجموعه داده بزرگ را به صورت موازی پردازش کنید، مانند زمانی که مدلهایی را برای یادگیری عمیق آموزش میدهید.
کتاب Metal by Tutorials برای چه کسانی است؟
کتاب Metal by Tutorials برای توسعهدهندگان سوئیفت متوسط است که علاقهمند به یادگیری گرافیکهای سه بعدی یا به دست آوردن درک عمیق تر از نحوه کار موتورهای بازی هستند. اگر Swift را نمیشناسید، همچنان میتوانید آن را دنبال کنید، زیرا تمام دستورالعملهای کد در کتاب Metal by Tutorials گنجانده شده است. شما دانش کلی گرافیک را به دست خواهید آورد، اما اگر ابتدا مبانی سوئیفت را پوشش دهید، کمتر گیجکننده خواهد بود.
بیشتر بخوانید: کتاب Swift Apprentice
مقدار کمی دانش ++C نیز مفید خواهد بود. زبان متال شیدر که هنگام نوشتن توابع سایه زن کارت گرافیک استفاده میکنید بر پایه ++C است. اما، دوباره، تمام کدهایی که نیاز دارید در کتاب گنجانده شده است.
چگونه کتاب Metal by Tutorials را بخوانیم؟
اگر در توسعه iOS/macOS یا Metal مبتدی هستید، باید کتاب Metal by Tutorials را از اول تا آخر بخوانید.
اگر یک توسعهدهنده پیشرفته هستید یا قبلاً با Metal تجربه دارید، میتوانید از فصلی به فصل دیگر رد شوید یا از این کتاب به عنوان مرجع استفاده کنید.
سرفصلهای کتاب Metal by Tutorials:
- Metal by Tutorials
- Book License
- Before You Begin
- What You Need
- Book Source Code & Forums
- Dedications
- About the Team
- Acknowledgments
- Introduction
- Section I: Beginning Metal
- Chapter 1: Hello, Metal!
- Chapter 2: 3D Models
- Chapter 3: The Rendering Pipeline
- Chapter 4: The Vertex Function
- Chapter 5: 3D Transformations
- Chapter 6: Coordinate Spaces
- Chapter 7: The Fragment Function
- Chapter 8: Textures
- Chapter 9: Navigating a 3D Scene
- Chapter 10: Lighting Fundamentals
- Section II: Intermediate Metal
- Chapter 11: Maps & Materials
- Chapter 12: Render Passes
- Chapter 13: Shadows
- Chapter 14: Deferred Rendering
- Chapter 15: Tile-Based Deferred Rendering
- Chapter 16: GPU Compute Programming
- Chapter 17: Particle Systems
- Chapter 18: Particle Behavior
- Section III: Advanced Metal
- Chapter 19: Tessellation & Terrains
- Chapter 20: Fragment Post-Processing
- Chapter 21: Imaged-Based Lighting
- Chapter 22: Reflection & Refraction
- Chapter 23: Animation
- Chapter 24: Character Animation
- Chapter 25: Managing Resources
- Chapter 26: GPU-Driven Rendering
- Section IV: Ray Tracing
- Chapter 27: Rendering With Rays
- Chapter 28: Advanced Shadows
- Chapter 29: Advanced Lighting
- Chapter 30: Metal Performance Shaders
- Chapter 31: Performance Optimization
- Chapter 32: Best Practices
- Conclusion
جهت دانلود کتاب Metal by Tutorials میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.