close
تبلیغات در اینترنت
آشنایی با تکنیک UDIM در تکسچر و UV

آشنایی با تکنیک UDIM در تکسچر و UV

درباره سایت
گروه بازیسازی خزیر
آموزش بازیسازی و انیمیشن سازی و اخبار جدید نرم افزارهای طراحی سه بعدی

آشنایی با تکنیک UDIM در تکسچر و UV
تعداد بازديد : 16

در پروژه های انیمیشن بعضا نیاز داریم تا یک تکسچر بسیار بزرگ رو به یک مدل اعمال کنیم ، متلا فرض کنید که یکی از غول های فیلم ارباب حلقه ها را ساختید و تکسچرهای پرجزییاتی هم به آن اعمال کردید ، در برخی از پلانها نیازه که دوربین به سطح پوست کاراکتر خیلی نزدیک بشه و بنابراین شما باید تکسچر خیلی بزرگی به پوست این کاراکتر داده باشید تا وقتی دوربین نزدیک میشه ، تکسچر به اصطلاح پیکسل نشه ! یا شاید یک بیابان را مدلسازی کردید و تکسچری را به سطح زمین بیابان دادید ، چون بیابان خیلی وسیعه ، اگر تکسچر خیلی بزرگی استفاده نکرده باشید ، وقتی دوربین رو روی سطح بیابان قرار میدی ممکنه تکسچر زمین پیکسل بشه !

خوب در این جور مواقع تنها کاری که میتوان کرد اینه که از تکسچرهایی با ابعاد بسیار بزرگ نظیر 4K یا حتی چندین برابر بیشتر از آن استفاده کرد ، اما اینجا یه مشکلی پیش میاد و اون هم اینه که وقتی تکسچری خیلی خیلی بزرگ بشه ، حجم فایل و اطلاعات اون تکسچر هم بسیار زیاد میشه و به دنبال آن در زمان رندر رم بسیار بیشتری از سیستمتون برای رندر اون تکسچر مصرف میشه ، از طرف دیگه حتی اگر روی سیستم خودتون تست یزنید متوجه میشید ممکنه حتی خود فوتوشاپ هم نتونه تصاویری از یک اندازه بیشتر رو به راحتی باز بکنه !
خوب اینجاست که دو تکنولوژی برای این موارد ابداع شده اند ، UDIM و دومی PTex که در این مقاله اولی را توضیح میدم.(البته PTEX بیشتر برای پینت کردن تکسچرهای سه بعدی استفاده میشه).

 

http://s8.picofile.com/file/8310865834/UDIM.jpg

 

 

===== UDIM

 

در این روش میان به جای اینکه از یک تکسچر با ابعاد بسیار بزرگ استفاده کنند ، آن تکسچر وسیع رو به چند بخش کوچکتر تقسیم میکنند که هر بخش یکی از قسمت های تکسچر رو در بر میگیره ، خوب با این وجود باید کاری بکنیم که روی سطح مدل هم به چند بخش تقسیم بشه و هر بخش از یکی از تکسچرهای تقسیم شده استفاده بکنه ، بنابراین فرض میکنیم تکسچر اصلی ما به چهار تکسچر کوچکتر تقسیم شده و به دنبال اون روی سطح مدل هم باید از لحاظ UV ما چهار تا UV جداگانه داشته باشیم که هر تکسچر روی یکی از بخش های مدل قرار بگیره ، در این صورت ما به جای اینکه یک فایل تکسچر بسیار سنگین رو بخواهیم رندر بکنیم ، چهار تا تکسچر کوچکتر که از لحاظ حجم و اندازه استاندارد هستند رندر میشه و به دنبال آن سرعت رندر بالاتر میره و پروژه بهینه تری در اختیار داریم.

 

خوب UDIM به استانداردی میگویند که به کمک آن میتونیم مشخص کنیم که هر تکسچر تقسیم شده دقیقا بره UV مخصوص به خود رو پیدا کنه و روی آن بشینه.
میدانیم که در حالت معمولی که برای مدل UV میسازیم ، عدد های UV روی هر دو محور U و V بین 0 تا 1 میباشد ، اما در تکنیک UDIM مدل به چند بخش تقسیم میشه و هر بخش یک UV مخصوص به خودش رو میگیره ولی به جای اینکه هر UV در UVSet های متفاوتی ذخیره بشوند ، همه آنها در یک سیستم UV و در کنار هم ذخیره میشوند، فقط برای اینکه همه UV ها روی هم نیوفتند ، هر UV با کمی فاصله روی محورهای UV درکنار UV قبلی ذخیره میشود ، متلا UV اول در بازه بین 0 تا 1 محور های فوق ذخیره میشوند ، UV دوم در بازه بین 1 تا 2 و UV سوم در بازه 2 تا 3 و به همین ترتیب تا آخر. برای همین اگر مدلهای دارای UDIM رو در برنامه سه بعدی متلا مایا وارد کنیم و UV آنها را در پنجره UV Editor نگاه کنید ، میبینید که چندتا UV مختلف در کنار هم قرار گرفته اند (مانند تصاویری که ارسال کردم). مثلا در مثال کاراکتر سر کاراکتر یک UV و یک تکسچر رو داره ، بدن کاراکتر هم یک UV و یک تکسچر و به همین ترتیب برای دست و پای کاراکتر. چون ممکنه از روی توضیح متنی دوستان کمی گیج بشوند حتما به تصاویری که ارسال کردم دقت کنید و آنها را با متن مطابقت بدید.

اما نکته مهم اینه که ما همینجوری نمیتونیم چندتا UV مختلف برای مدل بسازیم و در پنجره UV Editor هر جایی که دوست داشتیم آنها را قرار بدیم ، چراکه موتورهای رندر و نرم افزارها باید بدونند که هر تکسچر باید دقیقا از کدوم UV استفاده بکنه ، به همین دلیل یکسری استاندارد برای ما تعیین شده که با توجه به اون استاندارد ها باید محل قرار گیری UV ها و همچنین شماره گزاری یا اسم گذاری فایل های تکسچر رو انجام بدیم تا نرم افزار بفهمه هر تکسچر برای کدوم UV میباشد.

 

معمولا تعداد UV هایی که روی محور U در کنار هم قرار میدهیم 10 تا میباشد و از اون به بعد رو میریم روی ردیف بعدی روی محور V و به همین ترتیب. در مورد اسم گذاری فایل های تکسچر هم معمولا از دو استاندارد نامگذاری استفاده میکنند ، یکیش با عدد 1001 شروع میشه مانند :

mytexturename_1001.ext
mytexturename_1002.ext
mytexturename_1002.ext

 

و در روش اسم گذاری دیگر هم با عدد 0 یا 1 شروع میشه مانند »

mytexturename_0_0.ext

mytexturename_1_0.ext

که در هر دو روش عدد های انتهایی مشخص کننده این هستند که این تکسچر در مختصات UV ها از کدام منطقه باید UV خود رو بگیرند.
متلا فایل تکسچر mytexturename_0_0.ext باید آن UV رو که در پنجره UV Editor بین بازه 0 تا 1 روی هر دو محور هستند رو استفاده بکنه.

 http://s9.picofile.com/file/8310865842/UDIM_ID.jpg

 

http://s9.picofile.com/file/8310865868/UDIM_UVSpace.jpg

 

==== طریقه ساخت UDIM

 

اینکار ، یعنی تقسیم کردن یک تکسچر بزرگ به چند تکسچر کوچکتر و همچنین نامگذاری آنها باید کار سخت و طاقت فرسایی باشد ، اما خبر خوب اینه که امروزه تمامی برنامه های تخصصی تکسچر سازی و مدلسازی نظیر Z Brush و MudBox و Mari و 3D Coat و غیره این سیستم رو ساپورت میکنند و خودشون اتوماتیک اطلاعات UDIM رو براتون خورجی میگیرند ! متلا در Z Brush شما قرار نیست کاری کنید ، تکسچر خودتون رو روی سطح مدل Paint میکنید و وقتی اونرو به صورت UDIM خروجی میگیرید ، خود ZBrush به جای ساخت یک تکسچر بزرگ ، چندتا تکسچر کوچکتر براتون خروجی میگیره و نامگذاری فایل ها رو هم انجام میده ، همچنین UV های مختلفی هم از روی مدلتون با توجه به تکسچرها میسازه و در کنار هم قرار میده ، در این صورت شما مانند تکسچرهای معمولی ، در برنامه خودتون متلا مایا اون تکسچرها رو به متریال میدید و رندر میکنید ، فقط نکته اینجاست که اولا موتور رندرتون باید UDIM رو ساپورت کنه (که فکر میکنم الان همه موتورهای معروف ساپورت میکنند ) و دوم اینکه به موتور رندرتون باید بگید که این تکسچر یک تکسچر UDIM است نه یک تکسچر معمولی ، که این تنظیم با توجه به موتور رندر های مختلف فرق میکنه ، متلا در آرنولد اونجایی که میخواهید آدرس فایل تکسچر رو به متریال بدید اینطوری مینویسید : TextureTest.<udim>.png و خود آرنولد میفهمه که باید از روی هارد چندتا تکسچر مختلف رو با این نام باز کنه و به بخش های مختلف مدل اعمال کنه.
البته حتی اگر موتور رندرتون هم UDIM رو ساپورت نکنه باز میشه از UDIM استفاده کرد ، فقط سختی کار اینه که باید دستی همه تکسچرها را وارد کنید و با تعیین Offset روی محورهای U و V به هر تکسچر بگید که از کدام UV استفاده بکنه.

 
با کمک این روش شما دیگه میتونید مدلهایی رو رندر کنید که تکسچرهای بسیار با کیفیت و پرجزییاتی روی آنها اعمال شده اند ، متلا در خیلی از فیلم های هالیوودی میبینیم که از تکسچرهای بسیار بزرگی در ابعاد 12K و بزرگتر استفاده میکنند که برای اینکار باید از UDIM یا PTex استفاده کرد.

 

==== نکته سخت افزاری نرم افزاری !!!!

ممکنه برخی دوستان بگن که اگر ما به جای یک تکسچر خیلی بزرگ ، اون رو به چند تکسچر کوچکتر تقسیم کنیم و در فایلهای جداگانه بریزیم ، باز چه فرقی میکنه ؟ باز ما در مجموع از یک تکسچر بزرگ استفاده کردیم !
در جواب باید بگم در کامپیوتر همیشه محاسبه ، خواندن یا نوشتن اطلاعات از روی یک فایل خیلی بزرگ نسبت به چندین فایل کوچکتر خیلی سنگینتر است ،  CPU هم باید زمان بیشتری رو برای پردازش استفاده کند و هم رم بیشتری مصرف میشود ، اما اگر همان فایل حجیم رو به 10 تا فایل کوچکتر تقسیم کنی سرعت پردازش بالاتر رفته و مدیریت رم هم بهتر انجام میشود.

 

==== سخن پایانی

 

همیشه در پروژه اینکه بدونیم با نرم افزار چه طور کار کنیم مهم نیست ، بلکه خیلی وقتا باید بدونیم چه طور میشه پروژه رو بهینه کرد تا به دنبال آن روند تولید پروژه تسریع بشود و همچنین با توجه به محدودیت هاس سخت افزاری بتونیم پروژه رو به بهترین شکل انجام بدیم و این یکی از معیار های افراد حرفه ای میباشد ، UDIM هم یکی از تکنیک هایست که حتی در پروژه های کوچک هم میتوان از آن برای بهینه سازی پروژه استفاده کرد.

 

منبع : jkcompany.org/fa

بخش نظرات این مطلب
نام
ایمیل (منتشر نمی‌شود) (لازم)
وبسایت
:) :( ;) :D ;)) :X :? :P :* =(( :O @};- :B /:) :S
نظر خصوصی
مشخصات شما ذخیره شود ؟ [حذف مشخصات] [شکلک ها]
کد امنیتی