دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 2nd edition
نویسندگان: Dickinson. Chris
سری:
ISBN (شابک) : 9781788392365, 1788472977
ناشر: Packt Publishing
سال نشر: 2017
تعداد صفحات: 368
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 8 مگابایت
کلمات کلیدی مربوط به کتاب بهینه سازی بازی Unity 2017: بازیها--تخت،بازیهای اینترنتی--برنامهنویسی،کتابهای الکترونیکی،بازیهای اینترنتی - برنامهنویسی، بازیها - تخته
در صورت تبدیل فایل کتاب Unity 2017 Game Optimization به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب بهینه سازی بازی Unity 2017 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
تسلط بر یک سری تکنیکها و روشهای کدنویسی افزایشدهنده عملکرد که به آنها کمک میکند عملکرد برنامههای Unity3D خود را بهبود بخشند درباره این کتاب ویژگیها و تکنیکهایی را برای بهینهسازی چرخههای CPU Unity Engine، استفاده از حافظه و توان پردازش گرافیکی هر برنامه کاربردی کشف کنید. مشکلات عملکرد پروژه های واقعیت مجازی خود بهترین شیوه ها را برای سازماندهی پروژه بیاموزید تا از طریق گردش کار بهبودیافته در زمان صرفه جویی کنید. عملکرد بازی خود را به حداکثر برسانند. آشنایی با زبان سی شارپ ضروری است. آنچه یاد خواهید گرفت از Unity Profiler برای یافتن گلوگاه ها در هر جایی از برنامه خود استفاده کنید و نحوه حل آنها را بیابید. بهترین روش ها برای برنامه نویسی C# برای جلوگیری از مشکلات رایج ایجاد کنید درک کاملی از خط لوله رندر ایجاد کنید و عملکرد آن را با کاهش تماس های قرعه کشی و به حداکثر رساندن آن افزایش دهید. اجتناب از گلوگاههای نرخ پر شدن، سایهزنها را بهگونهای تقویت کنید که برای اکثر توسعهدهندگان قابل دسترسی باشد، بهینهسازی آنها از طریق ترفندهای عملکردی ظریف و در عین حال مؤثر، صحنههای خود را تا حد ممکن پویا نگه دارید با استفاده حداکثری از موتور فیزیک، داراییهای هنری خود را سازماندهی، فیلتر و فشرده کنید تا به حداکثر برسانید. عملکرد با حفظ کیفیت بالا کشف انواع مختلف مشکلات عملکردی که برای پروژههای واقعیت مجازی حیاتی هستند و نحوه مقابله با آنها از Mono Framework و C# برای پیادهسازی پیشرفتهای سطح پایین استفاده کنید که استفاده از حافظه را به حداکثر میرساند و از جمعآوری زباله جلوگیری میکند. بهترین روشها برای پروژه را بشناسید. سازمان برای صرفه جویی در زمان از طریق گردش کار بهبود یافته In Detail Unity یک موتور توسعه بازی عالی است. یونیتی از طریق مجموعه ویژگی های عظیم و سهولت استفاده، کمک می کند تا برخی از بهترین فناوری پردازش و رندر را در دست علاقه مندان و حرفه ای ها قرار دهد. این کتاب به شما نشان میدهد که چگونه بازیهای خود را با نسخه اخیر Unity 2017 به پرواز درآورید و نشان میدهد که لازم نیست عملکرد بالا به بازیهایی با بزرگترین تیمها و بودجه محدود شود. از آنجایی که هیچ چیز سریعتر از تجربه کاربری ضعیف گیمرها را از بازی دور نمیکند، کتاب با توضیح نحوه استفاده از Unity Profiler برای شناسایی مشکلات شروع میشود. شما یاد خواهید گرفت که چگونه از کرونومترها، تایمرها و روش های ثبت گزارش برای تشخیص مشکل استفاده کنید. سپس تکنیک هایی را برای بهبود عملکرد از طریق شیوه های برنامه نویسی بهتر بررسی خواهید کرد. با حرکت به جلو، در مورد Unity یاد خواهید گرفت...؛ جلد -- حق چاپ -- اعتبار -- درباره نویسنده -- درباره بازبین -- www.PacktPub.com -- نظرات مشتریان -- فهرست مطالب -- پیشگفتار -- فصل 1: پیگیری مشکلات عملکرد -- Unity Profiler -- راه اندازی Profiler -- ویرایشگر یا نمونه های مستقل -- اتصال به یک نمونه WebGL -- اتصال از راه دور به دستگاه iOS -- اتصال از راه دور به دستگاه Android -- ویرایشگر نمایه -- پنجره نمایه -- کنترلهای نمایه -- افزودن نمایه -- ضبط -- نمایه عمیق -- ویرایشگر نمایه -- پخش کننده متصل -- پاک کردن -- بارگذاری -- ذخیره -- انتخاب قاب -- نمای خط زمانی -- نمای تفکیک کنترلها -- نمای تفکیک -- ناحیه استفاده از پردازنده -- ناحیه استفاده از پردازنده گرافیکی -- منطقه رندر -- ناحیه حافظه -- ناحیه صوتی -- مناطق سه بعدی فیزیک و دو بعدی فیزیک -- مناطق پیام های شبکه و عملیات شبکه -- ناحیه ویدیو -- قسمت های UI و جزئیات UI -- منطقه جهانی روشنایی -- بهترین رویکردها برای تجزیه و تحلیل عملکرد -- تأیید حضور اسکریپت -- تأیید تعداد اسکریپت -- تأیید ترتیب رویدادها -- به حداقل رساندن تغییرات کد مداوم - - به حداقل رساندن حواسپرتیهای داخلی - به حداقل رساندن حواسپرتیهای خارجی - پروفایل هدفمند بخشهای کد - کنترل اسکریپت پروفایلر - پروفایل سفارشی CPU - نظرات نهایی در مورد پروفایلسازی و تجزیه و تحلیل - درک نمایهگر - کاهش نویز - تمرکز بر روی موضوع - - خلاصه - فصل 2: استراتژیهای اسکریپت - به دست آوردن مولفهها با استفاده از سریعترین روش - حذف تعاریف پاسخ به تماس خالی - ارجاعات کامپوننت حافظه پنهان - اشتراکگذاری خروجی محاسبه - بهروزرسانی، کوروتینها و InvokeRepeating - بررسیهای سریعتر مرجع تهی GameObject - از بازیابی ویژگیهای رشته از GameObjects اجتناب کنید - از ساختارهای داده مناسب استفاده کنید - از تغییر مجدد تبدیلها در زمان اجرا اجتناب کنید - ذخیره تغییرات Transform را در نظر بگیرید - از Find() و SendMessage() در زمان اجرا اجتناب کنید.
Master a series of performance-enhancing coding techniques and methods that help them improve the performance of their Unity3D applications About This Book Discover features and techniques to optimize Unity Engine's CPU cycles, memory usage, and the GPU throughput of any application Explore multiple techniques to solve performance issues with your VR projects Learn the best practices for project organization to save time through an improved workflow Who This Book Is For This book is intended for intermediate and advanced Unity developers who have experience with most of Unity's feature-set, and who want to maximize the performance of their game. Familiarity with the C# language will be needed. What You Will Learn Use the Unity Profiler to find bottlenecks anywhere in your application, and discover how to resolve them Implement best practices for C# scripting to avoid common pitfalls Develop a solid understanding of the rendering pipeline, and maximize its performance by reducing draw calls and avoiding fill rate bottlenecks Enhance shaders in a way that is accessible to most developers, optimizing them through subtle yet effective performance tweaks Keep your scenes as dynamic as possible by making the most of the Physics engine Organize, filter, and compress your art assets to maximize performance while maintaining high quality Discover different kinds of performance problems that are critical for VR projects and how to tackle them Use the Mono Framework and C# to implement low-level enhancements that maximize memory usage and avoid garbage collection Get to know the best practices for project organization to save time through an improved workflow In Detail Unity is an awesome game development engine. Through its massive feature-set and ease-of-use, Unity helps put some of the best processing and rendering technology in the hands of hobbyists and professionals alike. This book shows you how to make your games fly with the recent version of Unity 2017, and demonstrates that high performance does not need to be limited to games with the biggest teams and budgets. Since nothing turns gamers away from a game faster than a poor user-experience, the book starts by explaining how to use the Unity Profiler to detect problems. You will learn how to use stopwatches, timers and logging methods to diagnose the problem. You will then explore techniques to improve performance through better programming practices. Moving on, you will then learn about Unity' ...;Cover -- Copyright -- Credits -- About the Author -- About the Reviewers -- www.PacktPub.com -- Customer Feedback -- Table of Contents -- Preface -- Chapter 1: Pursuing Performance Problems -- The Unity Profiler -- Launching the Profiler -- Editor or standalone instances -- Connecting to a WebGL instance -- Remote connection to an iOS device -- Remote connection to an Android device -- Editor profiling -- The Profiler window -- Profiler controls -- Add Profiler -- Record -- Deep Profile -- Profile Editor -- Connected Player -- Clear -- Load -- Save -- Frame Selection -- Timeline View -- Breakdown View Controls -- Breakdown View -- The CPU Usage Area -- The GPU Usage Area -- The Rendering Area -- The Memory Area -- The Audio Area -- The Physics 3D and Physics 2D Areas -- The Network Messages and Network Operations Areas -- The Video Area -- The UI and UI Details Areas -- The Global Illumination Area -- Best approaches to performance analysis -- Verifying script presence -- Verifying script count -- Verifying the order of events -- Minimizing ongoing code changes -- Minimizing internal distractions -- Minimizing external distractions -- Targeted profiling of code segments -- Profiler script control -- Custom CPU Profiling -- Final thoughts on Profiling and Analysis -- Understanding the Profiler -- Reducing noise -- Focusing on the issue -- Summary -- Chapter 2: Scripting Strategies -- Obtain Components using the fastest method -- Remove empty callback definitions -- Cache Component references -- Share calculation output -- Update, Coroutines, and InvokeRepeating -- Faster GameObject null reference checks -- Avoid retrieving string properties from GameObjects -- Use appropriate data structures -- Avoid re-parenting Transforms at runtime -- Consider caching Transform changes -- Avoid Find() and SendMessage() at runtime.
Cover --
Copyright --
Credits --
About the Author --
About the Reviewers --
www.PacktPub.com --
Customer Feedback --
Table of Contents --
Preface --
Chapter 1: Pursuing Performance Problems --
The Unity Profiler --
Launching the Profiler --
Editor or standalone instances --
Connecting to a WebGL instance --
Remote connection to an iOS device --
Remote connection to an Android device --
Editor profiling --
The Profiler window --
Profiler controls --
Add Profiler --
Record --
Deep Profile --
Profile Editor --
Connected Player --
Clear --
Load --
Save --
Frame Selection --
Timeline View --
Breakdown View Controls --
Breakdown View --
The CPU Usage Area --
The GPU Usage Area --
The Rendering Area --
The Memory Area --
The Audio Area --
The Physics 3D and Physics 2D Areas --
The Network Messages and Network Operations Areas --
The Video Area --
The UI and UI Details Areas --
The Global Illumination Area --
Best approaches to performance analysis --
Verifying script presence --
Verifying script count --
Verifying the order of events --
Minimizing ongoing code changes --
Minimizing internal distractions --
Minimizing external distractions --
Targeted profiling of code segments --
Profiler script control --
Custom CPU Profiling --
Final thoughts on Profiling and Analysis --
Understanding the Profiler --
Reducing noise --
Focusing on the issue --
Summary --
Chapter 2: Scripting Strategies --
Obtain Components using the fastest method --
Remove empty callback definitions --
Cache Component references --
Share calculation output --
Update, Coroutines, and InvokeRepeating --
Faster GameObject null reference checks --
Avoid retrieving string properties from GameObjects --
Use appropriate data structures --
Avoid re-parenting Transforms at runtime --
Consider caching Transform changes --
Avoid Find() and SendMessage() at runtime. Assigning references to pre-existing objects --
Static Classes --
Singleton Components --
A global Messaging System --
A globally accessible object --
Registration --
Message processing --
Implementing the Messaging System --
Message queuing and processing --
Implementing custom messages --
Message sending --
Message registration --
Message cleanup --
Wrapping up the Messaging System --
Disable unused scripts and objects --
Disabling objects by visibility --
Disabling objects by distance --
Consider using distance-squared over distance --
Minimize Deserialization behavior --
Reduce serialized object size --
Load serialized objects asynchronously --
Keep previously loaded serialized objects in memory --
Move common data into ScriptableObjects --
Load scenes additively and asynchronously --
Create a custom Update() layer --
Summary --
Chapter 3: The Benefits of Batching --
Draw Calls --
Materials and Shaders --
The Frame Debugger --
Dynamic Batching --
Vertex attributes --
Mesh scaling --
Dynamic Batching summary --
Static Batching --
The Static flag --
Memory requirements --
Material references --
Static Batching caveats --
Edit Mode debugging of Static Batching --
Instantiating static meshes at runtime --
Static Batching summary --
Summary --
Chapter 4: Kickstart Your Art --
Audio --
Importing audio files --
Loading audio files --
Encoding formats and quality levels --
Audio performance enhancements --
Minimize active Audio Source count --
Enable Force to Mono for 3D sounds --
Resample to lower frequencies --
Consider all compression formats --
Beware of streaming --
Apply Filter Effects through Mixer Groups to reduce duplication --
Use remote content streaming responsibly --
Consider Audio Module files for background music --
Texture files --
Texture compression formats --
Texture performance enhancements --
Reduce texture file size. Use Mip Maps wisely --
Manage resolution downscaling externally --
Adjust Anisotropic Filtering levels --
Consider Atlasing --
Adjust compression rates for non-square textures --
Sparse Textures --
Procedural Materials --
Asynchronous Texture Uploading --
Mesh and animation files --
Reduce polygon count --
Tweak Mesh Compression --
Use Read-Write Enabled appropriately --
Consider baked animations --
Combine meshes --
Asset Bundles and Resources --
Summary --
Chapter 5: Faster Physics --
Physics Engine internals --
Physics and time --
Maximum Allowed Timestep --
Physics updates and runtime changes --
Static Colliders and Dynamic Colliders --
Collision detection --
Collider types --
The Collision Matrix --
Rigidbody active and sleeping states --
Ray and object casting --
Debugging Physics --
Physics performance optimizations --
Scene setup --
Scaling --
Positioning --
Mass --
Use Static Colliders appropriately --
Use Trigger Volumes responsibly --
Optimize the Collision Matrix --
Prefer Discrete collision detection --
Modify the Fixed Update frequency --
Adjust the Maximum Allowed Timestep --
Minimize Raycasting and bounding-volume checks --
Avoid complex Mesh Colliders --
Use simpler primitives --
Use simpler Mesh Colliders --
Avoid complex physics Components --
Let physics objects sleep --
Modify the Solver Iteration Count --
Optimize Ragdolls --
Reduce Joints and Colliders --
Avoid inter-Ragdoll collisions --
Replace, deactivate or remove inactive Ragdolls --
Know when to use physics --
Summary --
Chapter 6 : Dynamic Graphics --
The Rendering Pipeline --
The GPU Front End --
The GPU Back End --
Fill Rate --
Overdraw --
Memory Bandwidth --
Lighting and Shadowing --
Forward Rendering --
Deferred Rendering --
Vertex Lit Shading (legacy) --
Global Illumination --
Multithreaded Rendering --
Low-level rendering APIs --
Detecting performance issues. Profiling rendering issues --
Brute-force testing --
Rendering performance enhancements --
Enable/Disable GPU Skinning --
Reduce geometric complexity --
Reduce Tessellation --
Employ GPU Instancing --
Use mesh-based Level Of Detail (LOD) --
Culling Groups --
Make use of Occlusion Culling --
Optimizing Particle Systems --
Make use of Particle System Culling --
Avoid recursive Particle System calls --
Optimizing Unity UI --
Use more Canvases --
Separate objects between static and dynamic canvases --
Disable Raycast Target for noninteractive elements --
Hide UI elements by disabling the parent Canvas Component --
Avoid Animator Components --
Explicitly define the Event Camera for World Space Canvases --
Don't use alpha to hide UI elements --
Optimizing ScrollRects --
Make sure to use a RectMask2D --
Disable Pixel Perfect for ScrollRects --
Manually stop ScrollRect motion --
Use empty UIText elements for full-screen interaction --
Check the Unity UI source code --
Check the documentation --
Shader optimization --
Consider using Shaders intended for mobile platforms --
Use small data types --
Avoid changing precision while swizzling --
Use GPU-optimized helper functions --
Disable unnecessary features --
Remove unnecessary input data --
Expose only necessary variables --
Reduce mathematical complexity --
Reduce texture sampling --
Avoid conditional statements --
Reduce data dependencies --
Surface Shaders --
Use Shader-based LOD --
Use less texture data --
Test different GPU Texture Compression formats --
Minimize texture swapping --
VRAM limits --
Preload textures with hidden GameObjects --
Avoid texture thrashing --
Lighting optimization --
Use real-time Shadows responsibly --
Use Culling Masks --
Use baked Lightmaps --
Optimizing rendering performance for mobile devices --
Avoid Alpha Testing --
Minimize Draw Calls --
Minimize Material count. Minimize texture size --
Make textures square and power-of-two --
Use the lowest possible precision formats in Shaders --
Summary --
Chapter 7: Virtual Velocity and Augmented Acceleration --
XR Development --
Emulation --
User comfort --
Performance enhancements --
The kitchen sink --
Single-Pass versus Multi-Pass Stereo Rendering --
Apply anti-aliasing --
Prefer Forward Rendering --
Image effects in VR --
Backface culling --
Spatialized audio --
Avoid camera physics collisions --
Avoid Euler angles --
Exercise restraint --
Keep up to date with the latest developments --
Summary --
Chapter 8: Masterful Memory Management --
The Mono platform --
Memory Domains --
Garbage collection --
Memory Fragmentation --
Garbage collection at runtime --
Threaded garbage collection --
Code compilation --
IL2CPP --
Profiling memory --
Profiling memory consumption --
Profiling memory efficiency --
Memory management performance enhancements --
Garbage collection tactics --
Manual JIT compilation --
Value types and Reference types --
Pass by value and by reference --
Structs are Value types --
Arrays are Reference types --
Strings are immutable Reference types --
String concatenation --
StringBuilder --
String formatting --
Boxing --
The importance of data layout --
Arrays from the Unity API --
Using InstanceIDs for dictionary keys --
foreach loops --
Coroutines --
Closures --
The .NET library functions --
Temporary work buffers --
Object Pooling --
Prefab Pooling --
Poolable Components --
The Prefab Pooling System --
Prefab pools --
Object spawning --
Instance prespawning --
Object despawning --
Prefab pool testing --
Prefab Pooling and Scene loading --
Prefab Pooling summary --
IL2CPP optimizations --
WebGL optimizations --
The future of Unity, Mono, and IL2CPP --
The upcoming C# Job System --
Summary --
Chapter 9 Tactical Tips and Tricks --
Editor hotkey tips.