شرکت Walt Disney Animation Studio در جهت افزایش کیفیت و کارایی پروژه های عظیم انیمیشن خود نیاز به تولید محتوای جدید و تکنیک های جدیدی دارد تا بتواند کاربران خود را تأمین نماید. یکی از قابلیت‌های جدیدی که توسعه دهندگان این شرکت به صنعت گرافیک سه بعدی اضافه کرده‌اند تکنیک Ptex است. همیشه یکی از مراحل مشکل کار در انجام پروژه های CG سه بعدی، مرحله texturing و UV layout می باشد. اعمال درست بافت ها و تکسچرها به سطوح هم‌زمان بر است و هم بشدت حوصله بر. در ضمن ممکن از تغییراتی در مدل سه بعدی به وجود آید و نظم UV را به هم زده و باعث شود که کاربران مجبور به ویرایش UV در سطح جسم بشوند. از این رو نرم‌افزارهای سه بعدی روشهای متنوعی را برای UV mapping ارائه داده‌اند که هر کدام به نوعی فرایند ایجاد و ویرایش UV در سطح جسم را کنترل میکند. اما در هر صورت این بخش از پروژه همیشه با دردسرهای زیادی روبرو خواهد شد. این دردسرها در پروژه بزرگ انیمیشن و فیلم به مراتب بیشتر بوده و هر چه کیفیت کار بالاتر برود، مشکلات UV Mapping نیز بیشتر و بیشتر میشود. این مشکلات در سطح مدلهای سه بعدی متنوع بزرگ‌تر شده و هرچه مدل ما پیچیده‌تر باشد، شرایط اصلاح و تعریف دقیق UV ها سخت تر می شود. از این رو شرکت والت دیزنی، مجبور شد که Pipeline کاری خود را برای پروژه های شرکت تغییر داده و فکری به حال مرحله UV Mapping و Texturing بکند و در نتیجه در حدود سال 2008 پیتکس متولد شد.

UV mapping Texturing
Ptex

Ptex History

در یک کلام Ptex تکنیک جدیدی برای مرحله Texturing است که راه‌کاری جدیدی برای حذف UV Mapping در این فرآیند ارائه میدهد. والت دیزینی با معرفی Ptex میخواست که راه بهتر و سریعتری برای تکسچرینگ مدلهای سه بعدی ارائه دهد بودن اینکه لازم باشد زمان زیادی را صرف مرحله UV Mapping کند. توسعه دهندگان والت دیزینی عقیده داشتند با وجودی که روی UV Mapping کنونی کاملاً درست انجام وظیفه میکند اما کارایی لازم را در پروژه ها بزرگ نخواهد داشت پس باید روشی را ابداع میکردند که گزینه بهتری نیست UV Mapping در مسیر پروژه ایجاد نماید.
نتیجه تلاش‌های تیم R&D والت دیزنی در پروژه انیمیشن Bolt به نمایش در آمد و textureهای بکار رفته در این پروژه توسط روش Ptex بروی مدلها قرار گرفت. این اولین فیلم انیمیشن بود که با استفاده از پیتکس تولید شد در حالی که یکسال قبل شرکت والت دیزنی مراحل توسعه Ptex را تمام کرده بود. Ptex آنقدر کارایی بالای داشت و کارشناسان والت دیزنی را راضی کرده بود که از آن به بعد Ptex به عنوان روش استاندارد texturing در Pipeline کاری این شرکت قرار گرفت و تا کنون تمام پروژه های این شرکت از Ptex استفاده میکنند. بعد از چند سال Walt Disney تصمیم گرفت که این روش را در اختیار همگان قرار دهد و از این رو Ptex به صورت Open Source منتشر شد تا دیگر شرکت ها و استودیوها نیز بتوانند از قابلیت‌های آن استفاه نمایند.
خوب بعد از این مقدمه اجازه بدهید در مورد خود Ptex صحبت کنیم و اینکه چگونه کار میکند و در چه نرم افزارهایی میتوانیم از آن استفاده نماییم.

Ptex texturing tex per face polygon تکسچرینگ پیتکس پی تکس تسکچر dfmrendering
Ptex

ایده تولید Ptex بر یک روش بسیار ساده استوار است. با استفاده از Ptex ، تکسچرها به جای اینکه بر اساساً ساختار UV بروی مدل سه بعدی قرار بگیرند، تکسچر را بروی هر face قرار میدهد که در نتیجه میتواند جزییات بسیار بسیار بالاتری را نسبت به روش UV Mapping در اختیار کاربران قرار دهد. به صورت ساده‌تر Ptex به ازای هر Quad Face یک تکسچر مجزا ذخیره میکند. درست است که face ها سه ضلعی هستند، اما در روش مدلسازی subdivision surface، به هر چهار ضلعی نیز یک quad face میگویند، و این با polygon کاملاً متفاوت است. پس به ازای هر face ما یک texture جداگانه را میتوانیم داشته باشیم. پس همانطور که مشخص است در کوتاهترین زمان ممکن میتوانید Ptex Map را ایجاد کنید زیرا باید به ازای هر face یک texture در نظر بگیرید و عملاً تنظیماتی وجود نخواهد داشت.
از همه مهمتر اینکه در مبحث مدلهای غیر صنعتی، مانند کاراکترها، موجودات و … وجود لبه های انتهای texture که به seam معروف هستند باعث دردسر بسیار زیادی می شود. با ptex دیگر مفهومی به نام seam یا درز وجود ندارد. زیرا دیگر UV آن به روش سنتی تولید نمی‌شود و textureها به ازای هر face در نظر گرفته خواهد شد. شاید تصور کنید که در صورت مهارت در روش قدیمی UV Mapping هیچ کدام از این مشکلات به وجود نخواهد آمد، نه درز بافت ها مشخص خواهد شد و نه مشکلی در تعیین UV mapping خواهید داشت که البته این حرف نیز کاملاً درست است. اما باید ببینیم روش پیتکس در حقیقت چه مزیتی برای ماخواهد داشت؟

Texturing
Ptex

اگر بخواهیم به صورت موردی اشاره کنیم میتوانیم سه عامل مهم را برای استفاده از Ptex برشمرد که عبارتند از : 1- سرعت عمل و دقت بسیار بالاتر در ایجاد UV Mapping بروی سطح مدل 2- نبود مشکل درز (seam) بافت ها در جایی که لبه texture ها بروی هم قرار میگیرند. 3- از همه مهمتر دقت و جزییات بسیار بسیار بالاتر از روش سنتی UV Mapping به جز عوامل ذکر شده، روش Ptex شرایط بسیار زیادتری را در اختیار شما قرار میدهد که در زیرگروه همان سه دلیل قرار خواهند گرفت. اما این‌ها دلایل اصلی برای شرکت والت دیزنی بودند که باعث شد به فکر تولید Ptex بیافتند.
اگر شما هنوز قانع نشده‌اید که از Ptex استفاده کنید، بدانید که همفکران زیادی دارید. هنوز بسیاری از استودیوهای تولید انیمیشن و فیلم Ptex را در Pipeline کاری خود قرار نداده‌اند. توجه داشته باشید که شرکت ها و استودیوهای بزرگ به دلیل اینکه از روش کاری دقیق و برنامه‌ریزی شده‌ای استفاده میکنند نه میتوانند به راحتی Pipeline کاری خود را تغییر دهند. زیرا برای اینکار باید بسیاری از پلاگین ها و روشهای تولیدی خود را تغییر داده و یا افزونه های مناسب با روش جدید را تولید نمایند. اما والت دیزنی خود به این نتیجه رسیده است که این روش بسیار کارآمد تر و دقیقتر از روش سنتی UV Mapping می باشد. هنوز بسیاری از استودیوها معتقد هستند که راه کارهای بهتری نسبت به پیتکس وجود دارد که میتوان از آن‌ها بهره برد. درست است که Ptex بشدت در زمان کار بروی UV ها صرفه جویی کرده اما فقط به همین موضوع ختم نمی شود. در حقیقت Ptex در ایده اولیه خود حذف روش UV Mapping را شروع و در نهایت قابلیت‌های بسیار زیادی را در اختیار کاربران قرار داد.
Ptex برای پروژه های بزرگ بسیار عالی عمل میکند. این پروژه ها میتوانند شامل یک انیمیشن بلند یا یک تیزر تبلیغاتی چند ثانیه ای باشند. مهم این است که پروژه از کیفیت بسیار بالایی برخوردار باشد. در این صورت Ptex میتواند قابلیت‌ها و کیفیت به مراتب بالاتری را نسبت به روش سنتی UV در اختیار شما قراردهد. به منظور درک بهتر موضوع اجازه دهید از مستندات والت دیزنی برای اینکار بهره ببریم.

پیتکس
Ptex

در سال 2003 این شرکت برای اولین بار از روش subdivision surface در فیلم chicken little استفاده نمود. در آن زمان بهترین گزینه ای که توسعه دهندگان دیزنی برای این فیلم تدارک دیده بودند تبدیل سطوح subds به rectangular patch بود. در نتیجه برای کاراکتر جوجه کوچک از 170 تکسچر استفاده شده تا به حد مطلوب سازندگان فیلم برسند، چیزی که هم‌اکنون نیز در بسیاری از پروژه ها سنگین، غیر قابل تصور است. توجه داشته باشید که در عمل شاید 170 تکسچر بروی مدل نهایی نباشد. این تکسچر ها در اوایل کار بروی مدل قرار گرفته و بعد از تاییده نهایی، بسیاری از آن‌ها با یکدیگر Merge شده و یا از روشهای Texture Baking و … استفاده کرده و آن‌ها را به چند بافت مجتمع تبدیل میکنند. اما در نهایت از 170 تکسچر برای بخش‌های مختلف این کاراکتر استفاده شده است.

Ptex texturing tex per face polygon تکسچرینگ پیتکس پی تکس تسکچر dfmrendering
Ptex

بعد از آن در سال 2005 در فیلم Meet the Robinsons توسعه دهندگان متوجه شدند که با توجه به افزایش کیفیت تولیدات این شرکت، استفاده از روش‌های قدیمی و Baking باعث می‌شود که بسیاری از لبه های texture های Bake شده دچار aliasing شود. این پدیده باعث رنجه شدن لبه های خطوط شده و همواری سطح را از بین میبرد. در نتیجه مجبور شدن از روش افزایش لایه‌های تکسچرینگ استفاده نمایند.همانطور که مشاهده میکنید برای مدل بالا از 7637 تکسچر استفاده شده است. یعنی به منظور افزایش کیفیت تصاویر و مدلهای رندر شده، از بالاترین جزییات ممکن در پروژه ها استفاده شده تا نتیجه کار به گونه‌ای باشد که در خور نام شرکت والت دیزنی قرار بگیرد. شاید اگر این مدل سه بعدی که در تصویر بالا مشاهده میکنید را به ما بدهند، سر و ته کار را با 5 تا 10 تکسچر ببندیم. در این سال والت دیزنی در این فیلم، تا بیش از 12 لایه برای هر بخش از مدل تکسچر در نظر گرفته بود که یکی از سنگین ترین پروژه های انیمیشن از نظر بافت و متریال تا آن سال به شمار میرفت.

پیتکس
Ptex

به عنوان مثال در تصویر بالا میتوانید نزدیک به نیمی از تکسچرهای استفاده شده در بدن دایناسور پروژه Meet the Robinsons را مشاهده کنید. در این پروژه تکسچرها بسیار بزرگ در نظر گرفته شده بودند و هر تکسچر از میلیارها texels تشکیل شده بود. همانطور که میدانید واحد تشکیل‌دهنده تصاویر دیجیتال Pixel ها هستند. در مبحث تکسچرینگ و فضای کاری textureها ، ساختار اولیه به نام texels شناخته می شود. Texels یا texture element کوچکترین واحد تشکیل‌دهنده یک تصویر گرافیکی دو بعدی از نوع texture mapping می‌باشند که تولید یک تصویر سه بعدی را میکند. به زبان بسیار ساده و غیر فنی، texel ها همان نقاط تکسچرها هستند. این تعریف به صورت دقیق و درست عبارست است از: هر texture از آرایه ای از texel ها تشکیل می‌شود که خود تصاویری هستند که از آرایه ای از pixel ها تشکیل شده اند.

Ptex

در این پروژه بسیاری از face های بدن دایناسور از تکسچرهای 2000×2000 تشکیل شده بود. همانطور که مشاهده میکنید حتی نویزهای رو بدن دایناسور نیز Bake شده و به عنوان یک لایه تکسچر استفاده شده است. با توجه به اسناد منتشر شده توسط والت دیزنی، در پروژه Meet the Robinsons، بیش از 6 میلیون فایل texture استفاده شده است به گونه‌ای که به صورت میانگین در هر رندر، بیش از 100 هزار تکسچر مورد پردازش قرار گرفته است. از این به بعد، توسعه دهندگان والت دیزنی به دنبال روش بهینه ای بودند که هم سرعت بیشتری نسبت به روش قبل داشته باشد و هم کیفیت بالاتری. شاید هم‌اکنون متوجه شوید که چرا والت دیزنی به دنبال تحولی در روش UV Mapping سنتی بود. در یک پروژه عادی که شاید نهایتاً 50 تا 200 تکسچر مورد استفاده قرار میگیرد، عملیات UV Mapping آنچنان زمانبر و پیچیده نخواهد بود اما زمانی که صحبت از 6 میلیون texture می شود، می بایست به آن‌ها حق دهیم که بگویند UV Mapping کارایی لازم را برای آن‌ها نخواهد داشت. زمان گذشت و والت دیزنی پروژه Bolt را کلید زد.

Ptex texturing tex per face polygon تکسچرینگ پیتکس پی تکس تسکچر dfmrendering
Ptex

در سال 2008 و زمانی که والت دیزنی مشغول تولید پروژه Bolt بود، متوجه شدند که دیگر امکان استفاده از روشهای قبلی برای آن‌ها میسر نیست. کیفیت تصاویر در این پروژه به نسبت سالهای قبل بسیار بالا رفته بود و همانطور که در تصویر بالا مشاهده میکنید، گفته شده است که این پروژه در مبحث تکسچرینگ و در مراحل پیش تولید 5 برابر پیچیده‌تر از meet the Robinsons بوده است. اگر به دقت این مطلب را خواهنده باشید متوجه شده‌اید که در تصویر ذکر شده است Pre-Production. زیرا بسیاری از texture ها در این مرحله Bake شده و بعداً در مرحله production رندر می شوند.
تا اینکه والت دیزنی بعد از مراحل تست و رسیدن به نتیجه مطلوب روش Per-Face Texturing یا پیتکس را معرفی نمود.

پیتکس
Ptex

همانطور که متوجه شده‌اید به منظور استفاده از پیتکس ، می بایست از سطوح subdivide استفاده نماییم. در این شرایط به ازای هر face در این سطح، یک texture جداگانه ذخیره می شود. حال تصور کنید به چه سطحی از کیفیت دست پیدا خواهید کرد. اینکه هرکدام از texture ها چه اندازه‌ای داشته باشند به نظر شما بستگی دارد. تا قبل از این صحبت از texture هایی با اندازه های 2K , 4K , 6K و … بود. اما با معرفی پیتکس تمامی اندازه های گفته شده میتواند برای هر face در نظر گرفته شود به جای اینکه این اندازه از texture برای کل مدل تولید شود. در نتیجه عملاً نمیتوان گفت به چه میزان کیفیت بالاتر خواهد رفت. در همین جا متوجه خواهیم شد که هنوز پیتکس برای پروژه های Game و Real-Time رندرینگ مناسب نخواهد بود و بهترین گزینه همان استفاده از روش سنتی UV Mapping خواهد بود زیرا استفاده از Ptex به معنای استفاده از هزاران هزار texture به ازای هر مدل خواهد بود که عملاً رندرینگ real-time را غیر ممکن خواهد کرد.البته هر دو شرکت AMD و Nvidia روشهایی را برای رندرینگ real-time با قابلیت پشتیبانی از Ptex ارائه داده‌اند که متأسفانه نمیدانم تا به حال در بازی مطرحی استفاده شده است یا خیر. در حال حاضر Nvidia تلاش بسیار زیادی برای استفاده از پیتکس در بازیهای رایانه ای سه بعدی نموده است و معتقد است که به ازای هر texture در روش قدیمی 18% صرفه جویی در Ptex خواهد داشت. همچنین امکان استفاده از اندازه های بزرگ texture را در زمان تولید و رندر به کاربران خواهد داد. به عنوان مثال Nvidia اجازه میدهد که شما تصاویر را در اندازه 8k x 8k بسیازید اما در اندازه 2k x 2k رندر نمایید. در این صورت میتوانید سرعت بالایی را در رندرینگ realtime داشته باشید.
اگر مطالب بالا را به دقت خوانده باشید متوجه خواهید شد که تمام تکسچرها در یک فایل Ptex ذخیره خواهند شد. در نتیجه هر فایل Ptex میتواند هزاران هزارن texture را در خود ذخیره کند و برای هر مدل فقط به یک فایل نیاز خواهید داشت. با توجه به اینکه Renderman مهمترین موتور رندرینگ در این شرکت می باشد، قابل پیش‌بینی است که به راحتی پیتکس را پشتیبانی کند. بدنبال آن نیز Vray , Mental ray و … نیز از Ptex پشتیبانی کرده و بعید است که در حال حاضر موتور رندرینگی وجود داشته باشد که پیتکس را Support نکند. اما ممکن است که شما در یک پروژه گیم در حال کار باشید و یا اینکه نرم افزارهای شما Ptex را پشتیبانی نکنند. در نتیجه همچنان به استفاده از روش UV Mapping محکوم خواهید بود. یکی از مشکلات استفاده از Ptex هم عدم امکان پشتیبانی و استفاده در همه نرم افزارهاست. در صورت استفاده از UV Mapping، تمامی نرم افزارهای گرافیک سه بعدی فایل شما را پشیتبانی خواهند کرد اما پیتکس یک پدیده نوظهور است و هنوز بسیاری از نرم‌افزارها امکان استفاده از آن را ندارند.

Ptex texturing tex per face polygon تکسچرینگ پیتکس پی تکس تسکچر dfmrendering
Ptex

در تصویر بالا میتوانید روش Atlas Texturing و پیتکس را با هم مقایسه کنید. توجه داشته باشید که در روش Ptex هرکدام از texture های میتواند به هر اندازه باشد. به عنوان مثال بجای اینکه کل texture صورت را در روش atlas به اندازه 4K در نظر بگیریم، میتوانیم هر کدام از texture های روش Ptex را با اندازه 4k ایجاد کنیم. نتیجه کار هم که کاملاً مشخص است با کیفیتی بسیار بسیار بالاتر از روشهای قدیمی تر. Ptex به صورت real-time هم توسط برخی از کارت های گرافیک پشتیبانی می شود. نکته مهم این است که در مرحله اول نرم‌افزار شما باید پیتکس را ساپورت کند تا بتوانید از قابلیت‌های کارت گرافیک در تولید real-time آن استفاده نمایید. بسیاری از کارشناسان Ptex را یک انقلاب در صنعت گرافیک سه بعدی و رندرینگ میدانند.
در بسیاری از پروژه های جدید روش UDIM Texturing جایگزین Ptex شده است.