تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 1 از 1

نام تاپيک: Anti Aliasing در V-Ray

  1. #1
    Banned
    تاريخ عضويت
    Jul 2009
    محل سكونت
    -^.
    پست ها
    1,713

    پيش فرض Anti Aliasing در V-Ray

    محمد رضا دارابی جاه
    همانطور که میدانید تصاویر دیجیتال متشکل از نقاطی می باشند که به آنها Pixel گفته می شود. هر Pixel کوچکترین واحد تشکیل دهنده یک تصویر می باشد که دارای یک رنگ واحد است. از کنار هم قرار گرفتن تعدادی از Pixel ها، یک تصویر شکل خواهد گرفت. هر چه تراکم و نزدیکی این Pixel های بیشتر باشد (Resolution) کیفیت تصویر بالاتر و تصویر دارای جزییات بیشتری خواهد بود.
    نمایش تصاویر بروی صفحه کامپیوتر نیز بر اساس همین ساختار بوده و در نتیجه آن میتوان با استفاده از همین نقاط ساختار تصویر را مشاهده نمود. اما در این بین، پدیده ای بوجود می آید که مطلوب کاربران نخواهد بود و می بایست روشهایی برای رفع این موضوع اتخاذ نمایند.
    Aliasing پدیده ای است که در نمایش تصاویر دیجیتال بوجود می آید. این پدیده در خطوط مورب و منحنی ها بوجود می آید. علت آن هم این است که کامپیوتر برای نمایش تصاویر وابسته به Pixel ها می باشد.هر پیکسل به شکل یک مربع دیده می شود تا بتواند فضای بین خود و Pixel مجاورش را به صورت کامل پر نماید. این Pixel ها در کل، به صورت ماتریسی در کنار یکدیگر قرار دارند تا بتوانند تصاویر را نمایش دهند. زمانی که یک خط مورب و یا خمیده قرار است نمایش داده شود، نیاز است که این پیکسل ها به صورت درستی به کار گرفته شوند. برای درک بهتر این موضوع میتوانید به تصویر زیر توجه نمایید. در این تصویر میتوانید مشاهده نمایید که Pixel ها چگونه یک تصویر با خطوط خمیده را نمایش خواهد داد. همانطور که مشاهده می شود در قسمت بالای تصویر با توجه تراکم مناسب پیکسل ها ، لبه های خمیده به درستی نمایش داده شده اند. اما همان لبه زمانی که بزرگتر نمایش داده شود به دلیل بوجود آمدن پدیده Aliasing دندانه دندانه نمایش داده می شود. در تصویری که 16 بار بزرگتر شده است ، pixel ها به خوبی قابل مشاهده هستند و میتوانید متوجه شوید که این پدیده چرا و چگونه به وجود می آید.
    در موتور رندرینگ V-Ray و تمامی موتورهای رندرینگ دیگر و در تمامی تصاویر دیجیتال این پدیده به وجود خواهد آمد. از این رو روشهایی برای مدیریت و بهبود این پدیده نامطلوب معرفی شده است که هر کدام از این روشها دارای مزایا و معایبی می باشند.
    در این مطلب میخواهیم روشهای مقابله با پدیده Aliasing یا همان Anti-Aliasing را بررسی کرده و از نظر سخت افزاری و زمان رندرینگ هر یک با یکدیگر بررسی نماییم.
    Anti-Aliasing همانطور که از نامش پیداست، تکنیک ها و روشهای کاهش و یا از بین بردن Aliasing می باشد. تمامی روشهای بهبود Aliasing بر یک اصل استوار هستند و آن اضافه کردن Pixel ها به لبه های Aliase شده می باشد. اما در اینجا مهم این است که چگونه و با چه متدی این کار را انجام دهیم. به تصویر زیر توجه کنید تا بهتر این موضوع را درک نمایید. همانطور که در تصویر بالا مشاهده میکنید، بخش سمت چپ بدون اصلاح و با پدیده Aliasing نمایش داده شده است. در بخش راست، یکی از الگوریتم های Anti-Aliasing برای اصلاح تصویر به کار برده شده که نتیجه آن را میتوانید مشاهده نمایید. در این تصویر دو فلش قرمز و آبی به دو نوع Pixel اضافه شده برای اصلاح Aliasing اشاره میکنند. تفاوت این دو نوع پیکسل در این است که شدت رنگ و محل هریک از آنها توسط الگوریتم مشخص و در محل مناسبی از لبه قرار میگیرد. همانطور که مشخص است با استفاده از این دو نوع Pixel ، و الگوریتم مربوطه، تصویر نهایی که در بالا قرار داد به صورت کاملا هموار (Smooth) دیده می شود.
    تفاوت روشهای Anti-Aliasing در این است که هر کدام، از چند نوع Pixel ، با چه تفاوتی در رنگ و شدت رنگ، و در چه محلی از لبه تصویر، اقدام به اصلاح Aliasing میکنند. هر الگوریتم مزایا و معایبی دارد که به نیاز شما در هر تصویر مربوط می شود. به عنوان مثال یک الگوریتم بسیار سریع و کاربردی می باشد اما نه برای رندرینگ انیمیشن و برعکس یک الگوریتم در رندرینگ انیمیشن بسیار خوب ظاهر می شود اما در تصاویر تک فریم از کیفیت خوبی برخوردار نخواهد بود. مساله دیگری که در استفاده از روشهای متنوع Anti-Aliasing یا AA باید در نظر گرفته شود، زمان پردازش هر کدام از آنهاست. الگوریتم های AA علاوه بر اینکه به کیفیت نهایی کار حساس هستند، سعی میکنند که در زمان رندرینگ نیز صرفه جویی نمایند. برای آشنایی بیشتر شما، تمامی تست ها را با سیستم سری W-100 مدل 16 Threads انجام داده ام تا بتوانید مقایسه دقیقی از هر روش داشته باشید.
    به تصویر زیر نگاه کنید. در سمت چپ تصویر ما در زمان رندرینگ از الگوریتم های AA استفاده کرده است با زمان رندرینگ 5 دقیقه و در سمت راست همان تصویر بدون استفاده از AA رندر شده است با زمان رندرینگ 3:25 دقیقه . این در حالی است که در زمانی که از Anti-Aliasing استفاده نکردیم ، حدود 27 درصد فضای کمتری از حافظه RAM اشغال شده بود. حال تصور کنید در حال رندرینگ یک صحنه انیمیشن 10 دقیقه ای هستید. در این حالت در صورتی که از AA استفاده نکنید 18000x95 ثانیه معادل 28500 دقیقه ، یعنی چیزی در حدود 19 روز تمام در زمان رندرینگ شما صرفه جویی می شود. برای مثال دوم یک تصویر ساده تر با المانهای رندرینگ متفاوتی را آزمایش کردیم. در تصویر زیر همانطور که مشخص است، رندرینگ به گونه ای انجام شده که عدم استفاده از Anti-Aliasing به صورت کامل در تصویر قابل مشاهده است. در تصویر زیر زمانی که از الگوریتم های Anti-Aliasing استفاده کردیم زمان رندر در همان دستگاه W-100 در حدود 380 ثانیه انجام پذیرفت در حالی که با غیر فعال کردن AA زمان رندرینگ به 90 ثانیه کاهش پیدا کرد و 23 درصد فضای کمتری از حافظه RAM اشغال شد.
    همانطور که در ابتدای مطلب عرض خواهد شد، در موتور رندرینگ محبوب V-Ray ، در بخش تنظیمات رندرینگ، بخشی به نا Image Sampler وجود دارد. در این بخش توابعی برای وجود دارد که عملیات sampling و filtering را بروی تصاویر انجام داده و مشخصات نهایی pixel های یک تصویر را مشخص می نماید. این توابع برای بهینه سازی و هموار سازی (Smoothing) و خذف نویزها (Noise Removal) ، آرتی فکت ها ، تیزی و دندانه ای شدن لبه ها (sharpness) و جلوگیری از بوجود آمدن پیکسل های نا خواسته مخصوصا در رندرینگ افکت های Reflect وRefract و بطور کل پدیده هایی که در امر ثبت دیجیتال بوجود می آیند موثر می باشند. با توجه به تعاریف انجام شده واضح است که Anti-Aliasing جزء جدایی ناپذیر هر تصویر دیجیتال می باشد.
    V-Ray چندین روش را علاوه بر روشهای داخلی نرم افزارهای 3DS Max , Maya , Rhino و Blender برای Anti-Aliasing در نظر گرفته است. این روشها را می بایست بر اساس نیاز خود انتخاب کنید.
    قبل از هر چیز باید نکته ای را متذکر شوم. متاسفانه در برخی دوره های آموزشی غیر علمی، شنیده ایم که مدرس دوره می گوید "فلان روش یا الگوریتم، متد مناسبی نیست" و یا اینکه میگویند "این الگوریتم خوب و دیگری الگوریتم نا کارآمدی است". مطمئن باشید اگر یک الگوریتم نا کارآمد باشد از برنامه حذف خواهد شد. این موضوع فقط مربوط به Vray نیست و در تمامی موتورهای رندرینگ این موضوع به همین ترتیب خواهد بود. در غیر اینصورت کمپانی Chaos Group تنظیمات و الگوریتم های ناکارآمد و بدرد نخور را از برنامه حذف می کرد.
    بنابراین باید بدانیم که هر الگوریتم و هر روش، بنا به موقعیت و نوع کاربری، ودید کاربر کارایی خاص خودش را دارد و تنظیمات نسبت به خروجی کاملا متغیر هستند. دوما تنظیماتی که رایج شده و حتی تدریس می شوند اصولا همان تنظیماتی هستند که در صحنه های آماده Archmodels های کمپانی Evermotion استفاده می شود و به عنوان تنظیمات خوب ! به کار برده می شوند. البته امروزه با روی کار آمدن سایت های معتبر و علمی مانند VrayTuts.ir این ابهامات در حال کم رنگ تر شدن می باشد و با ارائه آموزشهای اصولی که موسسین این سایت در اختیار کاربران قرار میدهند روز به روز شاهد ارتقا سطح دانش کاربران خواهیم بود.
    در اینجا ما با مفهوم و نوع این تنظیمات کاری ندارم زیرا این بخش مربوط به آموزش هایی سایت می باشد که امیدوارم مدرسین سایت Vraytuts.ir در صورت نیاز این آموزش ها را در سایت قرار دهند که مکمل این مطلب گردد.
    در اینجا صرفا مفاهیم و کارایی الگوریتم ها از منظر اجرایی و سرعت پردازشی بر اساس سخت افزار مورد بررسی قرار خواهد گرفت . زیرا اعتقاد دارم سال ها انجام کاری طوطی وار و صرفا برای کسب درآمد ، کاری خسته کننده و خالی از روح است . وقتی می توان ازانجام کاری لذت برد که با دانش در آن حیطه وارد شد و در اینصورت می توانیم قدم های بهتری را برای پیشرفت و افزایش سطح آگاهی برداریم .
    خوب قبل از تشریح الگوریتم ها، باید به یک نکته که در بالا هم اشاره شد بیشتر بپردازیم. لطفا با دقت به تصویر زیر نگاه کنید. تصویر سمت چپ بدون اصلاح لبه و یا همان افکت Aliasing می باشد. اینبار با 3 روش این تصویر را اصلاح کرده ایم. در روش اول از Pixel هایی با 50% شدت رنگ برای تکمیل لبه ها به صورت درج در فضاهایی خالی استفاده کرده ایم. در روش دوم از دو نوع Pixel با 50% و 25% با درج یکی درمیان میان پیکسل های خالی استفاده شده و در روش سوم نیز از همان تکنیک روش دوم با درج نامنظم استفاده شده است. به صورت کلی الگوریتم های Anti-Aliasing نیز به همین روش عمل میکنند. اجازه دهید این الگوریتم ها را بر اساس ساختار معرفی شده V-Ray بررسی کنیم.
    توجه کنید که نسخه های مختلف V-Ray تفاوتی در الگوریتم و ساختار آنها ندارند زیرا این الگوریتم ها الگوریتم های ریاضی بوده و وابسته به موتورهای رندرینگ خاصی نیستند. در نتیجه نسخه های 2 و 3 Vray همگی با یک نوع ساختار AA کار میکنند. برای دوستانی که با مفهوم الگوریتم آشنایی ندارند باید عرض کنم که الگوریتم به "روش انجام دادن یک کار " اطلاق می شود. به عنوان مثال اگر برای محاسبه رادیکال یک عدد از دو الگوریتم X و Y استفاده کنیم، هرکدام از یک روش مجزا این کار را انجام اما نتایج و سرعت رسیدن به جواب در هر کدام متفاوت خواهد بود. به عنوان مثال امکان دارد روش X سریعتر به جواب برسد اما نتواند بیش از 4 رقم اعشار را محاسبه کند و روش Y کندتر عمل کرده اما تا 12 رقم اعشار را بتواند محاسبه کند. اینکه شما از کدام الگوریتم استفاده میکنید کاملا وابسته به نیاز پروژه و کاربری شما خواهد داشت. همانطور که تصویر بالا مشاهده میکنید اولین الگوریتم AA در Vray به نام Fixed شناخته می شود. این نوع الگوریتم ها (که من به آنها روشهای زورکی میگویم ) روش خاصی برای کاهش زمان پردازش و افزایش سرعت و کیفیت ندارند. پس ، نتیجه کار آنها در تمام خمیدگیها و خطوط مورب در طول تصویر یکسان خواهد بود.
    اجازه دهید برای روشن شدن موضوع یک مثال ساده بزنم. فرض کنید یک خدمتگزار میخواهد وسایل خانه را گردگیری کند. اگر بخواهد به روش Fixed این کار را انجام دهد می بایست در خانه شروع به حرکت کند و با رسیدن به هر وسیله ای ، بدون توجه به اینکه تمیز یا خاک گرفته است آن را گرد گیری کرده و به سراغ وسیله دیگر می رود.
    در نوع Fixed نیز دقیقا با همین روش روبرو هستیم. در نتیجه همانطور که مشاهده میکنید فقط یک پارامتر به نام Subdiv برای اینکار وجود خواهد داشت. همانطور که حدس می زنید اینکار دقیق و ساده می باشد اما بسیار زمان گیر خواهید بود. نکته ای در مورد Fixed مطرح است این است که این روش با افزایش تعداد واحد های پردازشی ( CPU Cores / Threads ) بشدت بهینه خواهد شد.
    در تصویر زیر دو مقدار متفاوت 1 و 10 برای پارامتر Subdivs در نظر گرفته ایم. این بدان معناست که خدمتگزار خانه بجای استفاده از یک دستمال بزرگ و یکبار کشیدن بروی اجسام، از یک دستمال با اندازه یک دهم آن استفاده نماید. در نتیجه برای تمیز کردن کل یک گلدان مجبور است که ده مرتبه بیشتر کار کنید تا کل سطح گلدان را بتواند تمیز کند. همانطور که ملاحظه می فرمایید زمان رندر این تصویر در سیستم W-100 از 50 ثانیه به 143 ثانیه افزایش خواهید یافت. پس اگر یک تصویر را حدود یکساعت رندر نمایید ، با افزایش 10 برابری پارامتر Subdiv زمان رندر شما تقریبا 3 ساعت خواهد شد.
    همانطور که مشخص است اگر تعداد وسایل خانه بیشتر باشد، خدمتگزار زمان بیشتری را برای تمیز کردن باید صرف کند. در الگوریتم Fixed نیز هر چه موضوعات درون صحنه و لبه های خمیده و اوریب بیشتر باشد زمان به صورت تصاعدی افزایش خواهد یافت.
    نکته مثبت آن این است که با بالا بردن عدد Subdivsمطمئن می شویم که به یک میزان نمونه برداری از Pixel های صورت خواهد گرفت و Pixel های اضافه شده به لبه ها در طول صحنه یکسان خواهد بود. این مهمترین دلیل استفاده از این روش می باشد که مورد نظر کاربران جلوه های ویژه (VFX) و دیگر کاربرانی است که به روش Render Passing عمل میکنند. زمانی که تمام لبه ها یکسان تولید شود، Key زدن بروی صحنه بسیار دقیق تر خواهد بود. الگوریتم یا روش دومی که Vray برای اصلاح Aliasing از آن استفاده میکند روش DMC Sampling میباشد. این روش که از الگوریتم Monte Carlo استفاده میکند. همانطورکه میدانید Monte Carlo یکی از پرکاربردترین روشهای حل مسائل در زمینه های گرافیک رایانه ای، محاسبه پرتوها و بازتاب آنها و جابجایی نور می باشد و در بسیاری از بخش های معادلات رندرینگ از آن استفاده شده است. Monte Carlo همانطور که میدانید یک الگوریتم تصادفی است. یعنی برای بدست آوردن نتیجه توسط این روش ، نمونه ها به صورت تصادفی انتخاب می شوند. برای مثال، خدمتکار منزل برای تمیز کردن وسایل خانه به جای اینکه از روش Fixed استفاده کند و تمامی وسایل را به ترتیب تمیز نماید، وسایل منزل را به صورت تصادفی انتخاب کرده و تمیز میکند. اینکار باعث می شود که در محلی از خانه که وسایل بیشتری کثیف هستند، انتخاب های بیشتری را انجام داده و در محلی از خانه که وسایل تمیز هستند زمان کمتری را تلف نماید.
    روش مونته کارلو به دو صورت قطعی و غیر قطعی محاسبه می شود. DMC یا همان روش Deterministic Monte Carlo روش قطعی محاسبات مونته کارلو می باشد. در این روش نیاز به سخت افزای با سرعت پردازش بالا ( CPU Core Clock ) بیشتر احساس می شود تا سیستمی با تعداد واحد پردازشی بالا (CPU Core / Threads ) .
    همانطور که ذکر شد DMC از روش نمونه برداری تصادفی (Random Sampling) سود می برد به نسبت روش Fixed از سرعت بالاتری برخوردار است. .همانطور که در مثال خدمتکار ذکر شد، روش نمونه برداری در DMC به نحوی خواهد بود که باعث افزایش کارایی در نحوه محاسبه می گردد که به صورت مستقیم به تعداد موضوعات صحنه و وجود لبه های اجسام بستگی دارد.
    پارامترهای DMC همانطور که انتظار می رود با روش Fixed متفاوت هستند. در این قسمت دو پارامتر MinSubdivs و MaxSubdivs را در اختیار داریم. با توجه به اینکه نمیخواهم در روند آموزشی وب سایت VrayTuts .ir دخالت کنم، تشریح این پارامترها را به عهده دوستان عزیزم میگذارم. اما برای روشن شدن موضوع مثال خود را کامل میکنم. خدمتکار منزل برای تمیز کردن وسایل منزل به روش DMC یک شرط را این صورت برای خود قرار میدهد. " اگر میزان کثیفی و گرد و غبار بروی اجسام در یک اتاق در بازه مشخصی باشد مثلا حداقل 1 میلی متر گرد و خاک بروی ظروف تا حداکثر 3 میلی متر ، در آن اتاق باید ظروف و اجسام بیشتری را به صورت تصادفی انتخاب کنم تا در اتاقی که زیر 1 میلی متر گردو خاک بروی ظروف آن نشسته است".
    در DMC نیز MinSubdivs به معنی حداقل میزان Sample ها برای هر پیکسل و MaxSubdivs به معنی که حداکثر آنها میباشد. اما Vray یک قابلیت دیگر را نیز به این روش اضافه کرده و آن Adapte بودن آن است. همانطور که مشاهده میکنید این روش به نام َAdaptive DMC می باشد. پس Vray نیز مانند خدمتکار منزل ، خود را با محیط وفق داده و در جایی که لازم است زمان و دقت بیشتری را صرف خواهد کرد. در تصویر زیر میتوانید دو رندر متفاوت را از روش DMC مشاهده نمایید. مدیریت حافظه در DMC از روش Fixed بسیار بهینه تر می باشد که این موضوع در صحنه های حجیم و پیچیده حائز اهمیت می باشد. علت این موضوع هم روش نمونه برداری DMC می باشد. برای درک بهتر موضوع به تصویر زیر نگاه کنید. رنگ قرمز نمایانگر MaxSubdivs Sampling و رنگ آبی معرف Min Subdiv Sampling می باشد. همانطور که مشاهده میکنید این پراکندگی بر اساس لبه های موضوعات و در محل های مورد نیاز افزایش یافته و در جایی که نیاز کمتری به آن بوده نمونه گیری کمتری صورت پذیرفته است. اما اگر بتوانیم این تصویر را برای روش Fixed بیان کنیم، تمام تصویر ما مملو از نقطه های قرمز رنگ و به صورت یکنواخت خواهد بود.
    به امید خدا، در روزهای آینده این بحث را ادامه خواهیم داد.
    محمد رضا دارابی جاه
    کپی شده از vraytuts

  2. 4 کاربر از Lord-Voldemort بخاطر این مطلب مفید تشکر کرده اند


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •