polygon
واژه پولیگان (polygon) ممکن است در حیطه های مختلفی به گوش شما خورده باشد. این واژه در هر زمینه ای دارای یک تعریف است اما همه آن ها یک مفهوم را دارا هستند. برای مثال در ریاضی آن را به اسم چند ضلعی می شناسیم. چند ضلعی به هر شکلی گفته می شود که با استفاده از خطوط صاف تشکیل شده باشد.
اما پولیگان در یوینیتی به چه معنا می باشد؟ تعریف پولیگان در یونیتی تقریبا مانند تعریفی می باشد که در ریاضی داریم. در اینجا به اشکال دو بعدی و یا سه بعدی گفته می شود که دارای چند خط صاف هستند که به یکدیگر متصل می شوند.
مقدار پولیگان یک مدل، شی و یا شخصیت، تفاوت های بسیاری همچون نوع، کیفیت و غیره را ایجاد می کند. برای مثال اگر میزان پولیگان یک شئ بالا باشد، آن شئ دارای جزئیات بیشتر، کیفیت بالاتر و حجم بیشتر است و طبعا زمان بیشتری از منابع می گیرد تا رندر شود. در زیر می توانید عکس یک مدل را در میزان پولیگان های مختلف مشاهده کنید.
همانطور که در عکس بالا مشاهده می کنید دست سمت چپ دارای جزئیات بیشتر و همچنین ظاهر دقیق تری دارد و هرچه به سمت راست می رویم این دو المان کمتر می شود.
مدل ها و اشیاها از نظر میزان پولیگان به دو دسته hight poly و low poly تقسیم می شوند.
Highpoly به معنی تعداد پولیگان بالا و low poly به معنی تعداد پلیگان پایین می باشد. در زیر می توانید دو نمونه از این مدل ها را ببینید.
مدل های low poly به طور معمول برای بازی های استراتژیک و یا بازی هایی که دوربین از صحنه و یا کاراکتر دور می باشند و یا نیازی به نشان دادن جزئیات زیادی نمی باشد و بازی در یک محیط فانتزی و سبک باشد استفاده می شود مانند بازی های نظیر clash of clans, clash royal, Morphite, virginia و غیره .
نمونه ای از یک بازی با محیط low poly
برخلاف مدل های low polyمدل های high poly دارای کیفیت و شفافیت بسیار بالایی می باشند و به طور معمول زمانی که می خواهید جزئیات زیادی را نشان بدهید استفاده می شوند.
مانند بازی هایی نظیر God of war, call of duty, the last of us و غیره.
نمونه یک بازی با محیط high poly
چه تعداد پولیگان تعیین کننده نوع مدل از نظر تعداد پولیگان است؟ عدد استاندارد تعداد پولیگان برای هر کدام از مدل ها چه می باشد؟ عدد و تعریف دقیقی برای تعین low poly بودن یک مدل وجود ندارد. در واقع ساخت یک مدل low poly به معنی ساخت یک مدل با استفاده از کمترین میزان ممکن پولیگان می باشد.
اما هر موتور بازی سازی یک استاندارد برای ساخت و طراحی مدل ها ارائه می کند، برای مثال در یونیتی برای ساخت و طراحی کارکترها و مدل ها بسته به کیفیت و پلتفرم مد نظر ما می باشد. یونیتی پیشنهاد می دهد که برای موبایل تعداد پولیگان مدل ها بین ۳۰۰ تا ۱۵۰۰ به ازای هر مش نتیجه خوبی به ما می دهد و در دسکتاپ تعداد پولیگان بین ۱۵۰۰ تا ۴۰۰۰.
اما تجربه نشان داده است گه گاها زمانی که تعداد پولیگان مدل شما از ۲۰۰۰ بالاتر باشد در OpenGL با مشکل های تخصیص مموری مواجه می شوید و باعث می شود که نرم افزار شما متوقف شود.
نکته: اگر در بازی خود در هر صحنه تعداد کارکتر زیادی وجود دارد باید سعی کنید که تا حد امکان تعداد پولیگان به ازای هر مش را پایین بیاورید.
میزان پولیگان یک مدل در یونیتی به صورت تعداد راس ها و مثلث ها یا verts و tris نشان داده می شود. در شکل زیر می توانید یک مدل را که تعداد راس و مثلث های آن نشان داده می شود را ببینید.
کاهش تعداد پولیگان چه فوایدی دارد؟ هرچه تعداد پولیگان کمتری در مش های خود استفاده کنید، برنامه شما سریعتر اجرا می شود. این موضوع به این دلیل می باشد که هر راس، لبه، یا چهره به منابع محاسباتی نیاز دارد.
اما تعداد پولیگان بالا نیز فوایدی دارد. همان طور که قبل تر گفته شد هرچه تعداد پولیگان بیشتری در مش خود استفاده کنید GameObject شما با جزئیات بیشتر و ارگانیک تر خواهد بود. اما پولیگان های کوچکتر به شما کنترل بیشتری بر روی شکل می دهد به شما می دهد.
چگونه می توانیم میزان پولیگان یک مدل را پایین بیاوریم؟ برای این کار می توانیم از نرم افزار های مدل سازی مانند blender, sketchup,Maya یا از پلاگین هایی که برای موتور بازی سازی مربوطه به منظور کاهش تعداد پولیگان یک مدل ساخته شده است استفاده کنید. برای مثال در موتور یونیتی شما می توانید از پلاگین mesh simplify استفاده کنید.
یکی از تفاوت های کاهش تعداد پولیگان ها در نرم افزار های مدل سازی با پلاگین ها این است که زمانی که در این نرم افزار ها تعداد پولیگان یک مدل را کاهش می دهید می توانید به خوبی بخش های مختلف مدل را مشخص کنید و تایین کنید تعداد پولیگان از کدام قسمت ها کم شود.
اما زمانی که از پلاگین ها استفاده می کنید ممکن است مش مدل کاملا به هم بخورد یا از بین برود. اما در اکثر اوقات این پلاگین ها تعداد پولیگان در مش ها را به خوبی بهینه می کنند.
برای اینکه بتوانیم میزان پولیگان یک صحنه را در موتور یونیتی ببینید میتوانید در پنجره Game دکمه stats را بزنید تا بتوانید اطلاعات گرافیکی و صوتی نظیر تعداد کال در هر ثانیه، تعداد بچ ها، میزان بچ ذخیره شده و غیره را مشاهده کنید.
Polygon collider
پولیگان کالیدر یا همانpolygon collider یک شیئ نامرئی است که برای کنترل برخورد های فیزیکی استفاده می شود. نیازی نیست که جسم برخورد کننده دقیقا شبیه به مش جسم نامرئی باشد.
کالیدر می تواند به صورت دستی نیز ویرایش شود اما راحت تر است که اجازه دهید یونیتی خودش این کار را به صورت خودکار انجام دهد. شما می توانید این کار را با کشیدن یک اسپریت از داخل پروژه بر داخل کامپوننت polygon collider 2D انجام دهید.
شما می توانید با فشار دادن دکمه edit collider در پنجره inspect شکل پولیگان را ویرایش کنید. همچنین با فشار دادن مجدد دکمه می توانید از حالت ویرایش خارج شوید.