سه‌بعدی

چرا رندر شما نویزی می‌ماند؟

نویز رندر نتیجه طبیعی روش کار Cycles است؛ این راهنما رابطه سمپل و نویز، تفاوت دنویزرها، و دلیل نویزی ماندن برخی صحنه‌ها در بلندر را توضیح می‌دهد.

حسین امینی
۲۶ مرداد ۱۴۰۵ · 14 دقیقه مطالعه
چرا رندر شما نویزی می‌ماند؟

چرا رندر شما نویزی می‌ماند؛ راهنمای کامل Sampling و Denoising

اگر تا حالا یک صحنه را رندر کرده‌اید و به‌جای سطح تمیز و صاف، پر از دانه‌های ریز رنگی روی سایه‌ها یا نورهای غیرمستقیم دیده‌اید، این همان نویز رندر است. در مقاله رندر چیست درباره ماهیت رندر گفتیم که Cycles با روش Path Tracing کار می‌کند، یعنی برای هر پیکسل چند پرتوی نور شبیه‌سازی می‌کند و نتیجه را میانگین می‌گیرد؛ همان چیزی که به آن Sample می‌گوییم. این مقاله همان‌جا ادامه پیدا می‌کند و می‌گوید چرا این میانگین‌گیری همیشه کامل نیست، دنویزرها دقیقا چه‌کاری انجام می‌دهند و چرا بعضی صحنه‌ها هرچقدر هم سمپل بگیرید باز نویزی می‌مانند.

آنچه در این مقاله یاد می‌گیرید:

  • رابطه ریاضی بین تعداد Sample و میزان نویز، و چرا این رابطه خطی نیست
  • تفاوت دنویزرهای کلاسیک با دنویزرهای مبتنی بر یادگیری ماشین
  • مقایسه عملی Open Image Denoise و OptiX Denoiser و اینکه کدام برای چه سیستمی مناسب‌تر است
  • Noise Threshold و Adaptive Sampling چطور کار می‌کنند و چرا رندرر منابع را به‌صورت یکسان بین کل فریم پخش نمی‌کند
  • چهار دلیل رایج که باعث می‌شود یک صحنه همیشه نویزی بماند

برای فهم کامل این مقاله لازم است مفهوم Ray Tracing و Sample را از مقاله رندر چیست بلد باشید؛ نیازی به دانش ریاضی پیشرفته نیست.

چرا سمپل بیشتر، نویز کمتر ولی نه به‌همان نسبت؟

هر Sample یک تخمین است، نه یک اندازه‌گیری دقیق. رندرر برای هر پیکسل چند پرتو می‌فرستد و رنگ نهایی را از میانگین آن‌ها می‌سازد. وقتی تعداد پرتوها کم است، این میانگین می‌تواند نسبت به رنگ واقعی نوسان زیادی داشته باشد و همان نوسان همان چیزی است که به چشم ما نویز می‌آید.

نکته‌ای که خیلی از کاربران بلندر نمی‌دانند این است که این رابطه خطی نیست. برای کاهش نویز به نصف، سمپل را دو برابر کردن کافی نیست؛ باید سمپل را چهار برابر کنید. این رابطه از قانون آماری واریانس می‌آید، به‌طور تقریبی نویز با جذر تعداد سمپل کم می‌شود، نه با خود آن عدد. یعنی رفتن از ۱۲۸ سمپل به ۲۵۶ سمپل، نویز را حدودا ۳۰ درصد کم می‌کند، نه ۵۰ درصد. همین است که رندرهای خیلی تمیز (مثلا هزاران سمپل) زمان به‌شدت بیشتری می‌خواهند در حالی که سود واقعی‌شان کم است.

به همین دلیل، بالا بردن صرف عدد Sample راه‌حل هوشمندانه‌ای نیست. راه بهتر، ترکیب یک تعداد سمپل منطقی با یک دنویزر است، همان‌طور که در بخش بعد می‌بینیم.

دنویزرها چطور نویز باقی‌مانده را پاک می‌کنند؟

دنویزر ابزاری است که بعد از رندر (یا حین رندر) روی تصویر نویزی اجرا می‌شود و سعی می‌کند حدس بزند رنگ واقعی هر پیکسل، بدون نویز، چه بوده. دو نسل از دنویزرها وجود دارد.

نسل قدیمی‌تر، دنویزرهای کلاسیک، از یک تکنیک به‌نام بلور هوشمند استفاده می‌کنند؛ رنگ هر پیکسل را بر اساس پیکسل‌های همسایه‌اش نرم می‌کنند، اما نه به‌صورت کور. این دنویزرها از داده‌های اضافه‌ای به‌نام Feature Buffer کمک می‌گیرند، یعنی اطلاعاتی مثل جهت سطح (Normal) و رنگ پایه ماده (Albedo) که در کنار تصویر اصلی رندر می‌شوند. با کمک این داده‌ها، دنویزر می‌فهمد کدام لبه‌ها واقعا لبه هستند و نباید محو شوند، و کدام‌ها فقط نویز هستند.

همین‌جا یک نکته عملی مهم است؛ تنظیم ترشهولد نویز (Noise Threshold) اگر اشتباه انتخاب شود، همین سازوکار می‌تواند به ضرر تصویر تمام شود. ترشهولد پایین‌تر یعنی رندرر سخت‌گیرتر عمل می‌کند و دیرتر متوقف می‌شود، اما اگر آن را بیش‌ازحد بالا بگذارید، رندرر با نویز باقی‌مانده زیاد کار را زودتر تمام می‌کند و این نویز اضافه را می‌سپارد به دنویزر. دنویزر برای پاک کردن این حجم نویز، مجبور می‌شود قوی‌تر عمل کند و همین‌جاست که بافت متریال آسیب می‌بیند؛ جزئیات ریز روی سطح، مثل دانه‌های پوست یا بافت پارچه، با نویز اشتباه گرفته می‌شوند و همراه آن محو می‌شوند. نتیجه، سطحی مصنوعی و بیش‌ازحد نرم است که انگار یک فیلتر بلور رویش کشیده شده، نه یک رندر واقعی. راه‌حل، پایین نگه داشتن ترشهولد در حدی است که نویز ورودی به دنویزر از ابتدا کم باشد، نه تکیه کامل به قدرت دنویزر برای جبران یک تنظیم سهل‌انگارانه.

نسل جدیدتر، دنویزرهای مبتنی بر یادگیری ماشین، به‌جای فرمول ثابت، از یک شبکه عصبی استفاده می‌کنند که روی میلیون‌ها تصویر رندرشده آموزش دیده. این شبکه یاد گرفته که یک تصویر تمیز معمولا چه شکلی است، پس می‌تواند با اطمینان بیشتری تشخیص بدهد کدام جزئیات واقعی‌اند و کدام فقط نویز آماری. نتیجه این است که این دنویزرها با سمپل کمتر هم می‌توانند تصویری قابل‌قبول تولید کنند، دقیقا همان چیزی که دو ابزار اصلی این حوزه، یعنی Open Image Denoise و OptiX Denoiser، ارائه می‌دهند.

کدام را انتخاب کنید Open Image Denoise یا OptiX ؟

اینتل سازنده Open Image Denoise است و این دنویزر روی CPU اجرا می‌شود. چون به کارت گرافیک خاصی وابسته نیست، روی هر سیستمی کار می‌کند، از جمله مک و کارت‌های گرافیک AMD. سرعتش نسبت به OptiX کمتر است، اما در ازای آن پایداری و سازگاری بیشتری دارد و در پروژه‌های Animation که فریم‌های زیادی پشت سر هم رندر می‌شوند، معمولا لرزش کمتری بین فریم‌ها ایجاد می‌کند.

انویدیا سازنده OptiX Denoiser است، دنویزری که از هسته‌های تخصصی RT Core و Tensor Core روی کارت‌های گرافیک انویدیا استفاده می‌کند، همان‌طور که در مقاله رندر چیست درباره RT Core گفتیم. به همین دلیل چند برابر سریع‌تر از Open Image Denoise است، اما فقط روی کارت‌های انویدیای نسبتا جدید کار می‌کند. برای کسی که با RTX کار می‌کند و سرعت اولویت اصلی‌اش است، OptiX انتخاب واضح‌تری است.

قاعده عملی ساده: اگر روی کارت انویدیا کار می‌کنید و بیشترین سرعت را می‌خواهید، OptiX را انتخاب کنید. اگر روی مک یا کارت AMD هستید، یا صحنه‌ای دارید که ثبات بین فریم‌ها اهمیت بیشتری دارد، Open Image Denoise گزینه مطمئن‌تر است.

چرا همه پیکسل‌ها سمپل یکسان نمی‌گیرند؛ نقش Noise Threshold و Adaptive Sampling

روش قدیمی رندر این بود که به همه پیکسل‌های فریم، بدون توجه به نیازشان، تعداد سمپل ثابتی اختصاص داده شود. مشکل این روش این است که بخش‌های ساده تصویر، مثل یک دیوار صاف زیر نور یکنواخت، خیلی زودتر از بخش‌های پیچیده، مثل سایه نرم زیر یک نور بزرگ، به نتیجه تمیز می‌رسند. رندر کردن هر دو با سمپل یکسان یعنی وقت زیادی صرف بخشی می‌شود که از قبل تمیز بوده.

نکته‌ای که باعث سردرگمی خیلی از کاربران بلندرهای نسخه بالا می‌شود این است که Adaptive Sampling را به‌عنوان یک گزینه جدا، با یک تیک روشن و خاموش، در پنل جست‌وجو نمی‌کنند و پیدایش نمی‌کنند. دلیلش این است که از Blender 3.0 به بعد، این قابلیت دیگر یک سوییچ مجزا نیست؛ بخشی از رفتار پیش‌فرض Cycles شده و کاملا از طریق پارامتر Noise Threshold کنترل می‌شود.

روش کار این‌طور است: شما به‌جای اینکه بگویید «دقیقا ۵۱۲ سمپل بگیر»، به رندرر می‌گویید نویز باقی‌مانده هر پیکسل باید به چه سطحی برسد (مثلا 0.01). رندرر حین کار، نویز هر پیکسل را می‌سنجد و فقط به پیکسل‌هایی که هنوز از این آستانه نویزی‌تر هستند سمپل بیشتر می‌دهد؛ پیکسل‌هایی که به آستانه رسیده‌اند را زودتر متوقف می‌کند، تا سقف Max Samples که تعیین کرده‌اید. عدد Min Samples هم تضمین می‌کند هیچ پیکسلی زودتر از یک حد مشخص متوقف نشود، حتی اگر در همان ابتدا تصادفا نویز کمی داشته باشد.

نتیجه این طراحی این است که با همان کیفیت نهایی، زمان رندر کلی می‌تواند به‌طور محسوسی کمتر شود، چون منابع محاسباتی جایی صرف می‌شوند که واقعا لازم است؛ فقط دیگر نباید دنبال یک گزینه جدا به‌نام Adaptive Sampling در فهرست تنظیمات بگردید، کافی است Noise Threshold را روی عدد دلخواه تنظیم کنید. (اگر همین مقدار را صفر بگذارید، رفتار به همان روش قدیمی، یعنی گرفتن تعداد سمپل ثابت بدون توقف زودهنگام، برمی‌گردد.)

چرا بعضی صحنه‌ها همیشه نویزی می‌مانند؟

حتی با سمپل بالا و بهترین دنویزر، بعضی موقعیت‌ها ذاتا سخت‌تر از بقیه هستند.

نور کوچک و پرشدت یکی از این موقعیت‌هاست؛ وقتی یک نبع نور خیلی کوچک ولی خیلی قوی در صحنه باشد، احتمال اینکه یک پرتوی تصادفی دقیقا به آن بخورد پایین است، پس بیشتر پیکسل‌ها آن را نمی‌بینند و چند پیکسل که می‌بینند بیش‌ازحد روشن می‌شوند. این پدیده در بلندر به Fireflies معروف است، همان نقطه‌های روشن و پرشی که وسط تصویر ظاهر می‌شوند.

الگوهای نوری موسوم به Caustics که از عبور نور از سطح شفاف یا انعکاسی مثل شیشه یا آب ایجاد می‌شوند، هم به همین دلیل سخت‌اند؛ مسیر نور برای رسیدن به آن الگو خیلی خاص و کم‌احتمال است.

عمق میدان شدید (DOF) هم نویز را بیشتر می‌کند، چون هر پیکسل به‌جای یک نقطه ثابت روی دوربین، از محدوده‌ای از سطح لنز نمونه‌برداری می‌کند و این تنوع اضافه، واریانس بیشتری تولید می‌کند.

و در نهایت، صحنه‌هایی با نور غیرمستقیم پیچیده، مثل اتاق بسته‌ای که نور فقط از چند بازتاب پی‌درپی به یک گوشه می‌رسد، چون مسیر رسیدن نور طولانی و کم‌احتمال است، رندرر برای رسیدن به همان سطح تمیزی به سمپل بسیار بیشتری نیاز دارد.

اشتباه رایج؛ فکر کردن به دنویزر به‌عنوان راه‌حل جادویی

خیلی از کاربران تازه‌کار سمپل را خیلی پایین نگه می‌دارند و انتظار دارند دنویزر همه‌چیز را جبران کند. نتیجه معمولا یک تصویر تمیز ولی مات و بدون جزئیات ریز است، چون دنویزر وقتی داده ورودی خیلی نویزی باشد، مجبور می‌شود برای پاک کردن نویز، جزئیات واقعی را هم حذف کند. قاعده درست، رساندن سمپل به حدی است که نویز باقی‌مانده قابل قبول باشد و بعد استفاده از دنویزر برای پاک‌سازی نهایی، نه جایگزینی کامل سمپل‌گیری.

جمع‌بندی

نویز رندر نتیجه طبیعی روش کار Path Tracing است، نه یک باگ. راه مقابله با آن سه‌گانه است؛ سمپل کافی (نه بیش‌ازحد، چون رابطه با جذر عدد سمپل است)، تنظیم درست Noise Threshold برای اینکه Adaptive Sampling منابع را در جای درست صرف کند، و یک دنویزر مناسب سخت‌افزارتان برای پاک‌سازی نهایی. نکته کلیدی که ارزش به‌خاطر سپردن دارد: دنویزر جایگزین سمپل کافی نیست، مکمل آن است.

گام بعدی

حالا که فهمیدید نویز از کجا می‌آید و چطور کنترلش کنید، مرحله طبیعی بعدی یادگیری نحوه تنظیم دقیق این پارامترها داخل بلندر است؛ همان چیزی که در دوره آموزشی بلندر بیت‌گرف به‌صورت عملی و قدم‌به‌قدم پوشش داده شده.

۱۶ آتیش۰ دیدگاه8 بازدید
حسین امینی
۸۰ مقاله۷ دنبال‌کننده

Modeling, Animation and VFX Artist

گفتگو و سوالات شما

۰

در این قسمت می‌توانید سوال یا نظر خود در مورد مقاله را مطرح کنید.

برای ثبت دیدگاه ابتدا وارد شوید

ورود به حساب

هنوز دیدگاهی ثبت نشده. اولین نفر باشید!

مقالات مرتبط

اگر این را دوست داشتید، ترتیب خواندن بعدی این است

این مقاله‌ها روی «بلندر» هم‌پوشانی دارند، مجموع زمان مطالعه ۱۴ دقیقه

مشاهده همه
  1. برچسب مشترک: بلندر

    معرفی و آموزش کار با Botaniq Full Addon در بلندر | درخت و چمن اضافه کن

    در این آموزش، Botaniq Full Addon را برای نرم افزار بلندر معرفی می کنیم و در اختیار شما قرار می دهیم که ارزشی برابر با 129 دلار دارد و در بیت گرف به رایگان می توانید آن را دانلود و استفاده کنید. با است

    حسین امینی۶ دی۴ دقیقه
  2. برچسب مشترک: بلندر

    آموزش فارسی نویسی در بلندر | کمتر از 5 دقیقه

    در آموزش نحوه فارسی نویسی در بلندر در زمان بسیار کوتاه یاد می گیرید که چگونه در این نرم افزار قدرتمند به صورت فارسی تایپ کنید و کارهای حرفه ای با متن های فارسی انجام دهید. پس در ادامه همراه ما باشید ت

    حسین امینی۲۴ فروردین۳ دقیقه
  3. برچسب مشترک: بلندر

    معرفی و آموزش کار با Traffiq Full Addon در بلندر | ماشین اضافه کن

    در این آموزش، Traffiq Full Addon را برای نرم افزار بلندر معرفی می کنیم و در اختیار شما قرار می دهیم که ارزشی برابر با 79 دلار دارد و در بیت گرف به رایگان می توانید آن را دانلود و استفاده کنید. با استف

    حسین امینی۱۰ دی۴ دقیقه
  4. برچسب مشترک: بلندر

    آموزش تبدیل لوگوی 2 بعدی به 3 بعدی در بلندر

    در این ساعت با نحوه تبدیل لوگوی 2 بعدی به 3 بعدی در بلندر آشنا می شوید و می توانید به راحتی و در کمتر از چند دقیقه آبجکت های دو بعدی تان را به حالت سه بعدی تبدیل کنید و از آن ها موشن گرافیک بسازید که

    حسین امینی۲۹ آذر۳ دقیقه
۰

دوره به سبد ثبت‌نام اضافه شد

رفتن به سبد