بهینه سازی مدل برای بازی و انیمیشن
فهرست مطالب
با یکی دیگر از مقالات مشترک بازی سازی و انیمیشن سازی همراه شما هستیم.
در این مقاله به مبحث مهم بهینه سازی خواهیم پرداخت؛ و اینبار متمرکز بر روی بهینه سازی مدل های سه بعدی برای بازی و انیمیشن.
قبلا در مقاله ی اصول بهینه سازی بازی به صورت کلی در رابطه با بهینه سازی بازی صحبت کرده بودیم و در این مقاله قصد تکمیل توضیحات بهینه سازی برای مدل ها را داریم.
اهمیت بهینه سازی در اجرای روان، رندر بهینه، افزایش سرعت کار و … است.
تا پایان همراه ما باشید.
مدل های highpoly و lowpoly
شروع کار را با یک مفهوم آشنا برای شما انجام خواهیم داد.
در مقاله ی اجزای مدل سه بعدی، اشاره ای به این دو مفهوم کردیم، اما در این مقاله مجدد توضیحات مختصری را در رابطه با آن ها خواهیم داد.
مدل lowpoly همانطور که از نام آن پیداست یک مدل سه بعدی است که از حداقل تعداد پولیگان برای نمایش شکل و ساختار خود استفاده می کند.
با کاهش تعداد پولیگان، بار محاسباتی مورد نیاز برای ارائه مدل را کاهش می دهیم که منجر به بهبود عملکرد در مشخصات سخت افزاری مختلف می شود.
اما جادوی مدلهای lowpoly فقط در افزایش عملکرد خلاصه نمیشود.
با تکنیک های مناسب، آنها همچنان می توانند از جذابیت بصری بالایی برخوردار باشند و طراحان را قادر می سازد تا خروجی جذاب و از نظر بصری خیره کننده ای را بدون به خطر انداختن عملکرد ایجاد کنند.
به طور ساده برعکس lowpoly مدل های highpoly از جزئیات بالاتری برخوردار هستند و در نتیجه از لحاظ پردازشی فشار سنگینی را به پردازنده وارد می کنند.
یک مدل highpoly به دلیل ساختار پیچیده ای که دارد، می تواند زمان قابل توجهی برای بارگذاری طول بکشد و در نتیجه زمان انتظار طولانی تری قبل از شروع بازی خواهد داشت.
در مقابل، یک مدل lowpoly سادهتر و سریعتر بارگذاری میشود و بازیکنان را قادر میسازد تا سریعتر وارد عمل شوند.
استفاده از Normal Map در تبدیل مدل های highpoly به lowpoly بدون افت کیفیت
یک normal map نوعی تکسچر است که به ما امکان میدهد جزئیات سطحی مانند برآمدگیها، شیارها و خراشها را اضافه کنیم.
از یک مدل highpoly تولید میشود و سپس روی مدل lowpoly اعمال میشود.
این توهم عمق و جزئیات را بدون افزودن پولیگان های اضافی ایجاد می کند.
نتیجه مدلی است که از نظر عملکرد کارآمد است اما همچنان سطح بالایی از وفاداری بصری را حفظ می کند.
با به کارگیری ماهرانه این تکنیکها، می توان یک نسخه بهینه و در عین حال جذاب از مدل سه بعدی ایجاد کرد.
تکنیک های دیگری برای تبدیل یک مدل highpoly به یک مدل lowpoly مانند رتوپولوژی (مناسب برای اشیاء یا شخصیتهای ارگانیک)، یا استفاده از ابزارهایی مانند Subdivision Surface و Bevel نیز وجود دارد که ما در مقالات قبلی به آن ها پرداخته و در این مقاله تکرار نخواهیم کرد.
اولین قدم بهینه سازی، استفاده از مدل های lowpoly برای بازی و انیمیشن. (البته در صورت نیاز برای بازی و انیمیشن می توان از مدل های highpoly نیز استفاده کرد اما این کاملا وابسته به نوع مدل و جزئیاتی است که قصد نمایش آن ها را دارید.)
تکسچر
اگر با مراحل ساخت تکسچر آشنایی ندارید، به مقاله ی « آموزش ساخت تکسچر » بروید.
در این قسمت تمرکز بر ساخت یک تکسچر بهینه است.
تکسچر ها مانند پوست در قسمت بیرونی یک شی سه بعدی عمل می کنند و الگوها و سایر ویژگی های بصری را اضافه می کنند تا شیء واقعی تر به نظر برسد.
تکسچر ها به شکل فایل های تصویری هستند و هر یک از این فایل ها باید زمانی که در یک صحنه استفاده می شوند بارگذاری شوند.
با استفاده از تکسچر های فشرده، می توانید منابع زیادی را آزاد کنید.
بنابراین گاهی اوقات، علاوه بر تکسچر رنگ اصلی، مدلهای سهبعدی ممکن است به بهینهسازی تکسچرهای اضافی مانند Norma Map، specular maps، displacement maps، و ambient occlusion maps برای کیفیت بهتر و جلوههای واقعیتر نیاز داشته باشند.
در کنار استفاده از تکسچر های فشرده، همچنین ارزش آن را دارد که مطمئن شوید شیدرهایی که استفاده می کنید به خوبی بهینه شده اند.
اکثر موتورهای بازی دارای یک assetstore با شیدرهای رایگان و پولی هستند تا این کار را آسانتر کنند.
دومین قدم بهینه سازی، استفاده از تکسچرهای فشرده سازی شده.
نکاتی مهم درباره استفاده از یک مدل بهینه
Remove Hidden Faces
چهره هایی که بازیکن هرگز نمی بیند نیازی به بارگذاری در بازی شما ندارند.
پشت ساختمان ها، قسمت زیرین وسیله نقلیه و قطعات هندسی که در زیر زمین قرار دارند معمولاً قابل برداشتن هستند.
حذف چهرههای تکراری/ زائد
چهرههای تکراری همیشه باید حذف شوند، اما باید به دنبال چهرههایی باشید که ضروری نیستند.
برای مثال یک مربع فقط باید یک وجه داشته باشد؛ اگر دو وجه مثلثی دارد، هر دو را dissolve کنید تا با یک وجه جایگزین شود.
ادغام شی
بارگذاری یک شی همیشه بهتر از بارگذاری دو یا سه شی است.
ادغام اشیاء سه بعدی در بلندر و سایر نرم افزارهای توسعه بازی آسان است و راهی عالی برای کاهش هزینه های منابع شماست.
استفاده از فرمت مناسب
فرمت های فایل زیادی برای مدل های سه بعدی مانند OBJ، FBX، STL، GLTF و غیره وجود دارد.
هر فرمت فایل بسته به سطح جزئیات، انیمیشن، تکسچر و سازگاری مورد نیاز خود، مزایا و معایب خاص خود را دارد.
به عنوان مثال، OBJ یک قالب ساده و به طور گسترده پشتیبانی می شود، اما از انیمیشن یا متریال پیچیده پشتیبانی نمی کند.
FBX یک فرمت همه کاره و محبوب است، اما می تواند بزرگ و اختصاصی باشد.
GLTF یک فرمت مدرن و کارآمد است، اما ممکن است با برخی از نرم افزارها یا پلتفرم های قدیمی سازگار نباشد.
شما باید در مورد فرمت های فایلی که مطابق با نیازهای شما هستند تحقیق کنید و یکی را انتخاب کنید که بهترین تعادل را بین کیفیت و عملکرد ارائه می دهد.
bake نور و تکسچر
یکی دیگر از تکنیکهای بهینهسازی مدلها و انیمیشنهای سهبعدی برای اجرای بازی، بیک کردن نور و تکسچر است.
bake فرآیندی است که از پیش محاسبه و ذخیره افکت های نور و سایه مدل های شما در تکسچرها، را به طوری انجام می دهد که بازی مجبور به محاسبه آن ها در زمان واقعی نباشد.
برخی از ابزارهای بهینه سازی
ابزارها و نرمافزارهای مختلفی برای کمک به بهینهسازی مدلهای سه بعدی برای عملکرد در دسترس هستند، که اسامی آن ها به شرح زیر می باشد:
ابزارهای کاهش پولیگان (به عنوان مثال، Simplygon، Instant Meshes)
ابزارهای فشرده سازی تکسچر(به عنوان مثال، Crunch، NVIDIA Texture Tools)
افزونه های فشرده سازی انیمیشن (به عنوان مثال، e.g., Unity Animation Compression و UE4 Animation Compression)
مهرسا امینی
برنامه نویس بازی و سایت
یک میلیون بار اشتباه کن اما یک اشتباه را دوبار تکرار نکن.