در دنیای گرافیک و بازیهای ویدیویی، یکی از مهمترین جنبههایی که بر تجربهی کاربر تأثیرگذار، نحوهی شبیهسازی نور و بازتابها است. این بازتابها میتوانند واقعگرایانهتر یا جذابتر از آنچه که در واقعیت مشاهده میکنیم باشند. یکی از تکنیکهای پیشرفتهای که برای بهبود کیفیت این بازتابها استفاده میشود، تکنیک Screen Space Reflections یا به اختصار SSR است.
SSR به معنای «بازتابهای فضای صفحه نمایش» است و در واقع یکی از روشهای محبوب برای شبیهسازی بازتابهای سطحی در بازیهای ویدیویی به شمار میرود. در بازیهای مدرن، که بازتابها از اهمیت ویژهای برخوردارند، این تکنیک به ارتقای تجربه بصری کاربر کمک میکند.

در این مقاله از ویجیاتو، به بررسی دقیقتر مفهوم Screen Space Reflections یا SSR در بازیهای ویدیویی میپردازیم و تأثیر آن بر کیفیت بصری و تجربهی کاربر را تحلیل میکنیم. با ما همراه باشید تا با این جلوهی پیشرفته گرافیکی بیشتر آشنا شوید.
بیشتر بخوانید: هرآنچه که باید پیش از خرید کارت گرافیک (GPU) گیمینگ بدانید
بیشتر بخوانید: کارت گرافیک دست دوم بخریم یا نه؟ راهنمای جامع خرید کارت گرافیک دست دوم
بازتاب فضای صفحه یا Screen Space Reflection چیست؟
تکنیک Screen Space Reflections یا به اختصار SSR یک تکنیک گرافیکی است که برای شبیهسازی بازتابها در بازیهای ویدیویی استفاده میشود. این بازتابها، برخلاف تکنیکهای قدیمی که به صورت از پیشساخته بودن یا براساس اطلاعات ثابت محاسبه میشدن، بهطور داینامیک و در زمان واقعی بر اساس محیط بازی محاسبه میشوند.
در تکنیک SSR، بازتابها نه از اطلاعات هندسی دقیق محیط، بلکه از دادههایی که در فضای صفحه نمایش (Screen Space) است، محاسبه میشوند. این دادهها شامل رنگها، نورها و سایر ویژگیهای پیکسلهای محیط میباشند که در صفحه نمایش بازی به نمایش در میآیند. یعنی اگر دادهای خارج از میدان دید باشد یا اگر دوربین بچرخد ممکن است بازتابها ناپدید شوند یا تشکیل نشوند.

به بیان سادهتر، بازتابها فقط آن قسمتهایی که در صفحه نمایش قابل مشاهده هستند، را شبیهسازی میکند. این باعث میشود که پردازش گرافیکی بسیار سریعتر و بهینهتر از روشهای سنتی مثل Ray Tracing باشد.
بیشتر بخوانید: Ray Tracing در بازیهای ویدیویی چیست؟ | اصطلاحات گرافیکی
تفاوت Ray Tracing و SSR چیست؟
در دنیای گرافیک بازیهای ویدیویی، دو تکنیک اصلی برای شبیهسازی بازتابها و جلوههای نوری استفاده میشود: Ray Tracing و Screen Space Reflections (SSR).
ری تریسینگ یا به صورت دقیقتر، رهگیری بلادرنگ پرتو (Real-Time Ray Tracing) به طور دقیق مسیر نور را ردیابی میکند تا بازتابها و سایر اثرات نوری را شبیهسازی کند. این تکنیک قادر است بازتابهایی که در هر نقطه در محیط بازی ایجاد میشوند و حتی بازتابهایی که از صفحه نمایش خارج هستند را شبیهسازی کند.

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

در مقابل، SSR عملکرد بهتری دارد و منابع کمتری مصرف میکند، زیرا تنها از دادههای موجود در صفحه نمایش استفاده میکند و نیازی به پردازشهای پیچیدهای ندارد. بنابراین، SSR گزینهای مناسب برای بازیهایی است که به دنبال حفظ تعادل بین کیفیت گرافیکی و عملکرد هستند.
بیشتر بخوانید: چگونه فریم ریت بازیها را افزایش دهیم؟
بیشتر بخوانید: ۴ راه ساده برای اندازهگیری نرخ فریم بازیها در پیسی
مقایسه Ray Tracing و SSR
ویژگی | Ray Tracing (Real-Time Ray Tracing) | SSR (Screen Space Reflections) |
---|---|---|
دقت | بسیار دقیق و واقعگرایانه، شبیهسازی بازتابهای غیرمستقیم و پیچیده | دقت کمتر، تنها شبیهسازی بازتابهای در صفحه نمایش |
عملکرد | نیاز به منابع پردازشی بالا، تأثیر منفی بر فریمریت | منابع کمتری مصرف میکند، عملکرد بهتر |
محدودیتها | بهدلیل ردیابی مسیر نور، نیاز به پردازشهای پیچیده و سختافزار قوی دارد | فقط بازتابهایی که در صفحه نمایش قرار دارند را شبیهسازی میکند |
استفاده در بازیها | بازیهای AAA و با گرافیک پیشرفته | بازیهایی با منابع محدود یا نیاز به عملکرد بالا |
نحوه عملکرد SSR
تکنیک بازتاب فضای صفحه (SSR) ابتدا فضای صفحه فعلی که در حال رندر شدن است را تجزیه و تحلیل میکند، سپس یک پرتو بازتابی بر اساس اطلاعات جمعآوریشده از فضای صفحه فعلی محاسبه میکند.
این پرتو بازتابی سپس در صحنه ردیابی میشود تا اشیاء و سطوحی که باید بازتاب داده شوند و شناسایی شوند. پس از شناسایی اشیاء و سطوح، پرتو بازتابی با سطح یا شیء ترکیب میشود و بازتابهای واقعگرایانهای ایجاد میکند.

همانطور که پیشتر ذکر شد، تکنیک SSR از نظر محاسباتی سنگین است، بنابراین باید بهدرستی استفاده و بهخوبی بهینهسازی شود تا نتایج عالی به دست آید. همچنین، استفاده از این تکنیک بر روی دستگاههای موبایل توصیه نمیشود.
Screen Space Reflections (SSR) یک تکنیک گرافیکی است که برای شبیهسازی بازتابها در بازیهای ویدیویی استفاده میشود. این تکنیک برخلاف روشهای پیچیدهتری مثل Ray Tracing، تنها از دادههای موجود در فضای صفحه نمایش استفاده میکند تا بازتابهای واقعگرایانهای ایجاد کند. در اینجا نحوه عملکرد SSR را مرحله به مرحله توضیح میدهیم:
1. استخراج دادههای صفحه نمایش
اولین مرحله در فرآیند SSR، جمعآوری دادهها از فضای صفحه نمایش است. این دادهها معمولاً شامل اطلاعات مربوط به عمق (Depth)، نرمالها (Normals) و شیدرها (Shaders) هستند.

به عبارت دیگر، SSR به اطلاعات موجود در هر پیکسل از تصویر فعلی نیاز دارد تا بازتابها را به درستی شبیهسازی کند. اطلاعات عمق به تعیین فاصله هر سطح از دوربین کمک میکند و نرمالها، جهت سطح را مشخص میکنند تا بازتاب نور به درستی محاسبه شود.
2. شبیهسازی بازتابها در فضای صفحه نمایش
پس از جمعآوری دادههای صفحه نمایش، SSR مسیر پرتوهای نور را از هر پیکسل شروع میکند تا ببیند آیا بازتابی از سطحهای دیگر موجود در فضای صفحه نمایش میتواند در آن نقطه مشاهده شود یا نه.
این پرتوها در فضای صفحه نمایش حرکت میکنند و به سطوح مختلف برخورد میکنند. اگر این پرتو به سطحی برخورد کند که در صفحه نمایش قابل مشاهده باشد، به عنوان یک بازتاب در نظر گرفته میشود و رنگ و ویژگیهای آن سطح به تصویر اضافه میشود.
3. محدودیتهای فضای صفحه نمایش
یکی از اصلیترین محدودیتهای SSR این است که تنها میتواند بازتابهایی را شبیهسازی کند که در فضای صفحه نمایش قرار دارند. به عبارت دیگر، اگر سطحی خارج از دید دوربین (یعنی خارج از فضای صفحه نمایش) قرار داشته باشد، SSR قادر به شبیهسازی بازتاب آن نخواهد بود.

برای جبران این محدودیت، الگوریتمهای مختلفی برای پیشبینی بازتابها از سطوح خارج از صفحه نمایش وجود دارند، اما این پیشبینیها معمولاً دقیق نیستند و میتوانند باعث ایجاد نقصهایی در بازتابها شوند.
4. بهبود کیفیت بازتابها
برای بهبود کیفیت بازتابها، معمولاً از تکنیکهایی مانند Blurring استفاده میشود. بازتابها به طور معمول دارای اثرات مات یا بلور شده هستند که در طبیعت مشاهده میشود. بنابراین، SSR میتواند این بازتابها را به طور نرم و طبیعیتر شبیهسازی کند. همچنین در بسیاری از موارد، برای بهبود جزئیات بازتابها و جلوگیری از نویز (artifact) در تصویر، فیلترهای اضافی نیز استفاده میشوند.
کاربردهای SSR در بازیهای ویدیویی
SSR یکی از تکنیکهایی است که بهطور گسترده در بازیهای ویدیویی مدرن برای بهبود کیفیت گرافیک و بازتابهای محیطی استفاده میشود. این تکنیک بهویژه در بازیهایی که دارای محیطهای پویایی هستند که با نورپردازی و بازتابهای سطحی پیچیده تعامل دارند، کاربرد زیادی دارد.

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

بهبود تجربه بازی در دنیای باز:
در دنیای بازیهای جهانباز، مانند بازیهای open world، که به محیطهای وسیع و متنوع نیاز است، SSR میتواند بهطور چشمگیری گرافیک بازی را بهبود بخشد. بازتابها میتوانند بهطور دینامیک در تمام محیط بازی محاسبه شوند، و به این ترتیب، بازیکنان تجربهای شبیه به دنیای واقعی خواهند داشت که بازتابها در آن همواره با محیط تغییر میکنند.
مزایا و معایب SSR
عملکرد بهتر نسبت به Ray Tracing:
یکی از بزرگترین مزایای SSR نسبت به تکنیکهای دیگر مانند Ray Tracing، کارایی بالاتر آن است. Ray Tracing برای شبیهسازی دقیقتر بازتابها، به محاسبات پیچیدهتری نیاز دارد که میتواند عملکرد بازی را بهشدت تحت تأثیر قرار دهد.
اما SSR با استفاده از اطلاعات فضای صفحه نمایش، تنها بخشی از محیط را پردازش میکند و به همین دلیل فشار کمتری به سختافزار وارد میکند، بهویژه در بازیهایی با گرافیک پیشرفته.

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

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

Ray Tracing (رهیابی پرتو):
یکی از معروفترین تکنیکها برای شبیهسازی بازتابها، Ray Tracing است. این تکنیک بهطور دقیقتری مسیر نور را در دنیای سهبعدی شبیهسازی میکند و بازتابها را از منابع مختلف با دقت بالایی محاسبه میکند.
در حالی که Ray Tracing نتایج بسیار واقعی و دقیقتری نسبت به SSR بهوجود میآورد، اما نیاز به محاسبات سنگینتری دارد که میتواند عملکرد بازی را کاهش دهد. این در حالی است که SSR بهواسطهی پردازش سادهتر و استفاده از اطلاعات موجود در فضای صفحه نمایش، سرعت بیشتری دارد و منابع کمتری مصرف میکند.
Cube Mapping:
تکنیک Cube Mapping یکی دیگر از روشهای قدیمیتر شبیهسازی بازتابهاست. در این روش، یک نقشهی سهبعدی از محیط ساخته میشود که بازتابها بر اساس آن شبیهسازی میشوند.

این روش دقیق است، اما برخلاف SSR و Ray Tracing نمیتواند تغییرات داینامیک محیط (مانند تغییر زاویه نور یا دوربین) را بهطور آنی شبیهسازی کند. Cube Mapping بیشتر در محیطهای ثابت و پیشساخته استفاده میشود.
Screen Space Ambient Occlusion (SSAO):
در حالی که SSAO برای شبیهسازی تأثیرات نور و سایهها در فضای صفحه نمایش به کار میرود، SSR مخصوصاً برای شبیهسازی بازتابهای سطحی است.
به عبارت دیگر، SSAO بیشتر به تأثیرات نور در فضاهای تاریک و سایهزده مربوط میشود، در حالی که SSR بازتابها را از سطحهای مختلف شبیهسازی میکند. هرچند این دو تکنیک ممکن است در بعضی بازیها بهطور همزمان استفاده شوند، اما کاربردهای آنها متفاوت است.
ویژگی | SSR (Screen Space Reflections) | Ray Tracing | Cube Mapping | SSAO (Screen Space Ambient Occlusion) |
---|---|---|---|---|
دقت بازتابها | دقیق و داینامیک، اما محدود به فضای صفحه نمایش | بسیار دقیق و واقعی، شبیهسازی مسیر نور واقعی | دقیق، اما برای محیطهای ثابت و پیشساخته استفاده میشود | شبیهسازی سایهها و تأثیرات نور در فضاهای تاریک |
نیاز به منابع پردازشی | کمتر از Ray Tracing، سریعتر | زیاد، منابع زیادی برای پردازش نیاز دارد | کم، چون نیاز به پردازش پیچیده ندارد | کم، اما برای شبیهسازی سایهها استفاده میشود |
انعطافپذیری در محیط داینامیک | بسیار بالا، بازتابها بهطور آنی تغییر میکنند | بسیار بالا، میتواند بازتابها را در محیطهای پیچیده شبیهسازی کند | کم، تنها بازتابهای ثابت را شبیهسازی میکند | کم، بیشتر مربوط به تأثیرات نور و سایهها است |
استفاده در بازیهای دنیای باز | مناسب، برای بازیهای با دنیای باز و محیطهای پویا | مناسب، ولی به دلیل منابع پردازشی زیاد محدود است | کمتر مناسب، چون نیاز به تغییرات داینامیک ندارد | کمتر مناسب، چون بیشتر به شبیهسازی سایهها مربوط است |
کیفیت گرافیکی | کیفیت خوب، ولی ممکن است در بازتابها اختلالاتی ایجاد شود | کیفیت عالی و واقعی، بسیار دقیق | کیفیت خوب، ولی محدود به محیطهای ثابت | کیفیت مناسب برای شبیهسازی سایهها و تأثیرات نور |
بازتاب فضای صفحه (SSR) در موتور بازی سازی یونیتی
یونیتی از تکنیک SSR با گنجاندن آن بهعنوان یکی از افکتها در استک پسپردازش پشتیبانی میکند. این تکنیک فقط در مسیر رندر پیشفرض در دسترس است. برای فعالسازی مسیر رندر پیشفرض برای پروژهتان، میتوانید اینجا را بررسی کنید.

بنابراین، برای استفاده از تکنیک SSR در یونیتی، باید بسته پسپردازش را در دوربین خود نصب کرده و افکت SSR را به آن اضافه کنید. سپس خصوصیات SSR را مانند نوع ترکیب، کیفیت بازتاب، حداکثر فاصله، تعداد تکرارها، اندازه گام، اصلاح عرض، تاری بازتاب، بازتاب پشتسطوح، ضریب بازتاب، فاصله محو، محو فریزل، قدرت محو فریزل و شدت را برای رسیدن به نتیجه مطلوب خود تنظیم کنید.
استفاده از روش SSR در یونیتی نسبت به سایر روشها مانند Cubemaps و Reflection probes مزیتهای بیشتری دارد و بازتابهای دقیقتر و واقعگرایانهتری ارائه میدهد.
راهنمای جامع مفهوم SSR
در مجموع، تکنیک بازتاب فضای صفحه (SSR) یک تکنیک پرکاربرد برای رندر کردن بازتابهای واقعگرایانه و زمانبندیشده در بازیها است که باعث افزایش واقعگرایی و زیبایی بصری صحنههای بازی شما میشود.
تکنیک SSR (Screen Space Reflections) یکی از ابزارهای قدرتمند در گرافیک بازیهای ویدیویی است که به شبیهسازی بازتابها در فضای صفحه نمایش پرداخته و به بازیها کمک میکند تا جلوههای بصری واقعگرایانهتر و داینامیکتری داشته باشند.
این تکنیک به دلیل کارایی بالا و نیاز کمتر به منابع پردازشی، انتخاب محبوبی در بازیهای مدرن است. با این حال، مانند هر تکنیک دیگری، SSR نیز محدودیتهایی دارد، از جمله مشکلات در شبیهسازی بازتابهای خارج از دید، کیفیت پایین در سطوح پیچیده و احتمال بروز خطاهای گرافیکی.
در نهایت، با توجه به نیازهای بازی و محدودیتهای سختافزاری، توسعهدهندگان باید تصمیم بگیرند که کدام تکنیک را برای شبیهسازی بازتابها انتخاب کنند. برای محیطهایی با گرافیک پیچیده و نیاز به دقت بالا، ممکن است نیاز به استفاده از تکنیکهای پیشرفتهتر مانند Ray Tracing باشد، اما در بیشتر بازیهای ویدیویی، SSR به دلیل تعادل بین کیفیت و کارایی، گزینهای مناسب و محبوب است.
خیر، SSR یک تکنیک متفاوت از Ray Tracing است. در حالی که Ray Tracing بهطور دقیقتری مسیر نور و بازتابها را شبیهسازی میکند، SSR تنها از دادههای فضای صفحه نمایش برای شبیهسازی بازتابها استفاده میکند. این به SSR کمک میکند تا منابع کمتری مصرف کرده و سریعتر عمل کند، اما ممکن است دقت کمتری در شبیهسازی بازتابها داشته باشد.
SSR تنها بازتابهایی را شبیهسازی میکند که در فضای صفحه نمایش قرار دارند. بنابراین، هر چیزی که از دید دوربین خارج باشد، در بازتابها محاسبه نمیشود. این محدودیت میتواند باعث ایجاد نقصهایی در کیفیت گرافیکی بازی شود.
source
کلاس یوس