خواه شما یک طراح صنعتی باشید، یا معمار یا طراح جواهر یا اینکه فقط برای سرگرمی، ایدههای ذهنی خود را در راینو تبدیل به یک مدل سهبعدی میکنید، بعد از اتمام مدلسازی سهبعدی معمولا لازم است به مدل سه بعدی خود متریال داده، آن را نورپردازی کنید و از آن یک تصویر نزدیک به واقعیت تهیه کنید. فرآیندی که به آن رندر کردن (Rendering) میگوییم. در راینو برای جان بخشیدن به مدلهای سهبعدی، میتوانید هم از کتابخانه متریالهای آماده استفاده کنید و هم تقریبا هر متریال دلخواه دیگری، از فلز و شیشه گرفته تا پارچه و چوب و سنگ و آسفالت راخودتان بسازید. حتی میتوانید از متریالهای ساخته شده در نرمافزارهای دیگر مانند مجموعه نرمافزارهای محبوب Adobe Substance 3D نیز در راینو استفاده کنید.
در صورتی که از یک متریال یکدست و یکرنگ مانند طلای براق یا پلاستیک بدون بافت استفاده میکنید، کار بسیار راحت است. اما زمانی که پای بافت در متریالها به میان میآید کار شما کمی دشوارتر خواهد شد. این بافت میتواند طرح رگههای چوب، خط و خشهای روی سطح فلز، بافت پارچه یا هر چیز دیگری باشد. آنچه در مورد این نوع متریالها باعث پیچیدهتر شدن کار میشود، نحوه قرارگیری بافت بر روی سطح است. در این پست به بررسی مفصل این مفهوم که Texture Mapping نام دارد خواهیم پرداخت. پس تا پایان این نوشته با من همراه باشید.
Texture Mapping چیست؟
همانطور که پیشتر اشاره شد، به نحوه تصویر شدن یک بافت بر روی سطح مدل سهبعدی Texture Mapping گفته میشود. این بافت میتواند یک لیبل باشد که میخواهید روی بطری یک شوینده نمایش دهید، یا نقشه فرو رفتگی و برجستگیهای سطح یک پارچه یا نقشهای که تعیین میکند کدام قسمت از یک متریال فلزی، براقتر باشد و کدام قسمت ماتتر. نگاهی به تصویر زیر درک بهتری از این مفهموم به دست خواهد داد:
در تصویر بالا میبینیم که یک بافت ثابت با روشهای مختلف میتواند روی سطح مدل سهبعدی اصطلاحا مپ شود. از آنجا که این ویژگی جزو ویژگیهای آبجکت به حساب میآید (و نه ویژگیهای متریال) بنابرین تنظیمات مربوط به آن را باید در قسمت properties آبجکت مورد نظر جستجو کرد.
به صورت پیشفرض (در صورتی که هیچ یک تنظیمات texture mapping را تغییر نداده باشید) بافت براساس راستاهای سطح انتخاب شده (u و v) بر روی آن مپ میشود. به این ترتیب طول و عرض تصویر بافت، بر روی راستای u و v سطح منطبق میشوند. (آشنایی بیشتر با ساختار و راستاهای سطوح در راینو) گرچه این نوع مپینگ در مواردی به خوبی جوابگوی نیاز طراحی هست، اما مشکلات خاص خود را نیز به همراه دارد. به عنوان مثال در صورتی که آیزوکروها توزیع یکنواختی در طول و عرض سطح نداشته باشند و در برخی قسمتهای سطح به هم نزدیک باشند و در برخی قسمتها از هم فاصله گرفته باشند، بافت اعمال شده بر سطح نیز در آن قسمتها فشرده یا کشیده میشود.
همچنین در صورتی که آبجکت شما از نوع polysurface باشد، ممکن است هر یک از surface های سازنده آن جهت و تراکم متفاوتی داشته باشند، که این باعث میشود بافت مورد نظر به صورت غیر یکنواخت بر روی سطح آبجکت اعمال شود و در لبههای داخلی آن درز ایجاد شود.
انواع Texture Mapping در راینو
در مواردی که مپینگ پیشفرض راینو نتیجه مطلوب را به دست نمیدهد، میتوانید از انواع دیگر Texture mapping استفاده کنید. برای این کار کافی است آبجکت(های) مورد نظر را انتخاب کرده و در پنل Properties روی آیکن کلیک کنید. همجنین میتوانید از ابزارهای نوارابزار Texture Mapping نیز برای این کار استفاده کنید.
در این قسمت بسته به فرم کلی مدل سهبعدی انتخاب شده، میتوانید یکی از انواع مپینگ را انتخاب کنید. نام هر یک از انواع مپینگ (که در تصویر اول این نوشته هم به همراه تصویر نشان داده شده است) به خوبی گویای کاربرد آن است. برای نمونه در صورتی که از گزینه Box Mapping استفاده کنید، آبجکت شما درون یک مکعب فرضی قرار داده میشود که تصویر بافت از هر وجه مکعب بر آبجکت میتابد. به همین ترتیب اگر گزینه Cylindrical Mapping را انتخاب کنید، مانند این است که آبجکت را درون یک استوانه فرضی قرار داده باشید و تصویر بافت از سطح دیواره استوانه و دو دایره ابتدا و انتهای استوانه به آبجکت میتابد. به این شکل سهبعدی فرضی که تصویر بافت از سطح آن بر آبجکت سهبعدی تابانده میشود، ابزارک مپینگ میگوییم و با اجرای دستور MappingWidget میتوانید آن را ببینید. تغییر اندازه و زاویهی این ابزارک در اندازه و زاویه بافت نیز تاثیرگذار است. با این توضیح واضح است که برای نمونه برای بافت روی بدنه یک ماگ بهتر است حالت Cylindrical و برای بافت نمای سنگی یا آجری یک ساختمان حالت Box مناسبتر است.
گسترده کردن سطوح برای بافت انداختن
در این میان اما فرمهای سهبعدی زیادی وجود دارند که با هیچ یک از انواع Texture Mapping که قبلتر توضیح داده شد، به نتیجه دلخواه نمیرسند. اینجاست که پای Unwrap کردن به میان میآید. برای درک بهتر مفهوم آنرپ کردن بیایید یک مثال از دنیای واقعی را با هم مرور کنیم. در صنعت کفش برای ساخت الگوی رویه کفش به صورت سنتی ابتدا سطح قالب را با نوارچسب کاغذی به طور کامل میپوشانند. به این کار کفنپوش کردن یا کفنی کردن قالب گفته میشود 🤔 حالا الگوی دلخواه بر روی این سطح کاغذی ترسیم میشود و بعد از برش دادن از قسمتهای دلخواه آن را گسترده کرده و از آن به عنوان الگوی برش چرم استفاده میشود.
در واقع آنرپ کردن یک سطح در راینو نیز فرآیندی مشابه گسترده کردن کفن روی سطح قالب کفش است. به این ترتیب شما بجای آن که بافت مورد نظر را روی یک سطح منجنی و سهبعدی اعمال کنید آن را روی گسترده تخت آن اعمال میکنید و به صورت خودکار به سطح سهبعدی منتقل میشود.
برای این کار در راینو کافی است آبجکت مورد نظر را انتخاب کرده و دستور Unwrap را در خط فرمان وارد کنید. پس از اجرای این دستور ابتدا از شما خواسته میشود کانال مورد نظر برای مپینگ را انتخاب کنید. توجه داشته باشید که یک آبجکت میتواند چندین کانال برای مپینگ داشته باشد که در شرایط مختلف از کانالهای مختلف آن استفاده شود. اما در بیشتر موارد نیاز به تغییر کانال نیست و با فشردن کلید Enter از صفحهکلید میتوانید کانال پیشفرض را بپذیرید و از این مرحله عبور کنید. در مرحله بعد نیز جزئیاتی از شما خواسته میشود. برای نمونه در صورتی که سطح شما در یک یا هر دو راستا بسته باشد، میتواند درز محل باز شدن آن را مشخص کنید، یا در صورتی که آبجکت انتخاب شده متقارن باشد میتوانید با گرینه SymmetryTip صفحه تقارن آن را مشخص کنید. باز هم در بیشتر موارد، تمام تنظیمات پیشفرض جوابگوست و نیاز به تغییر ندارد.
بعد از اجرای دستور Unwrap با تنظیمات دلخواه یک گسترده از آبجکت شما ایجاد میشود. اما آن را نمیبینید! برای مشاهده گسترده ایجاد شده با دستور Unwrap باید پس از انتخاب کردن آبجکت، دستور UVEditor را در خط فرمان وارد کنید تا پنجرهای با همین نام باز شود. پنجره UV Editor مانند یک نمای دوبعدی در راینو عمل میکند و مشابه نماهای استاندارد راینو میتوانید در آن پیمایش کنید. حتی میتوانید برخی دستورات را نیز روی گسترده ایجاد شده اجرا کنید و آن را به دلخواه تغییر دهید. توجه داشته باشید که گسترده ایجاد شده با دستور Unwrap (که آن را UV Map مینامیم) از جنس مش است و تنها دستوراتی را که روی مشها کار میکنند، میتوانید روی آن اجرا کنید.
در تصویر بالا بخشی از یک زیره کفش از جنس سابدی و گسترده آن در پنجره UV Editor را مشاهده میکنید. سمت راست پنجره ویرایشگر UV تنظیمات آن قرار دارد که در ادامه به برخی تنظیمات قسمت Texture اشاره میشود. در این قسمت در صورتی که گزینه Use material علامت خورده باشد به این معناست که هم در ویوپورت راینو و هم در پنجره ویرایشگر UV بافت متریال نسبت داده شده به آبجکت نشان داده شود. علاوه بر آن میتوانید گزینه Use texture را نیز انتخاب کنید. با انتخاب این گزینه به صورت پیشفرض یک بافت شطرنجی روی سطح آبجکت انتخاب شده نشان داده میشود. برای ریز و درشت کردن بافت بر روی آبجکت و یا تغییر جهت آن، کافی است مش گسترده (UV) را در پنجره ویرایشگر UV انتخاب کرده و اندازه آن را تغییر دهید یا بچرخانید.
با انتخاب گزینه Use texture با کلیک روی آیکن قلم میتوانید رنگ، اندازه و سایر تنظیمات بافت را تغییر داده و یا بجای بافت شطرنجی پیشفرض، از سایر انواع بافتهایی که راینو در اختیار شما قرار میدهد استفاده کنید. بخاطر داشته باشید که راینو ۸ دارای کتابخانه بسیار متنوعی از بافتهای آماده است که میتوانید از آنها در ساخت انواع متریالها استفاده کنید. برخی از این بافتها به صورت Procedural تولید میشوند و بنابرین شما میتوانید بینهایت بافت را با پارامترهای مختلف، با کیفیت عالی و به صورت غیرتکراری و بدون درز (Seamless) با این ابزارها ایجاد کنید.
در این مطلب به انواع بافتها در راینو پرداخته نمیشود. اما در صورت تمایل میتوانید به تفصیل در این باره در راهنمای رسمی راینو ۸ بخوانید.
علاوه بر بافتهای بصری که صرفا در ساخت متریال و رندر کاربرد دارند، با استفاده از آنچه در این نوشته توضیح داده شد و با دانستن برخی اصول و نکات، به راحتی میتوان بافتهای برجسته سهبعدی با قابلیت پرینت سهبعدی را نیز در راینو ایجاد کرد. با توجه به گستردگی این موضوع و با در نظر گرفتن پیشنیازهای آن، در نظر داریم به زودی یک دوره آموزشی آنلاین برای پوشش تمام ابعاد این موضوع برگزار کنیم. در این دوره تمام آنچه که برای ایجاد بافت سهبعدی بر روی سطوح و آمادهسازی فایل برای پرینت سهبعدی نیاز دارید، به همراه تمامی مقدمات آن و نرمافزارهای جانبی مورد نیاز به شما آموزش داده میشود.
جمعبندی
بافتها چه از نوع دوبعدی و صرفا بصری و چه از نوع سهبعدی و برجسته، بخشی جدانشدنی از تمامی هنرهای تجسمی هستند. در طراحی محصول، طراحی زیره کفش، طراحی جواهرات و تمامی حیطههای دیگر طراحی سهبعدی تسلط به ایجاد و کنترل بافتها میتواند برگ برندهای برای شما نسبت به رقبا باشد.
در این نوشته اشارهای هرچند مختصر و گذرا به برخی روشهای اعمال بافت بر سطح مدل سهبعدی در راینو داشتیم. بیشک پس از خواندن این نوشته براساس حیطه کاری خود، سوالات بسیاری در زمینه ایجاد بافت در راینو برایتان ایجاد شده است. اما جای نگرانی نیست، در گروه تلگرام پرسش و پاسخ راینو من و دوستان متخصص دیگری همواره جوابگوی سوالات شما هستیم. همچنین شرکت در دوره تخصصی بافت در راینو را به شما که میخواهید به صورت حرفهای و اصولی با فوت و فن و تکنیکهای ایجاد بافت در راینو آشنا شوید پیشنهاد میکنیم.
- UV Map جزو ویژگیهای آبجکت به حساب میآید و به همراه آن ذخیره میشود. بنابرین در صورتی که فایل خود را با فرمتی مانند obj یا fbx ذخیره کنید و آن را در نرمافزار دیگری که از این مفهوم پشتیبانی میکند باز کنید، UV Map نیز به نرمافزار مقصد منتقل شده و در آنجا قابل استفاده است.
- برای ایجاد UV Map با دستور Unwrap سه متد مختلف وجود دارد که هر یک از الپوریتم متفاوتی برای گسترده کردن سطح استفاده میکنند. به صورت پیشفرض متد Conformal در این دستور انتخاب شده است، اما متد AsRigidAsPossible بیشتر از دو متد دیگر اندازه سطح را ثابت نگه میدارد.
- UV Map مانند یک آبجکت مش است و تمام دستوراتی که روی مشها قابل اجرا هستند روی UV Map نیز کار میکنند. بنابرین میتوانید آن را تا حد زیادی ویرایش کنید. همچنین بسته به اینکه از چه متدی برای Unwrap کردن استفاده کرده باشید در قاب سمت راست پنجره UV Editor نیز ابزارهایی برای ویرایش UV در اختیار شما قرار داده میشود.