یکی از مشکلات همیشگی در بخش طراحی و مدلسازی سه بعدی، اختصاص روش درست و مناسب Mapping بروی مدلهاست. اینکه چگونه یک تکسچر بروی سطح یک مدل سه بعدی قرار بگیرید تا بتواند بهترین موقعیت را داشته باشد، سخت ترین بخش کار خواهد بود. یکی از روش های جدید و کارآمد در این زمینه UDIM می باشد.
خوب در تمامی روشهای اولیه استفاده از UV Mapping یک اصل ابتدایی می باشد که همه با آن آشنا هستند. اما با پیشرفت های سالهای اخیر و افزایش کیفیت تصاویر رندر شده در فضای سه بعدی، محدودیت های روش UV بسیار آزار دهنده شد. برای اینکه یک مدل با texture مناسب داشته باشید باید کیفیت آن را در روش UV تا حد ممکن افزایش دهید. هر چه کیفیت و رزولوشن تکسچر شما بالاتر باشد، رندر نهایی بهتری خواهید داشت. اما افزایش اندازه UV هم محدودیت هایی دارد که در نتیجه شرکت های پیشگام در عرصه Animation و فیلم سازی را بر آن داشت که راهکارهای جدیدی را در نظر داشته باشند.
همانطور که قبلا در سایت ذکر کرده بودم، شرکت والت دیزنی برای پروژه های خود با مشکلات زیادی در بخش UV mapping همراه بود تا اینکه بالاخره در سال 2008 و برای پروژه Bolt این شرکت، روشی را که حدود یکسال بروی آن کار میکردند را به نام Ptex نامگذاری کرده و استفاده نمودند. روشی بی نظیر که تقریبا همه محدودیت های UV را مرتفع کرده و دنیای تکسچرینگ را متحول نمود. قبلا به تفصیل در مورد Ptex صحبت کردیم و میتوانید از این لینک به آن دسترسی داشته باشید.
اما وقتی Ptex توسط این شرکت مطرح شد، خود مشکلات دیگری را پدید آورد. در پروژه های بزرگ فایلهای Ptex که مملو از هزاران فایل در یک Pack بودند ، با حجم های بسیار زیادی مواجه شدند. این پک ها که شامل تکسچرهای تولید شده برای هر face در روش Ptex بود آنقدر بزرگ بود که نیاز به سخت افزارهای بسیار قدرتمند برای تغییر و ویرایش و بارگذاری داشت. همچنین Ptex فرمت فایل رده پایینی داشت که کار با آن را برای ویرایش بسیار سخت میکرد.
از دیگر ایرادهای Ptex این بود که با همه نرم افزارها و موتورهای رندرینگ سازگاری کامل نداشت و بیشتر برای موتورهای رندرینگ RenderMan , Mantra , Vray , …. در دسترس بود و از همه مهمتر اینکه نسخه های اولیه Ptex بشدت کند بود و از همه توان سخت افزار برای پردازش استفاده نمیکرد. البته در نسخه های تکمیل شده افزایش بازده بهتری را شاهد بودیم اما باز هم کند و سنگین بود.
تا اینکه Richard Addison-Wood از شرکت Weta Digital روشی را ابداع کرد که به UDIM معروف شد. این کلمه از U-Dimension می آید که اشاره به نوع چیدمان و روش ابداعی می باشد. قبل از اینکه این روش را توضیح دهم، حتما به مطلبی که قبلا در مورد Ptex در سایت مازستا نوشته ام مراجعه نمایید تا تفاوت این دو روش را متوجه شوید.
حتما میدانید که در روش متداول UV Mapping ، UV ها بازه ای بین 0 تا 1 هستند که بروی یک تکسچر تعریف می شوند. در حالی که در روش UDIM این بازه به صورت یک توالی ماتریسی می باشد که کاملا سفارشی خواهد بود. این توالی از عدد 1001 شروع شده و ادامه می یابد. مثلا یک UDIM با بازه 2 شامل1001 و 1002 می باشد. که هر کدام از این اعداد به یک بخش از تصویر اشاره خواهند کرد. در نتیجه هر بخش از Mesh شما میتوانید شامل یکی از بخش های UDIM شود. اگر متوجه این موضوع نشدید اجازه دهید تا کمی بحث را ساده تر کنیم.
در روش UV عادی، شما یک تکسچر دارید که به Mesh خود نسبت میدهید. حال با توجه به UV نسبت داده شده به Mesh شما، متوجه می شوید که کدام بخش از تصویر texture شما بروی کدام بخش از Mesh شما قرار گرفته است. خوب در این روش هر چه بخواهیم کیفیت تصویر یا تکسچر ما بیشتر شود باید رزولوشن آن texture را افزایش دهیم. همانطور که در تصویر زیر مشاهده میفرمایید، در نهایت کل صورت بروی یک تکسچر قرار میگیرید تا بتوانیم عملیات texture Painting و rendering را به خوبی مدیریت کنیم.
اما در روش UDIM با یک تکسچر سروکار نداریم. بلکه با مجموعه ای تکسچرها سرکار داریم . در حقیقت ما در این روش بروی mesh خود UV تعریف نمیکنیم. بلکه مجموعه ای از آنها را برای بخش های مختلف Mesh خود در نظر میگیریم. با اینکار میتوانیم به هر بخش از Mesh خود یک UV مجزا نسبت دهیم و یک texture مجزا. به عنوان مثال برای یک صورت انسان، نیازی نیست که مانند گذشته یک تکسچر کامل برای کل صورت در نظر بگیریم. میتوانیم هر بخش از صورت را جداگانه UV داده و به یک تکسچر مجزا نسبت دهیم. توجه کنید که دیگر به این روش UV mapping نمی گویند و نام آن UDIM است.
همانطور که در تصویر بالا مشاهده کردید، به سادگی هر بخش از مدل را به صورت جداگانه UV داده و به صورت یک جدول در کنار هم قرار می دهیم. در انتها به هر بخش یک تکسچر اختصاص می یابد.برای درک بهتر به تصویر زیر دقت کنید.
همانطور که مشاهده میکنید، دیگر نیاز نیست به کل مدل خود یک تکسچر را نسبت دهید. این تکسچرها درست است که در روش UDIM به صورت جداگانه هستند، اما نرم افزارهای شما به راحتی آنها را به صورت یکپارچه در نظر میگیرند. در نتیجه کار Painting و اصلاح متریال بروی آنها همانند یک تکسچر یکپارچه صورت میگیرد. اما در حقیقت شما به هر بخش از مدل خود یک تکسچر جداگانه با رزولوشن متفاوت ( یا یکسان ) نسبت میدهید. مثلا میتوانید بخشی از مدل را که به دقت بالاتری نیاز دارد با یک تکسچر 8k و بخشی را که دقت خاصی نیاز ندارد با یک تکسچر 2k مدیریت کنید. شاید حالا متوجه شوید که پروژه های بزرگ فیلم و انیمیشن دنیا چگونه اینچنین کیفیت مدلها را در بالاترین حالت ممکن حفظ میکنند.
برای اینکه این روش در همه نرم افزارها یکسان باشد، UDIM هم قواعد خود را دارد. اینجاست که متوجه میشود اعداد 1001 و 1002 به چه دردی میخورند. برای این موضوع باید قوانین UDIM را با هم مرور کنیم. در روش UDIM شما از تکرارهای 10تایی بهره خواهید برد. یعنی موظف هستید که چیدمان خود را به صورت یک جدول یا ماتریس در نظر بگیرید. هر سطر از جدول حداکثر 10 خانه خواهد داشت و خانه یازدهم به بالای خانه اول رفته و …. در این استاندارد خانه اول از سطر اول 1001 ، خانه دوم از سطر اول 1002 و … و خانه اول از سطر دوم 1011 و … . در نتیجه حتی اگر شما میخواهید از چهار بخش استفاده نمایید می بایست یا آنها را در خانه های 1001 تا 1004 بگذارید یا حتی میتوانید در خانه های 1001 و 1002 و 1011 و 1012 به صورت یک چهارتایی قرار دهید.
هر خانه معرف یک تکسچر مجزا و یک UV مجزا می باشد که به هر بخش از مدل که میخواهید میتوانید نسبت دهید.
در نرم افزارهای مختلف این روش به نام UDIM یا Tile Texture شناخته می شود و تقریبا تمام نرم افزارهای مهم دنیا آن را ساپورت میکنند. در بخشی از نرم افزارها، می توانید تعداد ستون ها را از 10 به هر عددی تغییر دهید که اینکار توصیه نمی شود. زیرا این قانون در تمام نرم افزارها به صورت تقریبا یکسان رعایت میشود و تغییر آن باعث میشود که مشکلاتی را به همراه داشته باشید و در هر کاری نیاز به تغییر شرایط پیش فرض باشد.
این مهم نیست که شما از چند خانه استفاده میکنید، حتی اگر از 2 خانه هم بخواهید استفاده کنید اجازه دهید شرایط همچنان به صورت پیش فرض باقی بماند.
در پروژه های بزرگ، کیفیت همه چیز است. به عنوان مثال در فیلم Chappie ، تعداد tile هایی که برای شخصیت اصلی این فیلم در UDIM texturing در نظر گرفته شده بود 538 عدد بود. اجازه دهید امار دقیقتری از این مدل به شما بدهم مدل سه بعدی Chappie ، شامل حدود 4 میلیون Polygon و بالغ بر 2740 زیر مدل می باشد. این مدل شامل 528 UDIM tile بوده است که هر کدام از تکسچر ها از رزولوشن 256 تا 4096 بوده اند. یعنی بزرگترین اندازه تکسچر 4k و کوچکترین آنها 256 پیکسل بوده است. کل فضایی که برای ذخیره تکسچرهای این مدل استفاده شده است 152 گیگابایت بوده است.
امروزه اکثریت نرم افزارهای مطرح دنیا مخصوصا در بخش Painting از UDIM پشتیبانی میکنند. به دلیل محدودیت ها و سختی های Ptex بیشتر پروژه ها سعی دارند که از UDIM استفاده کنند تا سازوکار راحتتری را تجربه نمایند.
خوشبختانه تمامی نرم افزارهای رده حرفه ای مدلسازی و تکسچرینگ مانند Blender , Maya , 3ds Max , Cinema4D , Houdini , Modo و … از UDIM پشتیبانی خواهند کرد.