در صورتی که در پروژه های خود نیاز به ساخت مدلهای مورد نظرتان دارید، اولین قدم در این راه انتخاب روش درست مدلسازی است. حتماً بارها این مشکل را داشته باید که با یکی از روشهای مدلسازی کار را شروع کردهاید و در انتها متوجه شدهاید که محدودیتهای بسیار زیادی برای شما به وجود آمده است. حجم مدل، سطح مدل، نیازهای متحرک سازی، نیازهای Rigging و … همگی عواملی هستند که باعث میشود که در هر پروژه و هر مدل، امکان استفاده از روشهای منحصر به فردی به وجود آید. شاید در مدلسازی یک جسم ساده استفاده از روش Polygon modeling مناسب باشد و یا NURBS و … . اینکه در ساخت یک مدل از کدام یک از روشها باید استفاده کنیم، نیاز به شناخت متد مختلف، مزایا، محدودیتها و ابزارهای مورد استفاده در آن مدل خواهد بود. در این مطلب روش مدلسازی و ساختار NURBS را بررسی میکنیم و در مطالب آینده به دیگر روشهای مدلسازی متداول خواهیم پرداخت.
علت اینکه چندین روش در مدلسازی گرافیک کامپیوتری (CG) وجود دارد این است که امکان ساخت یک سطح سه بعدی در CG توسط توابع ریاضی متنوعی امکانپذیر است. یکی از این روشها به نام NURBS شناخته میشود که از جمله مهمترین و کاربردی ترین روشهای مدلسازی می باشد. NURBS برگرفته از کلمات Non Uniform Rational B-Spline می باشد. توجه داشته باشید که همانطور که ذکر شد این روشها توابع و ساختار ریاضی دارند پس الزاماً در گرافیک کامپیوتری استفاده نمیشوند و در محاسبات مهندسی و نقشه کشی دستی نیز مورد استفاده قرار میگرفتند. با ظهور عصر کامپیوتر این محاسبات به رایانه های محول شد تا بتوانند به طرز صحیحی از این روشها استفاده نمایند. از سال 1990 زمزمه استفاده از روش مدلسازی NURBS در گرافیک کامپیوتری به گوش میرسید و از همان سالها کاربران متوجه قدرت و انعطاف پذیری این روش مدلسازی شدند. امروزه روش NURBS به صورت یک روش یا یک تکنولوژی شناخته میشود و اکثر نرم افزارهای مدلسازی ابزارهای متعددی را برای تولید و ویرایش مدلهای NURBS ارائه داده اند.
NURBS روش مدلسازی سطوح سه بعدی به صورت فشرده و یکپارچه (Compact ) می باشد. در این روش کاربران قادر خواهند بود که توسط Spline ها، سطوح های ساده و پیچیدهای را ایجاد نمایند. اجازه دهید در ابتدای کار کمی دقیقتر به اصطلاحات گرافیکی بپردازیم زیرا در تمامی نرم افزارهای مدلسازی با این اصطلاحات سروکار دارید. در زمان قدیم که ترسیم خطوط منحنی توسط دست انجام میپذیرفت از یک نوار فلزی انعطاف پذیر یا یک نوار چوبی انعطاف پذیر ( یا هر جنسی که قابلیت انعطاف پذیری داشته باشد مانند خط کش های پلاستیکی که قابل خم شدن هستند ) برای رسم منحنی ها استفاده میشده است. همانطور که میدانید برای رسم یک منحنی نیاز به حداقل سه نقطه می باشد. زیرا با دو نقطه میتوان هزاران منحنی رسم کرد که از آن دو نقطه عبور میکنند. در نتیجه با داشتن حداقل سه نقطه و یک وسیله به نام Spline که همان قطعه فلزی انعطاف پذیر میباشد، با خم کردن فلز بروی سه نقطه اقدام به رسم منحنی میکردند. از نام این وسیله بعدها برای نام گذاری اینگونه منحنیها استفاده شد. به عبارت دیگر امروزهSpline ها، گونهای از منحنی ها هستند. از منظر ریاضی spline ها نمایش توابع چند جملهای در دستگاه مختصات هستند. این توابع میتوانند توابع سادهای مانند ax+b باشند یا از توابع چند جملهای مانند ax2 + bx +c تشکیل شده باشند. با انتخاب دو نقطه ، یک توالی از پاره خطها بین این دو نقطه ایجاد میشود که تولید یک خط منحنی را می دهد. توجه داشته باشید که به منظور رسم یک خط منحنی توسط دست به راحتی هر قوس و خمی را که نیاز داشته باشیم ترسیم میکنیم. اما در گرافیک رایانه ای چیزی به نام خط منحنی به صورت یک داده مستقل مفهوم نخواهد داشت. اینکه انحنای خط چقدر باید باشد؟ همواری منحنی به چه میزان است و دهها پارامتر دیگر را فقط میتوان به صورت چشمی بیان کرد. این پارامترها بر اساس تابع منحنی مورد نظر مشخص میشود . در گرافیک رایانه ای یک خط منحنی از چندین پاره خط تشکیل می شود. در نتیجه هر چه تعداد پاره خط ها بیشتر باشد خط هموار تر (Smooth) بوده و قوس خط نرمتر خواهد بود. همانطور که متوجه شدید، هموار بودن یک Spline به تعداد پاره خطهای تشکیلدهنده آن است. در تمامی نرم افزارهای گرافیک سه بعدی، تعداد این پاره خط ها به صورت پارامتریک تعیین می شود. این بدان معناست که در هر زمان میتوانید بنا به ضرورت تعداد این پاره خط ها را کم یا زیاد کنید. در این صورت مدل تولید شده توسط Spline ها میتواند در هر قسمت از فرایند مدلسازی ساختاری فشرده تر یا سبکتر داشته باشد.
همانطور که میدانیم برای تولید یک صفحه یا یک سطح نیاز به حداقل دو محور داریم. اگر سطح ما صاف باشد میتوان با داشتن دو خط مسیر تشکیل صفحه را در صحنه ترسیم نمود. حال تصور کنید به جای استفاده از خطوط، از منحنی ها برای تشکیل یک سطح استفاده نماییم. یعنی اینکه با داشتن چند Spline سطحی را ایجاد کنیم که صاف نبوده و بلکه دارای پستی و بلندیهایی منطبق بر منحنی های خود است. سطحی که از Spline های به وجود میآید را به نام Surface می شناسیم. Surface های سطوحی هستند که از Spline های متعددی ایجاد شده اند.
خوب اجازه دهید به NURBS ها برگردیم. همانطور که ذکر شد این کلمه از Non Uniform Rational B-Spline گرفته شده است. B-Spline یا Basis Spline ، منحنی های ساده چند جملهای هستند. کلمه Non Uniform به منحنی های پارامتریک اشاره دارد. این پارامترهای نشان میدهند که یک منحنی از نوع Non Uniform از چندین نقطه یا گره تشکیل شده است که این گرهها یک منحنی Bezier را تشکیل می دهند. Bezier Curve یا منحنی های Bezier به منحنی های پارامتریک گفته میشود که این منحنی های قادرند تعداد نقاط یا گرههای منحنی خود را به صورت پارامتریک تعریف نمایند و به صورت نامحدود کوچک و بزرگ شوند. از این رو سطحی را که توسط این منحنی ها ایجاد میشود سطح Bezier Surface میگویند. در نتیجه این نوع سطح و منحنی میتوانند به راحتی گرههای جدیدی را برای تعریف منحنی و سطح جدید در اختیار بگیرند.Rational نیز به یک تعریف ریاضی اشاره دارد که در آن نشان میدهد سطوحی که دارای این قابلیت هستند میتوانند به صورت منحنی های آزاد یا free-form تولید شوند و این منحنی ها از تعدادی گوشه یا گره مشخص تشکیل شده اند. مانند دایره ، بیضی و … که تعداد نقاط تشکیلدهنده منحنی آن مشخص و برابر 4 می باشد.
اجازه دهید با توجه به این تعاریف NURBS را به زبان سادهتری بیان کنیم. NURBS روشی است که در آن سطوح پارامتریک توسط منحنی های آزاد تولید می شود. در نتیجه سطوحی که با روش NURBS تولید شده است به صورت کاملاً پارامتریک ایجاد میشوند و در هر مرحله میتوانید خصوصیات این سطح را تغییر دهید. اما چرا سطوح NURBS برای ما مهم هستند؟ این سطوح به راحتی ایجاد شده و به راحتی ویرایش و کنترل می شوند. شما میتوانید چندین سطح NURBS را با یکدیگر ترکیب کنید و سطح جدیدی بوجود آورید.سطوح NURBS هموار و بوده و از نظر پردازشی بار مناسبی را نسبت به سطوح Polygon همسان خود به سیستم وارد می کنند. این سطوح توسط نقاط یا گرههایی کنترل میشوند که کار ویرایش آنها را برای کاربران بسیار ساده و دلپذیر میکند. یکی از مهمترین دلایل استفاده از روش مدلسازی NURBS سرعت بالای تولید آنهاست. همچنین ویرایش این توسط نقاط کنترلی به سادگی و سرعت بالایی انجام می شود. تولید مدلهای NURBS به سبب سادگی و قدرت کنترلی، جز جدایی ناپذیری از برنامههای مدلسازی سه بعدی شده است.
دومین دلیل استفاده از سطوح NURBS کیفیت بالای این سطوح در کنار تعداد سطح کمتر آنهاست. این جمله بدان معناست که با ایجاد یک مدل با سطح NURBS، کیفیت بسیار بالایی در مدلسازی خواهیم داشت در حالی که حجم مدل ایجاد شده از نظر تعداد سطح ایجاد شده در مقایسه با دیگر روشهای مدلسازی مانند Polygon Modeling بسیار بسیار پایینتر بوده و در نتیجه سرعت پردازش آنها بسیار بالاتر خواهد بود و با توجه به اینکه یک مدل بزرگ از تعداد سطح بسیار کمی تولید شده است، در نتیجه ویرایش آن مدل به مراتب راحتتر و سریعتر خواهد شد. همچنین بار کمتری بروی سیستم قرار گرفته و تولید صحنههای بسیار پیچیده و همراه با تعداد زیاد مدلها بسیار سبکتر و روان تر از روشهای دیگر مدلسازی خواهد بود. و در نهایت وجود سطح کمتر در مدل، تعداد خطای کمتری در مدلسازی را به همراه خواهد داشت. با توجه به ساختار NURBS ها، این دسته از مدلها از حافظه بسیار کمتری (RAM) نسبت به سایر روشهای مدلسازی نیاز دارند. بنابراین زمانی که صحبت از ساخت مدلهای با جزییات بالا میشود میتوانید بروی روش NURBS حساب بازکنید. سطوح تولید شده توسط NURBS به سادگی قابل تجزیه به سطوح کوچکتر بوده و درز و فاصلهای بین سطوح بوجود نخواهد آمد. این سطوح همانند یک زیپ به دیگر سطوح متصل شده و یک سطح یکپارچه جدید را ایجاد میکنند.
در ساخت مدلهای اورگانیک بشدت توصیه میشود که از روش NURBS استفاده نمایید. در این حالت کیفیت بسیار بالای این روش در کنار همواری مناسب سطوح کار را برای کاربران بسیار ساده خواهد کرد. البته مدلسازی با روش NURBS نیازمند مهارت کافی بوده و در صورت عدم آشنایی با این روش در اواسط کار مدلسازی بشدت درگیر و مأیوس خواهید شد. تولید مدل در این روش نیازمند یک برنامه و متد از پیش تعریف شده است. باید دید مناسبی از این روش داشته باشید تا بتوانید به راحتی مدل خود را ایجاد کنید وگرنه در تولید مدل به مشکلات اساسی برخواهید خورد. اینکه از چه منحنی هایی استفاده کنید و کجا را به صورت درز به همدیگر متصل کنید و … نیاز به تجربه و مهارت دارد. اما در صورتی که به این روش مسلط شوید به راحتی متوانید مدلهای بسیار پیچیده را در کمترین زمان و با بالاترین کیفیت تولید نمایید. اما در همین بخش نیز مواردی وجود دارد که جز محدودیتها و مشکلات روش مدلسازی NURBS خواهد بود. اول اینکه ساخت مدلهای پیچیده با سطوح متنوع نیاز به ترکیب سطوح NURBS بسیار زیادی خواهد و اینکار کمی مشکل است و دربرخی شرایط غیر ممکن. سطوح یکپارچه به سادگی مدل میشود اما سطوحی که دارای لبه های تیز و خشک باشد، از تکههای مختلف و چند لایه تولید شده باشد و در کل هموار نباشد، به سختی با NURBS تولید می شود.
یکی از مشکلات اساسی مخصوصاً برای کسانی که نمیدانند از چه محل هایی باید سطوح به یکدیگر متصل شوند این است که در زمان ساخت animation، متحرک سازی مدل از محل های درز سطوح بسیار سخت و عذاب آورد خواهد بود. از همین رو میگویم که این روش نیاز به تمرین و تجربه خوبی دارد تا بتوانید محل درزها را در حین فرایند مدلسازی به دقت تعیین کنید.در بسیاری از موارد مانند مدلسازی ماشین ها، وسایل نقیله هوایی، مدلهای اورگانیک و … استفاده از روش NURBS به عنوان یک اصل مطرح میشود و استفاده از این روش برای موارد ذکر شده بسیار منطقی و سریع خواهد بود.
همچنین پیکرتراشی یا Sculpt مدلهای تولید شده توسط NURBS بسیار سبکتر و سریعتر از مدلهای Polygon خواهد بود و تکنیک های پیشرفته ای برای این روش در اختیار کاربران قرار خواهد داشت. یکی دیگر از نقاط ضعف این روش مدلسازی این است که در بسیاری از موتورهای رندرینگ، در زمان رندر این مدلها از NURBS به Polygon تبدیل میشوند که این امر در برخی شرایط بسیار زمان بر بوده و حافظه بسیار زیادی را برای این موضوع مصرف خواهد کرد. با توجه به اینکه بسیاری از موتورهای رندرینگ از الگوریتم یکسانی برای نورپردازی استفاده میکنند، مواردی مشاهده شده است که در صورت عدم تبدیل NURBS به Polygon، امکان نورپردازی مدل وجود نخواهد داشت و تمامی سطوح این مدل ها که توسط روش NURBS ساخته شدهاند تاریک و سیاه خواهد افتاد و امکان دریافت پرتوهای نور را نخواهند داشت. به ندرت میتوانید موتور رندرینگی را پیدا کنید که بتواند سطوح NURBS را بدون تبدیل به Polygon رندر نماید. به همین منظور کاربران حرفهای، قبل از رندر صحنه توسط اسکریپت ها و پلاگین های موجود، تمامی مدل ها را به Polygon تبدیل میکنند. در این صورت میتوانند در حافظه مصرفی و سرعت رندرینگ تغییرات زیادی را اعمال نمایند. در بیشتر نرم افزارهای سه بعدی، توابعی وجود دارد که به کاربران اجازه میدهد در زمان رندر میزان چگالی مدل را در تبدیل به Polygon تعیین نمایند. به عنوان مثال شما میتوانید یک مدل NURBS را به یک مدل Polygon با هزار face تبدیل کنید یا اینکه همان مدل را به یک مدل با یک میلیون face تبدیل کنید. مشخصاً انتخاب چگالی تبدیل در اندازه حافظه مصرفی، سرعت رندرینگ و از همه مهمتر کیفیت رندر بسیار تأثیر گذار است.
فراموش نکنید که در هر لحظه میتوانید مدل خود را از NURBS به Polygon تبدیل کنید. پس هنوز NURBS میتواند راهکار مناسبی باشد.این یک روش عمومی است که کاربران مدل خود را با NURBS شروع میکنند و در هر جا که لازم باشد به دیگر ساختارها تبدیل می نمایند. بسیاری از کارشناسان این رشته معتقد هستند که تفاوت NURBS و Polygon مانند تفاوت Vector و Bitmap است. پس واضح است که این دو روش کاربرد های کاملاً متفاوتی را دارند و این کاربر نرمافزار است که می بایست این تفاوت را از ابتدا بشناسد و بهموقع از هریک از آنها استفاده کند. در نتیجه انتخاب این روش از مدلسازی مستلزم درک مناسب و شناخت کافی از نرمافزار و موتور رندر و همچنین نوع مصرف مدل ساخته شده خواهد بود. روش NURBS یکی از بهترین و سریعترین روشهای مدلسازی در نوع خود بود و قدرت بسیار زیادی را به کاربران خواهد داد.