درباره تکنولوژی «ریتریسینگ» در بازیهای ویدئویی
روزنامه هفت صبح، محمد طالبیان | زمانی که اعلام شد کنسولهای جدید از تکنولوژی ریتریسینگ استفاده میکنند، به یکباره توجه بسیاری از گیمرها به این قابلیت جدید گرافیکی جلب شد. تکنولوژی که فعلا انویدیا در زمینه توسعه آن حرف اول را میزند و با نمایشهای مختلفی توانسته ابعاد و قدرت آن را به نمایش بگذارد.
با این حال دو بازی در این میان بیش از هر عنوان دیگری توجهها را به خود جلب کردند. سالها از انتشار کویک ۲ گذشته اما توسعه دهندگان نسخه RTX آن توانستند جان دوبارهای به یکی از شوترهای کلاسیک صنعت بازی دهند. این موضوع درباره ماینکرفت هم صدق میکند. بازیای که همواره گرافیک ساده یکی از مشخصههای اصلی آن بوده و به شکل کلی مصداقی برای این موضوع است که لزوما گرافیک نمیتواند تاثیر چندانی در کیفیت تجربه یک بازی ویدئویی داشته باشد.
اکنون اما انویدیا با همکاری تولیدکنندگان اصلی ماینکرفت نسخهای از آن را تحت عنوان RTX در اختیار گیمرها قرار داده که به شکل خاص روی تکنیک Ray Tracing و Path Tracing تمرکز دارد. نسخهای که توانست نمایشی دقیق و مشخص از قابلیتهای این تکنولوژی جدید باشد و در ادامه سعی داریم به جزئیات بیشتری از آن بپردازیم. جزئیاتی که نشان میدهند در آیندهای نزدیک Ray Tracing میتواند نگاه ما به گرافیک کامپیوتری را تغییر دهد.
برای بسیاری از گیمرها که شاید علاقه چندانی به مباحث گرافیکی نداشته باشند، سخت است توضیح و نمایش تکنیکهای برگرفته از Ray-Tracing و Path Tracing در بازیهای مدرنی که به خودی خود خروجی تصویر باکیفیتی را ارائه میکنند. هرچند امروزه Ray-Tracing و Path Tracing از دید عموم تفاوت چندانی ندارند اما به شکل تخصصی باید توضیح داد که معمولا از Ray Tracing زمانی استفاده میشود که یک یا چند قابلیت مثل سایهپردازی یا بازتاب لحاظ شده باشد.
اما در مقابل Path Tracing برای زمانی کاربرد دارد که راه حلی کلی با استفاده از تمامی قابلیتها را شاهد باشیم. با این وجود تفاوت اصلی بین رندر به شکل Rasterization و Path Tracing این است که در راه اول همه چیز از قبل تعیین شده و در شکل دوم تمامی پردازشهای گرافیکی در ساختار Real Time صورت میگیرند.
اضافه شدن Ray-Tracing به ماینکرفت اما از مارس سال ۲۰۱۹ شروع شده. یکی از دلایلی که انویدیا به سراغ ماینکرفت رفته به این موضوع بر میگردد که ساختار اصلی بازی، تمرکز بسیاری روی محتوای تولید شده از سوی کاربر دارد. همین مسئله باعث میشود در زمینه نورپردازی یا به شکل کلی تکنولوژیهای مورد استفاده در موضوع گرافیک، ساختاری قدیمی مثل استفاده از لایتمپ، خروجی مناسبی را ارائه نکند.
شاید از دید مخاطبها رفتن به سراغ ماینکرفت برای پیادهسازی Path-Tracing، به گرافیک ساده آن ارتباط داشته باشد اما انویدیا به این موضوع اشاره دارد که از دید ساختارهای اصلی گرافیکی، ساخته مویانگ با دیگر بازیهای امروزی، تفاوت چندانی ندارد. شاید اینجا همه چیز براساس مکعبهای ساده طراحی شده باشد اما این تنها استایل گرافیکی است که سازندگان بازی انتخاب کردهاند و همچنان بسیاری از قواعد و اصول همیشگی گرافیک کامپیوتری در ماینکرفت حضور دارد. از این رو پیچیدگیهای اجرای Path-Tracing در ماینکرفت تفاوت چندانی با دیگر بازیهای امروزی ندارد.
اصلیترین موضوعی که باعث شده Minecraft RTX نسبت به Quake 2 RTX ارتقای قابل توجهی را تجربه کند، اضافه شدن Multi-bounce global illumination است. تکنیکی که اینجا برای پیادهسازی آن از Irradiance cache استفاده شده. به شکل کلی تکنیک Multi-bounce global illumination به بازی اجازه میدهد که نور منتشر شده از منبع اصلی را در هشت نقطه و مرحله متفاوت از سطوحی که قابلیت انعکاس را در اختیار دارند، حرکت دهد.
برای درک بهتر این موضوع کافیست راهرویی را در نظر بگیرید که در ابتدای آن منبع نوری وجود دارد. نور منتشر شده از این منبع به دیوارههای راهرو برخورد کرده و منعکس میشود و تا نقطهای خاص حرکت میکند. از این نقطه به بعد، دقیقا همانند چیزی که در واقعیت شاهد هستیم، حرکت نور متوقف یا ضعیف شده و به همین واسطه محیط کمتر از گذشته روشن میشود. برای اجرای سریع این تکنیک پیچیده در Minecraft RTX از Irradiance cache شده که به زبان ساده باعث افزایش سرعت اجرا میشود. موضوعی که هرچند در حال حاضر همچنان با تاخیر اندکی همراه است اما نسبت به گذشته ارتقای قابل توجهی را تجربه کرده.
شاید در دید کلی انعکاس نور بیش از هر چیزی در Path Tracing و Ray Tracing نظر مخاطب را به خود جلب کند اما یکی دیگر از نکاتی که باید به آن توجه کرد، خصوصیاتی است که نور در زمان انعکاس به خود میگیرد. درست همانند واکنش واقعی نور در این نسخه از ماینکرفت، هر سطحی با هر رنگی نسبت به نور منعکس شده از سطح خود تاثیری متفاوت دارد. جدای از اینکه انعکاس و حتی سایههای شکل گرفته از اشیا با توجه به رنگ و جنس هر مکعب تغییر رنگ میدهد، شاهد قرارگیری مکعبهایی هستیم که نور را از خود عبور میدهند.
در اینجا انویدیا توانسته با استفاده از فرمولی جالب توجه به خروجی مناسبی دست پیدا کند. زمانی که نور اصلی به یکی از مکعبهای شیشهای و رنگی برخورد میکند، ادامه انتشار آنها بسته به رنگ مانع اشاره شده تغییر میکند. تغییری که در اصل بهتر است بگوییم به حذف دیگر رنگهای حاضر در نور خلاصه میشود.
در اینجا برای نورپردازی Minecraft RTX، سازندگان به موانع سر راه نور نگاه کرده و براساس آن ادامه حرکت را برنامهریزی میکنند. در زبان ساده نور تغییر رنگ نمیدهد بلکه دیگر رنگهای حاضر در خود را از دست داده و در ادامه به سطح دیگری برخورد میکند. این موضوع البته تنها در یک برخورد خلاصه نشده و میتوان نور را از موانعی با رنگهای کاملا متفاوت عبور داد و نهایتا به خروجیهایی متناسب با ترکیب رنگی آنها دست پیدا کرد.