sina hosseini یکشنبه 4 شهریور 1397 03:21 ب.ظ نظرات ()
نگاهی به تاثیر Ray Tracing در کارت‌های گرافیک RTX انویدیا و بازی‌ها


نگاهی به تاثیر Ray Tracing در کارت‌های گرافیک RTX انویدیا و بازی‌ها


انویدیا در نسل جدیدِ کارت‌های گرافیک تمرکز زیادی روی فناوری RTX دارد. این فناوری چه امکاناتی را به بازی‌ها اضافه خواهد کرد؟

تنها چند روز از معرفی رسمی نسل جدیدِ تراشه‌های گرافیکی انویدیا در مدل‌های GTX 2080 Ti، GTX 2080 و GTX 2070 گذشته است. جِنسِن هوانگ موسس و مدیرِ کمپانی انویدیا طی مراسمی اختصاصی در نمایشگاهِ گیمزکام 2018 در آلمان، ابتدا ویژگی‌های معماری Turing و بعد مزایای استفاده از تکنیک گرافیکیِ Ray Tracing را برشمرد و بعد از این مقدمه به اعلامِ مشخصات و قابلیت‌های جدید کارت‌های سریِ RTX 20 پرداخت.

کارت‌های سری جیفورس RTX 20 از جنبه‌های مختلفی نسبت به نسلِ پاسکال و نسل‌های گذشته متمایز هستند. مهم‌ترین تغییر در معماریِ جدیدِ تورینگ این است که علاوه بر واحد‌های پردازشی CUDA در قلبِ تراشه، واحدهای اختصاصی پردازشِ Real-Time (بی‌دِرنگ) Ray Tracing با نام RT Cores و واحدهای اختصاصی پردازشِ هوش مصنوعی به نام Tensor Cores در بلاک‌های مجزا ولی مرتبط تعبیه شده‌اند.

دانلود از آپارات | دانلود از یوتیوب

RT Cores: معماری تورینگ به هسته‌های اختصاصی پردازشِ سخت افزاریِ تکنیکِ رهگیری پرتو (Ray Tracing) مجهز شده است که محاسباتِ مربوط به حرکتِ نور در محیط‌های سه بعدی را شتاب می‌بخشند.

Tensor Cores: هسته‌های اختصاصی برای شتابدهیِ یادگیریِ عمیق (Deep Learning) و شبکه‌ی عصبی (Neural Network)، الگوریتم‌های استنتاج‌ و پیش‌بینی که در مجموع به افزایشِ جهشیِ راندمان در پردازش‌های متکی بر هوش مصنوعی منجر خواهند شد. برخی تکنیک‌های گرافیکی مثل Denoising و مقایس‌پذیری دقتِ تصویر (Resolution Scaling) از این راندمانِ بیشتر بهره‌مند خواهند شد. (شبکه‌های عصبی به سیستم‌ها و روش‌های محاسباتی نوینی اطلاق می‌شود که برای یادگیری ماشینی، نمایشِ داده‌ها و به کار گیری نتایجِ به دست آمده برای بیش‌بینیِ درستِ پاسخ‌های خروجی بکار می‌روند)

جِنسِن هوانگ در مراسمِ معرفی نسلِ جدید، تاکید زیادی روی مزایای پیاده سازی Ray Tracing داشت و گفت که تیم مهندسینِ انویدیا زمانی نزدیک به ده سال را برای این مهم صرفِ تحقیق و توسعه کرده‌اند. با این اوصاف، تکنیک رهگیری پرتو دقیقا چیست و چه چیزی آن را از تکنیک‌های پردازشِ گرافیکیِ فعلی متمایز می‌کند؟

رهگیریِ پرتو (Ray Tracing)

هیچ یک از تکنیک‌های گرافیکی به اندازه‌ی Ray Tracing برای اضافه کردن افکت‌های بصریِ واقع گرایانه به بازی‌های امروزی مناسب‌تر نبودند

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

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

دومین مشکل هم هزینه‌های پردازشی این تکنیک بود. بالاترین مدلِ کارتِ تورینگ که از سری حرفه‌ایِ Quadro معرفی شده، Quadro RTX 8000 است و حدود ۱۰ هزار دلار قیمت دارد. این رده‌ی قیمتی به روشنی برای استفاده‌ی همگانی نیست و تنها برای توسعه دهندگان و تولید کنندگانِ محتوا قابلِ پذیرش است. اما حالا انویدیا با آوردن RT Core به تراشه‌های جیفورس، در حقیقت فناوریِ استفاده از Ray Tracing را به تراشه‌های گرافیکی رایج و رده‌ی مصرف‌ کننده هدیه داده است و این اقدامی است که تا قبل از این هرگز توسط هیچ شرکتی انجام نشده بود.

شطرنجی سازی (Rasterization)

به فرآیند تبدیل داده‌های بُرداری به داده‌های شطرنجی، شطرنجی‌سازی یا Rasterization گفته می‌شود. در واقع طی این فرآیند گرافیکِ برداری به گرافیک شطرنجی و به‌ بیان بهتر پیکسل تبدیل می‌شود. صنعتِ کنونی تراشه‌های گرافیکِ کامپیوتری و کنسول‌ها همگی بر اساس این روش تصاویرِ خروجی را تولید می‌کنند. پیاده سازیِ این روش ساده‌تر و پردازشِ آن هم نسبت به تکنیکی مانند Ray Tracing بسیار سبک‌تر و سریع‌تر است. تراشه‌های گرافیکی از اوایلِ دهه‌ی ۹۰ میلادی برای بکارگیریِ این تکنیک و تکنیک‌ها‌ی مکمل بهبود دهنده‌ی آن به شتاب دهنده‌های سخت افزاری مجهز شدند.

برای درک بهتر، چگونگی ایجاد یک چند ضلعی را در دو تکنیک مقایسه می‌کنیم:

rasterization vs raytracing comparison

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

تکنیکِ رایجِ Rasterization از مدل‌سازی بی نقص آینه و نمایشِ بازتاب و انکسار از سطوحِ شفاف عاجز است

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

ایرادِ تکنیک شطرنجی سازی این است که قادر به تشخیص و مدل‌سازی خودِ پرتوی نوری نیست، مثلا نمی‌تواند سطحِ آینه را شبیه سازی کند. در صورتی که تکنیک رهگیری پرتو می‌تواند به خوبی رفتار پرتوهای نوری را در تابش به سطوحِ مختلف، فلزات، مایعات و اجسامِ متحرک با جزئیاتِ بالا شبیه سازی کند. همچنین نورپردازی و بازتابِ اشیاء در روش مرسومِ Rasterization معمولا مصنوعی هستند و به شکل آزار دهنده‌ای غیر طبیعی جلوه می‌کنند، در حالی که Ray Tracing بر مبنای پرتو استوار است و می‌تواند نورپردازی، بازتاب‌ و سایه‌های حاصل از اجسامِ فیزیکی را به طبیعی‌ترین شکلِ ممکن و نزدیک به دنیای واقعی بازسازی کند.

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

Ray Tracing در اجرا

جنسن هوانگ در مراسمِ اختصاصی گیمزکام صحنه‌ای را نشان داد که هم به شیوه‌ی معمول Rasterization و هم با کمک Ray Tracing که انویدیا آن را RTX می‌نامد پردازش شده بود:

NVIDIA RTX ON OFF

اگر در جزئیاتِ تصاویر دقت کنید، متوجه خواهید شد که در حالت استفاده از RTX، سایه‌ها به درستی و با تراکمِ واقعی تولید شده‌اند و بازتاب نور از اشیای مجاور هم سایه‌های واقعی و بیشتری را تولید کرده‌ است. گوی شفاف در تکنیکِ معمولی (عکسِ بالایی) به درستی پردازش نشده و سایه‌ای هم برای آن تولید نشده است، اما کمکِ RTX و نورپردازیِ واقع گرایانه در تصویرِ پایین باعث شده تا تجسمِ گوی شیشه‌ای، انعکاس و انکسارِ نور و تصویرِ اجسام دیگر و سایه‌اش هم به درستی ایجاد شوند.

اما توانایی کارت‌های گرافیک انویدیا در پردازش‌های Ray Tracing چگونه و با چه ملاکی محاسبه می‌شود؟ در اینجا مشخصاتِ اعلامی برای برای سه مدل کارتِ معرفی شده را می‌بینیم:

GeForceRTX 2070RTX 2080RTX 2080 Ti
تراشه‌ی گرافیکیTU104TU104TU102
راندمان Ray Tracing 6Giga Rays/s8Giga Rays/s10Giga Rays/s
راندمان RTX-OPS45T60T78T

در معماری تورینگ هسته‌های پردازشی جدید و در نتیجه واحد‌های جدید برای سنجش و مقایسه‌ی راندمانِ آنها داریم. انویدیا راندمانِ Ray Tracing در هسته‌های پردازشی RT  را بر حسب تعداد پرتوهای قابل تولید در ثانیه با واحد Giga rays بیان می‌کند. همچنین توان پردازشیِ واحدِ RT-Core در RTX 2080 Ti به صورت موثر ۱۱۰ ترافلاپس برآورد شده که ۱۰ ترافلاپس به ازای هر Giga Ray تعیین شده است. این میزان ده برابر بیشتر از توانایی قوی‌ترین کارتِ نسل پاسکال یعنی GTX 1080 Ti است که جهشی غیر معمول است. در بخشِ دیگر تراشه هم توان واحدِ Tensor برای هوش مصنوعی برابر با ۱۱۰ در واحدِ FP16 Tensor Flops اعلام شده و سرانجام توانِ پردازشی در بخشِ Shading یا هسته‌های سایه‌زنِ اصلی هم حدودِ ۱۴ ترافِلاپس یا تریلیون عملیاتِ اعشاری برای FP32 و ۱۴ تریلیون عملیاتِ عدد صحیح برای INT32 محاسبه شده است.

Turing Core Diagram

اما انویدیا تعداد تمامِ دستور العمل‌های قابل پردازش شامل میانگینِ توانِ تمام واحدهای پردازش‌های رهگیری پرتو، سایه زنی و هوش مصنوعی در هر ثانیه را با واحدِ کلیِ RTX-OPS نشان می‌دهد. انویدیا عقیده دارد که RTX-OPS واحدِ قوی‌تر و موثرتری برای بیانِ درستِ توانایی‌ تراشه‌های جدیدش محسوب می‌شود. بر این اساس کارتِ RTX 2080 Ti می‌تواند تا ۱۰ میلیارد پرتو را در هر ثانیه در خروجی قرار دهد و در مجموع ۷۸ تریلیون محاسبه در هر ثانیه را نیز پردازش کند.

توضیح ۱: مقدارِ ۷۸ برای RTX-OPS از محاسبه‌ی میانگین قدرت واحد‌های Shading، RT-Cores و Tensor Cores به دست آمده که بر طبقِ توضیحات بالا به ترتیب ۱۱۰ ، ۱۴ و ۱۱۰ محاسبه شده بودند و سپس بر ۳ تقسیم شدند. هر فریمِ گرافیکی برای پردازش نیاز به عبور از این سه مرحله دارد.

توضیح ۲: حرفِ T اختصاری از واحدِ Tera به معنی تریلیون و مقدارِ عددی آن برابر با ۱۰ به توان ۱۲ است و OPS هم به عنوانِ مخفف Operations Per Second انتخاب شده است.

  • NVIDIA: Reflections

در اینجا نمونه‌ای از پردازشِ بلادرنگِ Ray Tracing در دموی Star Wars بر پایه‌ی آنریل انجین را می‌بینید (دموهای تکنیکی را ترجیحا در یوتیوب و با بالاترین کیفیت مشاهده کنید):

دانلود از آپارات | دانلود از یوتیوب

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

  • NVIDIA: Project Sol

در دموی دیگری با نام Project Sol هم قابلیت‌های رهگیری پرتو به صورت real-time یا بی درنگ را با استفاده از تراشه‌ی تورینگ می‌بینیم:

دانلود از آپارات | دانلود از یوتیوب

  • EA: Battlfield V

استفاده از Ray Tracing در این بازی برای: بازتاب‌ها (Reflections)

پس از نمایشِ دموهای تکنیکیِ انویدیا، برخی استودیوهای بازی‌ساز ترازِ اول دنیا هم چگونگی استفاده از RTX در بازی‌های آینده‌ یا در شرف‌ِ انتشار خود را از طریق دموهای تعاملی و قابل بازی به نمایش گذاشتند. اولین و بهترین نمایش را هم استودیوی دایس با بازیِ Battlefield V به نمایش گذاشت:

دانلود از آپارات | دانلود از یوتیوب

در اینجا تاثیرِ استفاده از Ray Tracing روی بهبود و طبیعی‌تر شدنِ بازتابِ تصاویر محیطی و انعکاسِ آنها روی زمین، آب و سطوحِ صیقلی کاملا بارز است.

  • Square Enix: Shadow of the Tomb Raider

استفاده از Ray Tracing در این بازی برای: سایه‌ها (Shadows)

دانلود از آپارات | دانلود از یوتیوب

  • 4A Games: Metro Exodus

استفاده از Ray Tracing در این بازی برای: نورپردازی محیطی- سایه‌های محیطی (Global Illumination- Ambient Occlusion)

دانلود از آپارات | دانلود از یوتیوب

در این بازی منابعِ نوری محیطی با RTX تولید شده که به واقعی‌تر شدن تابشِ نور در محیط‌های متروکه و تاریک کمکِ شایانی می‌کند. (Ambient Occlusion یا AO سایه‌های تماسی را به بازی اضافه می‌کند، در جایی که دو سطح یا شئ در مجاورتِ هم باشند و یکی از آنها مانع رسیدن نور به دیگری شود. کیفیتِ پیاده سازی آن روی جزییات و دقت سایه‌ها تاثیر خواهد داشت)

  • Remedy Entertainment: Control

استفاده از Ray Tracing در این بازی برای: بازتاب‌ها- نورپردازی محیطیِ اشباع- سایه‌های تماسی (Reflections-Diffuse Global Illumination-Contact Shadows)

دانلود از آپارات | دانلود از یوتیوب

(Contact Shadows هم تعریفی مانند Ambient Occlusion دارد، اما از منابع نوری مانند خورشید و ماه و نور افکن‌ها تاثیر می‌گیرند، در حالی که Ambient Occlusion از نور محیطی و انعکاس‌ها ایجاد می‌شوند)

  • Atomic Heart

استفاده از Ray Tracing در این بازی برای: سایه‌ها- بازتاب‌ها- سایه‌های محیطی (Shadows-Reflections-Ambient Occlusion)

دانلود از آپارات | دانلود از یوتیوب

جمع بندی

علتی که تا اکنون انویدیا را از عرضه‌ی تجاریِ فناوری تاثیرگذاری مانند RTX برای استفاده‌ی گیمرها باز داشته بود این بود که Ray Tracing به میزان بسیار بالایی از توانِ پردازشی نیاز دارد. مدیر عاملِ انویدیا در رویداد گیمزکامِ ٢٠١٨ استفاده از این تکنیک و پیشرفت در تراشه‌های نسلِ جدید را با جمله‌ی " بزرگ‌ترین جهشی که تنها در عرض یک نسل به واقعیت تبدیل کرده‌ایم" توصیف کرد. شاید این گفته مبالغه آمیز نباشد، اگر تصور کنیم که معماری جدیدِ تورینگ در تراشه‌های گرافیکیِ انویدیا برای فائق آمدن بر همین موانعِ پردازشی پیش‌روی تکنیک‌های سنگینی مانندِ Ray Tracing، طراحی و ساخته شده‌اند. به ادعای انویدیا، هسته‌های اختصاصی Ray Tracing می‌توانند تا ۶ برابر سریع‌تر از پلتفرمِ پاسکال به تولیدِ شبیه سازی‌ها بپردازند.

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

معماری Turing را می‌توان یک جهشِ بزرگ در فناوری کارت‌های گرافیک محسوب کرد

برخی گیمرها انتقاد می‌کنند که چرا انویدیا در معرفیِ نسل جدید، بیشترِ تمرکزِ خود را روی فناوری‌های جدید، عمدتا با هدف ارتقای بصریِ بازی‌ها معطوف کرده و در مراسمِ اختصاصیِ خود، آماری از راندمانِ نسل جدید در مقایسه با نسلِ قبلی نشان نداده است، در حالی که بسیاری انتظار داشتند رونمایی از محصولی را ببینند که روی افزایشِ راندمانِ قابل توجه برای رسیدن به تجربه‌ی واقعی در دقتِ 4K و ۶۰ فریم بر ثانیه در نسلِ جدید متمرکز شود. در واقع اولویتِ اول بسیاری از خوره‌های بازی، مخصوصا آنهایی که به بازی‌های شوترِ آنلاین می‌پردازند، رسیدن به نرخِ فریم بالاتر و همزمان اجرای بازی در رزولوشنِ اصلی تلویزیون‌ها و نمایشگرهای مخصوص بازی است و برخی جزئیاتِ محیطی در شیوه‌ی بازیِ آنها ممکن است خیلی جلب توجه نکند و در بهبودِ شیوه‌ی بازی و نتیجه‌ی نهایی هم تاثیرگذار نباشد.

البته نباید از نظر دور داشت که ارتقای تکنیکیِ بازی‌ها در بخش گرافیک و مخصوصا هوشِ مصنوعی از مسائلی است که در طول پیدایشِ صنعت بازی‌های ویدیویی با محدودیت‌های فناوری مواجه بوده است و هر اقدامی که در جهت پیشرفت و ارتقای فناوری در این زمینه‌ها صورت پذیرد قطعا نیازمند سرمایه گذاریِ کلان و تحقیقاتی است که تنها در شرکت‌های بزرگ و البته پیشتاز در این عرصه میسر خواهد بود. همین که انویدیا با دارا بودن مزایایی مثل تحقیقاتِ فراوان در حوزه‌ی هوش مصنوعی و پیشتازی در تولیدِ واحدهای هدایت کننده در ماشین‌های خودرانِ آینده توانسته در این عرصه هم قدم بردارد، خود شایسته‌ی تقدیر و تحسین است. اما این که RTX بتواند گامِ بعدی و عاملی تعیین کننده در بازی‌های رایانه‌ای باشد، فقط به تلاشِ انویدیا وابسته نیست، بلکه به استقبال بازی‌سازان و میزانِ رواجِ استفاده از این فناوری جدید، تا جایی که به یک استانداردِ پذیرفته شده تبدیل شود هم بستگی دارد. استانداردی که مثل هسته‌های پردازشیِ تراشه‌های گرافیکی در تمام پلتفرم‌های بازی شاملِ پی‌سی، کنسول و موبایل به یک قابلیتِ متعارف و شناخته شده تبدیل شوند و ابزارهای قدرتمندی مانند Ray Tracing و هوش مصنوعی را به امکانی ضروری در جهت ارتقای تجربه‌ی بازی‌های آینده بدل کنند.