Path Tracing و Ray Tracing چیست؟ و چرا گرافیک را بهبود می بخشند؟

اگر اخیراً حتی کوچکترین نگاهی به اخبار بازی و گرافیک(gaming and graphics news) انداخته‌اید، جدیدترین و بهترین کلمه کلیدی را شنیده‌اید: ray tracing . همچنین ممکن است کلمه ای مشابه به نام مسیریابی(path tracing) را شنیده باشید . و شما می توانید کاملاً ببخشید که به طور کامل درک نکردید که یکی از فرآیندها چیست.

یک توضیح ساده این است که هم ردیابی مسیر و هم ردیابی پرتو(ray tracing) ، تکنیک‌های گرافیکی هستند که به قیمت قدرت محاسباتی بسیار بیشتر، تصاویری با ظاهر واقعی‌تر ایجاد می‌کنند. یک ویدیوی Minecraft(Minecraft video) در یوتیوب(YouTube) وجود دارد که جنبه‌های خاص ردیابی پرتو را به روشی واضح نشان می‌دهد، اما استرسی که بر سیستم وارد می‌کند را نیز نشان می‌دهد.

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

شطرنجی سازی و گرافیک کامپیوتری

هر تصویری که روی صفحه رایانه نمایش(computer screen) داده می‌شود، به عنوان آن تصویر شروع نشده است. به عنوان یک تصویر شطرنجی یا یک تصویر برداری(vector image) شروع می شود . یک تصویر شطرنجی(raster image) از مجموعه ای از پیکسل های سایه دار تشکیل شده است.

یک تصویر برداری(vector image) بر اساس فرمول های ریاضی است که به این معنی است که اندازه تصویر را می توان تقریباً به طور نامحدود افزایش داد. نقطه ضعف تصاویر برداری(vector image) این است که دستیابی به جزئیات دقیق تر دشوار است. تصاویر وکتور(Vector) زمانی بهترین استفاده را دارند که فقط به چند رنگ نیاز باشد.

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

Rasterization به دلیل سرعت پردازش گرافیکی بازی های ویدیویی برای مدت طولانی گزینه مورد استفاده برای گرافیک بازی های ویدیویی بوده است، اما با توجه به اینکه فناوری فعلی شروع به برخورد با محدودیت های خود می کند، به تکنیک های پیشرفته تری نیاز است تا به سطح بعدی برسد. اینجاست که ردیابی پرتو وارد می شود.

همانطور که تصویر زیر نشان می دهد، ردیابی پرتو(Ray) بسیار واقعی تر از شطرنجی به نظر می رسد. به بازتاب های قابلمه چای(tea pot) و قاشق نگاه کنید.

Ray Tracing چیست؟

در سطح سطح(surface level) ، ردیابی پرتو(ray tracing) یک اصطلاح چتر است که به معنای همه چیز است، از یک تقاطع نور و شی تا فوتورئالیسم کامل. با این حال، در رایج‌ترین زمینه‌ای که امروزه استفاده می‌شود، ردیابی پرتو به (ray tracing)تکنیک(rendering technique) رندری اشاره دارد که پرتوی نور (بر حسب پیکسل) را از یک نقطه تنظیم(set point) دنبال می‌کند و نحوه واکنش آن را هنگام برخورد با اشیا شبیه‌سازی می‌کند.

لحظه ای وقت بگذارید و به دیوار اتاقی که در آن هستید نگاه(moment and look) کنید . آیا منبع نوری روی دیوار وجود دارد یا نور از منبع دیگری از دیوار منعکس می شود؟ گرافیک Ray(Ray) Traced از چشم شما شروع می شود و خط دید شما را تا دیوار دنبال می کند و سپس مسیر نور را از دیوار به سمت منبع نور دنبال می کند.

نمودار بالا نحوه عملکرد این کار را نشان می دهد. دلیل شبیه سازی "چشم ها" (دوربین در این نمودار) کاهش بار روی GPU است.

چرا؟ خب، ردیابی اشعه کاملاً جدید(t brand-new) نیست. در واقع مدتی است که وجود داشته است. Pixar از تکنیک‌های ردیابی پرتو برای ساخت بسیاری از فیلم‌های خود استفاده می‌کند، اما گرافیک با کیفیت بالا و فریم به فریم در وضوح‌هایی که Pixar به دست می‌آورد زمان می‌برد.

زمان زیادی(A lot) . برخی از فریم ها در دانشگاه هیولاها(Monsters University) هر کدام 29 ساعت طول کشید. داستان اسباب‌بازی 3(Toy Story 3 ) به طور متوسط ​​7 ساعت در هر فریم طول می‌کشد، با توجه به داستانی از Wired در سال 2010، برخی از فریم‌ها 39 ساعت طول می‌کشند.(Wired. )

از آنجایی که فیلم بازتاب نور را از هر سطحی نشان می‌دهد تا سبک گرافیکی را ایجاد کند که همه(style everyone) آن را می‌شناسند و دوست دارند، حجم کار(work load) تقریباً غیرقابل تصور است. با محدود کردن تکنیک‌های ردیابی پرتوی فقط به آنچه که چشم می‌تواند ببیند، بازی‌ها می‌توانند از این تکنیک استفاده کنند بدون اینکه باعث شوند پردازنده گرافیکی شما دچار اختلال (به معنای واقعی کلمه) شود.

به تصویر زیر دقت کنید.

این یک عکس نیست، با وجود اینکه چقدر واقعی به نظر می رسد. این یک تصویر ردیابی پرتو است. سعی کنید تصور کنید که برای ایجاد تصویری به این شکل چقدر نیرو لازم است. یک پرتو را می توان بدون مشکل ردیابی و پردازش کرد، اما در مورد زمانی که آن پرتو از یک شی منعکس می شود، چطور؟

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

حالا تصور کنید این کار را 30 تا 60 بار در ثانیه انجام دهید. این مقدار قدرت مورد نیاز برای استفاده از تکنیک های ردیابی پرتو در بازی ها است. مطمئناً تأثیرگذار است، درست است؟

دستیابی به کارت‌های گرافیکی با قابلیت ردیابی پرتو(ray tracing) با گذشت زمان افزایش می‌یابد و در نهایت این تکنیک به آسانی به اندازه گرافیک‌های سه بعدی در دسترس خواهد بود. با این حال، در حال حاضر، ردیابی پرتو(ray tracing) هنوز هم به عنوان پیشرفته ترین گرافیک کامپیوتری در نظر گرفته می شود. بنابراین چگونه ردیابی مسیر وارد عمل می شود؟

Path Tracing چیست؟

ردیابی مسیر(Path tracing) نوعی ردیابی پرتو(ray tracing) است. تحت این چتر قرار می گیرد، اما در جایی که ردیابی پرتو(ray tracing) در ابتدا در سال 1968 تئوری شد، ردیابی مسیر تا سال 1986 به صحنه نیامد (و نتایج به اندازه نتایج کنونی چشمگیر نبود).

افزایش تصاعدی پرتوها که قبلاً ذکر شد را به خاطر دارید؟ ردیابی مسیر راه حلی برای آن ارائه می دهد. (Path)هنگام استفاده از ردیابی مسیر برای رندر، پرتوها تنها یک پرتو در هر پرش تولید می کنند. پرتوها در هر پرش از یک خط مشخص(set line) پیروی نمی کنند ، بلکه در جهتی تصادفی پرتاب می شوند.

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

یک نکته جالب در مورد ردیابی مسیر(path tracing) این است که می توان افکت را با استفاده از سایه بان ها تقلید کرد. اخیراً یک پچ سایه‌زن(shader patch) برای شبیه‌ساز نینتندو سوییچ(Nintendo Switch emulator) ظاهر شد که به بازیکنان اجازه می‌داد تا از روشنایی جهانی مسیریابی شده در عناوینی مانند The Legend of Zelda: Breath of the Wild و Super Mario Odyssey شبیه‌سازی کنند. (Super Mario Odyssey.)در حالی که جلوه ها زیبا به نظر می رسند، به اندازه ردیابی مسیر(path tracing) واقعی کامل نیستند .

ردیابی مسیر(Path tracing) تنها یکی از اشکال ردیابی پرتو است. در حالی که از آن به عنوان بهترین راه برای رندر تصاویر یاد می شد، ردیابی مسیر دارای نقص های خاص خود است.

اما در نهایت، هر دو ردیابی مسیر و ردیابی پرتو(path tracing and ray) ، تصاویر کاملاً زیبایی را به همراه دارند. اکنون که سخت‌افزار در ماشین‌های درجه یک مصرف‌کننده به نقطه‌ای رسیده است که ردیابی پرتو(ray tracing) در بازی‌های ویدیویی در زمان واقعی امکان‌پذیر است، صنعت آماده است تا پیشرفتی را ایجاد کند که تقریباً به اندازه مرحله از گرافیک دو بعدی به سه بعدی چشمگیر است.

با این حال، هنوز مدتی طول می کشد - حداقل چندین سال - تا اینکه سخت افزار لازم "مقرون به صرفه" در نظر گرفته شود. در حال حاضر، حتی کارت‌های گرافیک ضروری نیز بیش از 1000 دلار قیمت دارند.



About the author

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



Related posts