فناوری Ray Tracing چیست و چه اهمیتی برای گیمرها دارد؟ فناوری شگفت انگیزی که دنیای مفاهیم گرافیکی را تکان میدهد.
فناوری Ray Tracing برای مدتی است که به یکی از ترندهای مهم در دنیای گرافیک بازیهای ویدیویی تبدیل شده و به نظر میرسد هرروز بیشتر از روز قبل، از این فناوری میبینیم و میشنویم. اما Ray Tracing دقیقاً چه معنایی دارد؟ چرا این فناوری باید برای گیمرهای PC و کنسول، مهم باشد؟
اگر تا همین چند سال پیش دربارۀ پردازش Real Time یا همزمان Ray Tracing در بازیهای ویدیویی صحبت میکردیم، هیچکس آن را جدی نمیگرفت و با مشاهدۀ توان سخت افزاری قطعات آن زمان، محقق شدن این موضوع را به مانند رویایی دست نیافتنی میپنداشت. با این حال، سرعت نجومی و دیوانه کنندۀ فناوری، مخصوصاً فناوری مربوط به بازیهای ویدیویی، سبب شد تا Ray Tracing را زودتر از آنچه فکر میکنیم، درون بازیهای محبوبمان داشته باشیم.
شرکت انویدیا با عرضۀ کارتهای گرافیک سری RTX 20 خود در سال ۲۰۱۸، برای اولین بار ثابت کرد که قطعات سخت افزاری ساده و عمومی (نه ابررایانههای خصوصی) نیز میتوانند به صورت کاملاً مبتنی بر سخت افزار، فناوری Ray Tracing را درون بازیها به نمایش بگذارند و تحولی را در دنیای مفاهیم گرافیکی، فنی و بصری به وجود آورند.
با محبوب شدن جلوههای بصری حاصل شده به لطف ری تریسینگ، شرکت AMD نیز به فکر پردازش همزمان آن با نسل جدید پردازندههای گرافیکی خود افتاد و از آن جایی که کنسولهای نسل نهمی پلی استیشن ۵ و ایکس باکس سری ایکس نیز از معماری RDNA 2 برای پردازش گرافیکی استفاده میکنند، در این زمینه دنبالهرو AMD هستند. اما بیایید ببینیم Ray Tracing که همه این روزها از آن صحبت میکنند، دقیقاً چیست؟
Ray Tracing چیست؟
اول از همه اجازه دهید به سراغ بحث اصلی این مقاله برویم؛ Ray Tracing دقیقاً چیست؟ Ray Tracing در واقع یک روش نوین و بسیار پیشرفته برای رندر کردن سایه ها، نورپردازی و بازتابها درون یک صحنه است. اصل و اساس این فناوری جدید نبوده و بسیاری از فیلمسازان و انیمیشن سازان در گذشته با استفاده از این تکنیک رندر، صحنههای زیبا و سینمایی بسیاری را خلق کردهاند.
نکتۀ جدید برای فناوری Ray Tracing، حضور Real Time آن درون بازیهای ویدیویی است که چند سال از محقق شدن آن میگذرد. استفاده از تکنیک Ray Tracing، به طور کلی نیازمند سرورهای گسترده برای پیش رندر (Pre Render) کردن گرافیک است
و همین موضوع باعث میشود تا فکر پردازش این فناوری به صورت Real Time، تا همین چند سال پیش به مانند یک رویا به نظر برسد اما حالا با فناوری و سخت افزار جدید شرکت انویدیا یا حتی شرکت AMD، میتوانیم Ray Tracing را درون خانهها (درون جعبه کنسول یا کیس خود) داشته باشیم و از آن لذت ببریم.
بیایید در مورد Ray Tracing کمی دقیقتر و تخصصیتر صحبت کنیم. Ray Tracing یک تکنیک رندرینگ است که افکتهای نورپردازی بسیار واقع گرایانهای تولید میکند؛ یک الگوریتم که میتواند پرتو نور را دنبال کرده و نحوه تعامل نور با اشیا و عناصر مصنوعی و مجازی را به مانند فیلم های CGI تعیین نماید.
در سالهای اخیر، سرعت پیشرفت نورپردازی در عناوین مختلف بسیار زیاد بوده و شاهد نورپردازی مبتنی بر فیزیک یا موارد دیگر مانند Volumetric Lighting بودیم اما Ray Tracing در واقع خیلی مربوط به منشأ نور نیست، بلکه به تعامل آن با محیط اطراف بستگی دارد و حالا با وجود فناوری جدید انویدیا، نورپردازی، بازتابها و سایهها می توانند بسیار بهتر و واقع گرایانهتر به نظر برسند. الگوریتمی که پیشتر از آن گفتیم، به این صورت کار میکند که زمانی که نور به هر سطحی برخورد میکند، تعامل و تأثیر آن را دقیقاً به همان صورتی که چشم انسان آن را میبیند، محاسبه کرده و سایهها و بازتابها را به تبعیت از آن، نمایش میدهد.
با در اختیار داشتن توان سخت افزاری کافی، میتوان تکنیک Ray Tracing را به صورت Real Time به تصویر کشید و از زیباییهای یک تصویر CG به وجود آمده توسط آن لذت برد. اما مشکل بر سر راه این فناوری، دقیقاً همین جا است! نمایش دادن Ray Tracing به صورت ریل تایم حتی روی رایانههای شخصی قدرتمند و پرخرج نیز با چالشهایی همراه است و کنسولهای نسل نهم نیز به همین دلیل نمیتوانند آن را به شکل تمام و کمال نمایش دهند.
استودیوهای سازنده فیلمها، سریالهای تلویزیونی و انیمیشنهای CGI، از Ray Tracing برای واقع گرایانه کردن تصویر خود استفاده میکنند اما آنها برای انجام این کار، یک مجموعه سرور بزرگ یا رایانههای ابری را برای پیش پردازش این فناوری در اختیار دارند و با وجود چنین امکانات و شرایطی نیز پردازش Ray Tracing میتواند روندی طولانی و پردردسر داشته باشد. حال، فرض کنید که این فناوری بدون استفاده از سرورهای گسترده و رایانههای ابری (Cloud Camputers) و تنها با استفاده از سخت افزارهای تولید شده گیمینگ، میتواند به مانند یک رویا باشد!
حال، شاید برایتان سوال پیش بیاید که بازیهای ویدیویی، تا کنون و بدون استفاده از فناوری Ray Tracing، چگونه نور و تعامل آن با محیط را نمایش میدادند؟ بازیهای ویدیویی به صورت استاندارد، از تکنیک کشش یا rasterization استفاده میکنند که روش بسیار سریع تری برای دریافت نتیجه و رندر کردن گرافیک کامپیوتری محسوب میشود. با این روش، گرافیک سه بعدی به پیکسلهای دو بعدی تبدیل میشوند و ما آنها را درون قاب تلویزیون یا نمایشگرهای خود مشاهده میکنیم.
از طرفی، تکنیک rasterization به شیدرها (Shaders) نیاز دارد تا بتواند افکتهای نورپردازی مشابه به واقعیت را ارایه نماید. نتیجه کار با rasterization با این که در مواقعی میتواند شگفت انگیز باشد، اما هرگز نمیتواند به سطح بصری و واقع گرایانه بودن فناوری Ray Tracing برسد. به عنوان مثال، سازندگان برای شبیهسازی بازتاب نورها در محیطهای مختلف، از تکنیکها و روشهایی مانند Cube Map یا Screen Space Reflection استفاده میکردند اما وجود Ray Tracing، تمام روشهای شبیهسازی را کنار میزند.
Ray Tracing چیست؟ اینبار سادهتر!
در دنیای واقعی، یک منبع نور (مثلاً یک لامپ در اتاق خواب شما)، فوتونهایی را تولید میکند که در تمام اتاق بازتاب داده شده و به چشم بازمیگردد. حال، Ray Tracing این پروسه و روند را به صورت برعکس انجام میدهد؛ به صورتی که هر کدام از پرتوها را از زاویه دید دوربین رهگیری کرده و نحوه تعامل هر پرتو با اشیاء گوناگون داخل محیط را دنبال میکند. در ادامه، سایهای که بر اثر برخورد پرتو نور به جسم به وجود میآید و بازتابی که روی سطوح پیرامون شکل میگیرد نیز برای بیننده به نمایش گذاشته میشود. در انتها، پرتو نوری که تمام این موارد را ناشی شده، به منبع نور (همان لامپ) بازمیگردد.
این بدان معنی است که رایانه، قدرت پردازشی خود را صرف اشیائی که دوربین (گیمر) نمیتواند آنها را ببیند، نمیکند و از طرف دیگر، نورپردازی و افکتهای به شدت واقع گرایانهای تولید میکند. زمانی که در یک تصویر، تمام موارد مربوط به تابش نور، سایه، بازتاب و به صورت کلی، رهگیری کامل نور انجام شود، به آن Path Tracing میگوید. نیاز به توضیح نیست که با پردازش تصویر یا بازی به صورت Path Traced، تقاضای سخت افزاری به اوج خود میرسد.
Ray Tracing مبتنی بر سخت افزار و نرم افزار
تاکنون هرچقدر درباره فناوری Ray Tracing صحبت کردیم، نوع مبتنی بر سخت افزار آن را خطاب قرار دادهایم. جالب است بدانید که فناوری Ray Tracing به صورت نرم افزاری نیز قابل پیاده سازی است
و حتی تقاضای کمتری را نیز از سخت افزار، طلب میکند. به عنوان مثال، شرکت کرایتک (Cryteck) با توسعۀ بازی Crysis Remastered روی کنسولهای ایکس باکس وان ایکس و پلی استیشن ۴ پرو، توانست برای اولین بار این فناوری را مبتنی بر نرم افزار، روی معماری قدیمی و سالخورده آن کنسولها، به اجرا دربیاورد.
البته تصور نکنید که Ray Tracing مبتنی بر نرم افزار، تقاضای سخت افزاری ندارد بلکه این تقاضا را به طرز قابل توجهی پایین میآورد و البته برای مشاهده آن، الزاماً نیازی به داشتن سخت افزاری وقف شده برای ری تریسینگ (مانند هستههای RT و Tensor) نخواهد بود. همچنین باید اشاره کنیم که Ray Tracing مبتنی بر نرم افزار، محدودیتهای خاص خود را دارد.
از آن جایی که کار این روش، عملاً شبیه سازی است، همیشه احتمال این که تصویری با سطح جلوههای بصری پایینتر از حد انتظار مشاهده کنید، وجود دارد. به صورت کلی، در دوره زمانه کنونی Ray Tracing مبتنی بر نرم افزار آن چنان که باید و شاید دیده نمیشود و بهتر است تمرکز خود را روی روش سخت افزاری آن قرار دهیم.
Ray Tracing برای گیمرهای کنسولی چگونه است؟
کنسولهای نسل نهمی سونی و مایکروسافت، یعنی پلی استیشن ۵، ایکس باکس سری ایکس (و سری اس)، دارای معماری پردازنده گرافیکی RDNA 2 هستند که به گفته شرکت AMD، از Ray Tracing پشتیبانی میکند. این که پردازنده گرافیکی AMD هنوز به بلوغ فوقالعاده پردازندههای گرافیکی انویدیا دست نیافته، موضوعی کاملا روشن است اما همین که میتوانیم فناوری گران قیمت و مدرنی مانند Ray Tracing را روی کنسولهای بازی داشته باشیم، نظرمان را جلب میکند.
سخت افزار کنسولهای پلی استیشن ۵ و ایکس باکس سری ایکس هرچقدر هم که قدرتمند باشند، باز هم نمیتوانند Ray Tracing مبتنی بر سخت افزار را به صورت کامل (مثلاً Path Traced) و با تمام پتانسیلها نمایش دهند. به عنوان مثال، طبق نمایشها و آزمایشهای انجام شده، کنسول ایکس باکس سری ایکس میتواند عنوانی کم تقاضا مانند Minecraft را به صورت کاملاً Path Trace (نرخ فریم و رزولوشن خوب و قابل قبول) اجرا کند اما طبیعتاً نمیتواند همین کار را با عنوانی بسیار پرتقاضاتر مانند Watch Dogs Legion انجام دهد.
Ray Tracing بازیها روی کنسولهای نسل نهمی، همیشه محدود و کنترل شده است. به این معنی که سازندگان تنها از یک یا دو فاکتور این فناوری استفاده میکنند و از دیگر پتانسیلهای آن، به دلیل محدودیتهای سخت افزاری، بهره نمیبرند. به عنوان مثال، بازی Call of Duty Black Ops Cold War روی کنسولهای نسل نهمی، تنها از سایههای Ray Trace شده استفاده میکند و تفاوت آنچنان قابل توجهی را با نسخه معمولی به وجود نمیآورد.
یا Marvel’s Spider-Man: Miles Morales تنها روی بازتابهای Ray Tracing حساب میکند که نتایج درخشانی را به همراه آورده است.
باورهای اشتباه دربارۀ Ray Tracing
همه گیر شدن فناوری Ray Tracing در میان گیمرهای پلتفرم رایانههای شخصی و کنسولها، سبب شد تا باورهای اشتباه یا محدودی دربارۀ آن در بازیهای ویدیویی به وجود بیاید.
از یک طرف، سطح دانش فنی کاربران و گیمرهای عادی (گیمرها و کاربرانی که تنها به تجربه بازیها میپردازند و وارد مسائل فنی نمیشوند) پایین است و از طرف دیگر، شرکتهای بازیساز مختلفی که کار پیاده سازی پردازش فناوری Ray Tracing را در بازیهای خود آغاز کردهاند، با یک سری تبلیغات و بازاریابیهای نهچندان درست و کامل، تصوری غلط و محدود را به کاربران و گیمرها میدهند.
به عنوان مثال، به دلیل همین تبلیغات و بازاریابیها که تهی از دانش تخصصی و فنیاند، امروزه بسیاری از گیمرها و کاربران Ray Tracing را تنها به عنوان عاملی برای به تصویر کشیدن بازتابهای زیبا روی سطوح خیس یا فلزی در نظر میگیرند در صورتی که این تنها یکی از ابعاد یک تصویر Ray Trace شده است. برخی از کاربران حتی در سطح اینترنت، شوخی «پاشیدن آب روی سطح زمین» و اصرار سازندگان به خیس کردن سطوح برای نشان دادن Ray Tracing را مطرح کردهاند که درک نهچندان بالای آنها از این فناوری مهم را نشان میدهد.
Ray Tracing؛ خوب یا بد؟
در انتها و به عنوان نتیجه گیری میتوان گفت که فناوری Ray Tracing درون بازیهای ویدیویی، به نوعی یک انقلاب بصری و فنی را به وجود میآورد. بسیاری از مفاهیم، روشها، شبیه سازیها و تکنیکهایی که پیش از این برای نمایش واقع گرایانه نور، سایه، بازتاب و هر چیزی که مربوط به نورپردازی میشود، مورد استفاده قرار میگرفت، حالا با مفهوم جدیدی به نام Ray Tracing کاملاً از بین رفته و بدون استفاده میشوند.
البته باید توجه داشته باشیم که Ray Tracing ذاتاً یک فناوری گران قیمت و پرتقاضا محسوب میشود و پردازش همزمان یا Real Time آن نیازمند توان سخت افزاری و پردازشی بسیار بالایی است که شاید در دوره و زمانه کنونی، برای بسیاری از افراد دستنیافتنی باشد. با این حال، زمانی که پای Ray Tracing به کنسولهای خانگی باز شود، میدانیم که این فناوری در جهت همهگیر شدن پیش میرود.
نکته مهمی که باید در این بخش به آن اشاره کنیم، این است که آیا Ray Tracing، ارزش خرج و هزینه سخت افزاری اضافهای را دارد یا خیر؟ با توجه به پتانسیلهای این فناوری درون بازیهای ویدیویی و استفاده از ظرفیتهای بسیار آن، قطعاً میتوان به این پرسش، پاسخ «بله» داد.
به عنوان مثال، Ray Tracing در بازی Cyberpunk 2077 (در بهترین و بالاترین حالت خود)، در یک کلام قواعد بازی را تغییر داده و حس واقع گرایی کمنظیری به گیمر القا میکند که در انتها، تجربه نهایی او را به شکل قابل توجهی تحت تاثیر قرار میدهد. در این بازی، Ray Tracing شامل حال بازتابها، سایهها و تمام نورپردازی سراسری (Global illumination) میشود.
وجود فناوری Ray Tracing درون بازیهای ویدیویی به بهترین شکل ممکن به ما ثابت میکند که بحث نورپردازی در زمینه گرافیک سهبعدی، چقدر مهم و حیاتی است. بازیسازان در طول دهههای مختلف، مرتب در حال ابداع روشهای جدیدی برای شبیه سازی کردن رفتار نور، سایه و بازتابها در دنیای بازیهای خود بودهاند و حالا با پردازش همزمان Ray Tracing در بازیها، نیازی به استفاده از روش یا حقهای خاص نیست، بلکه رهگیری پرتو میتواند با محاسبات دقیق، رفتار نور و تمام مواردی که از آن ناشی میشود را به شکل واقعی به مخاطب نشان دهد.