تکنیک Ray Tracing چیست و آیا می‌تواند منجر به تغییری عظیم در بازی‌های PC شود؟

VahiD VFSDF

PC GAMER
کاربر سایت
Jul 19, 2010
279
نام
VahiD VFSDF
بازی‌های رایانه‌ای مدرن و امروزی در زمینه جلوه‌های بصری می‌توانند بسیار فوق‌العاده و حیرت‌انگیز نمایان کنند، عاملی که در سال‌های اخیر و به لطف توان پردازشی بسیار ضعیف کنسول‌ها متاسفانه با محدودیت‌های فراوانی همراه شده و آنچنان موفق به نمایش پتانسیل‌های خود نگشته‌اند.

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

اگر کنفرانس خبری کمپانی‌های مایکروسافت، انویدیا و ای‌ام‌دی را در طی مراسم GDC مشاهده کرده باشید، بدون شک با تکنیک "ردیابی پرتو" یا به عبارتی دیگر "Ray Tracing" نیز آشنایی داشته و با خود اندیشیده‌اید که نحوه عملکرد آن چیست، آیا فناوری فوق در زمینه دگرگونی چشمگیر جلوه‌های بصری بازی‌های رایانه‌ای می‌تواند مفید واقع شده و انقلابی عظیم را با خود به ارمغان آورد؟

battlefield-v-nvidia-rtx-ray-tracing-screenshot-001-100768843-large.jpg


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

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

یک سیستم گیمینگ در بهترین شرایط تنها تعداد 3 یا 4 کارت گرافیک در پیکربندی SLI یا کراس‌فایر را به‌صورت مطلوب می‌تواند در بطن خود جای دهد، در حالی که یک رایانه خوشه‌ای و یا سرور پردازش قادر است این مهم را با ضریب چند صد برابری با خود به ارمغان آورد. جهت درک بهتر گستردگی موضوع استودیو انیمیشن‌سازی پیکسار را در نظر بگیرید. استودیو فوق مزرعه رندر یا به عبارتی دیگر ابرکامپیوتری متشکل از تعداد 2 هزار رایانه و 24 هزار هسته پردازشی را در اختیار دارد. این مهم در نگاه کلی توان محاسباتی بسیار عظیمی را با خود به ارمغان می‌آورد، اما پردازش هرکدام از فریم‌های تشکیل دهنده ساختار انیمیشن زیبای دانشگاه هیولاها (Monster’s University) با این وجود 29 ساعت به طول انجامیده است که این خود مجموع تصاویر نهایی فیلم را با پردازشی دو ساله همراه ساخته است، حال کدام یک از سیستم‌های گیمینگ از چنین توانی برخوردار می‌باشند؟ آیا تمامی بازی‌بازان از توانایی دسترسی به ابرکامپیوترهای قدرتمند جهت اجرای بازی‌های رایانه‌ای برخوردارند؟

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

real-time-ray-tracing.jpg


تکنیک Ray Tracing سالیان سال است که توسط توسعه دهندگان فیلم‌های سینمایی و تصاویر CGI به‌کار گرفته می‌شود، اما بستر استفاده از آن به دلیل محدودیت‌های پردازشی بسیار شدید در بازی‌های رایانه‌ای عملاً غیر ممکن بود؛ حال با پای در میدان گذاشتن رابط‌های برنامه‌نویسی سطح پایین همچون دایرکت‌ایکس 12، معرفی معماری‌های جدید و قدرتمند تراشه‌های شتاب دهنده گرافیکی از جانب کمپانی‌های انویدیا و ای‌ام‌دی و طراحی الگوریتم‌های ویژه به‌منظور شبیه‌سازی تکنیک‌های نورپردازی به صورت کاملاً بهینه و زمان حقیقی در زمینه فراهم آوردن زیرساخت‌های مناسب جهت استفاده از آن تاثیرات بسیاری را به خود اختصاص داده‌اند.

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

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

ray-traced-room-concept.jpg


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

ADU_Tank

کاربر سایت
May 26, 2011
1,269
نام
Ali
این الان یه تکنولوژی یه درجه پایین تر از RT هست یا مثلا شبیه به اون؟!
گفته شده با تراشه های جدید و DX12 تا حدودی تونستن این تکنیک رو اجرا کنند. اما دقیقا چطور ممکنه؟
چون RT بسیار تکنولوژی سنگینیه و مگه تو یه بازه کوتاه مدت(از نسل 1080 مثلا تا الان) چقدر پیشرفت کردند که بخوان این رو اجرا کنند روی یک کارت گرافیک رو PC؟
 

saphire

کاربر سایت
Dec 9, 2007
2,578
نام
امیرحسین
این الان یه تکنولوژی یه درجه پایین تر از RT هست یا مثلا شبیه به اون؟!
گفته شده با تراشه های جدید و DX12 تا حدودی تونستن این تکنیک رو اجرا کنند. اما دقیقا چطور ممکنه؟
چون RT بسیار تکنولوژی سنگینیه و مگه تو یه بازه کوتاه مدت(از نسل 1080 مثلا تا الان) چقدر پیشرفت کردند که بخوان این رو اجرا کنند روی یک کارت گرافیک رو PC؟
با AI و Machine Learning میان کمی بهینه تر می کنن کار رو نسبت به Ray Tracing موتور های رندر. ولی خوب در نهایت RTX نقش کمکی داره واسه سایه ها و رفلکشن ها و قسمت بیشتر رندر به صورت سنتی و توسط شیدر ها انجام می شه.
 

Aurlito

کاربر سایت
Feb 16, 2008
1,749
نام
چوبک
من توی سینما فوردی که کار میکردم شدو مپ بهتر از ری تریسینگ بود. مخصوصا اینکه میتونستی سایز مپت رو انتخاب کنی... ولی فکر نکنم شدو مپهای 1024 که حداقل یک مپ خوب برای دیده شدن اچ دی هست در مموری کنسولها جا شه. شایدم اصلا از اول بازیسازها از مپ استفاده میکردن؟ نمیدونم من از بازیسازی سه بعدی خبری ندارم فقط دوبعدی یکم بلدم. اگر ری تریسینگ استفاده نمیشده تابحال و مپینگ هم حچمش زیاده پس تابحال از چه تکنیکی برای سایه سازی استفاه میکردن بازیسازها؟

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

dm2e_d4d06e50622799.58d4ea14da602.png
 
  • Like
Reactions: raya2

saphire

کاربر سایت
Dec 9, 2007
2,578
نام
امیرحسین
من توی سینما فوردی که کار میکردم شدو مپ بهتر از ری تریسینگ بود. مخصوصا اینکه میتونستی سایز مپت رو انتخاب کنی... ولی فکر نکنم شدو مپهای 1024 که حداقل یک مپ خوب برای دیده شدن اچ دی هست در مموری کنسولها جا شه. شایدم اصلا از اول بازیسازها از مپ استفاده میکردن؟ نمیدونم من از بازیسازی سه بعدی خبری ندارم فقط دوبعدی یکم بلدم. اگر ری تریسینگ استفاده نمیشده تابحال و مپینگ هم حچمش زیاده پس تابحال از چه تکنیکی برای سایه سازی استفاه میکردن بازیسازها؟

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

*عکس رو برای سنگین نشدن صفحه حذف کردم توی نقل قول*
شما رندرت اگه ریل تایم نباشه در هر صورت داری Ray-Trace می کنی. شدو مپ واسه خود سایه هاست، و چیزی که توی بازی ها استفاده می شه همچین چیزیه. شدو مپ برتری که داره اینه که رندر سریع تر خواهد بود ولی از نظر کیفیتی در هر صورت حرف اول رو Ray-Trace می زنه. مپ های 1024 هم جا می شن قطعا، حجم یه بیتمپ 32 بیتی کلا می شه نزدیک 4 مگابایت، کنسول 8 گیگ رم داره. ولی رندر غیر ریل تایم در ساده ترین حالتش این طوری اتفاق می افته:
شما یه پیکسل رو می خوای رندر کنی. باید تصمیم بگیری با چه رنگی نمایشش بدی. میای بردار عمود بر سطح (Normal یا N بهش می گم) اون پیکسل (که دو بعدیه و توی صفحه مانیتور قراره نمایش داده بشه) توی فضای سه بعدی(در واقع اون پیکسل توی مانیتور قراره نمایش دهنده یک نقطه سه بعدی روی یک مدل باشه) رو تعریف می کنی.
300px-Surface_normals.svg.png

بعد میای یه بردار واسه نوری که به سطح می زنه هم تعریف می کنی. حالا باید ببینیم نور چقدر تاثیر داره. توی دنیای واقعی اگه نور عمود بر سطح بتابه بیشترین روشنایی رو می ده و اگه کاملا موازی بر سطح باشه تقریبا تاثیری نداره. پس میایم از ضرب نقطه ای دو بردار استفاده می کنیم.
dot-product-image.PNG

واسه یاد آوری کسینوس صفر می شه 1 و کسینوس 90 می شه صفر. نتیجه ای که می ده اینه که اگه نور به سطح عمود باشه، زاویه نور با بردار عمود بر سطح می شه صفر و مقدار کسینوس به بیشترین حالت می رسه و تاثیر نور به بیشترین حالت می رسه و اگه موازی بود، زاویه می شه 90 و نور کلا تاثیری نداره. درست مثل دنیای واقعی:D بعد دیگه تاثیر این نور رو میایم با رنگ و تکسچر اون سطح ترکیب می کنیم و تصمیم می گیریم که اون پیکسلمون باید این رنگی باشه. دقت کنید هیچ جای این پروسه اشعه نور (Ray) رو شبیه سازی نکردیم و هیچ چیز این فرایند واقعی نیست، همش تقریب زدنه. منتها این روش ساده یه 10 سالی هست کاربرد نداره و این تقریب زدن ها اینقدر پیشرفت کردن و اینقدر پیچیده شدن که سر در اوردن ازشون دیگه خیلی سخت شده. Ray Tracingـی که توی ساخت انیمیشن ها مثلا استفاده می شه این دردسر ها رو نداره (در عوض شدیدا سنگینه که دارن حلش می کنن:D) و اینا دارن این رو به بازی ها و رندر ریل تایم هم میارن. اگه تکنولوژیش انحصاری نمونه در آینده همه از این استفاده خواهند کرد.
 

کاربرانی که این قسمت را مشاهده می‌کنند

Top
رمز عبور خود را فراموش کرده اید؟
or ثبت‌نام سریع از طریق سرویس‌های زیر