رفتن به محتوای اصلی
کوهستان
توضیح کوهستانفناوری رندرینگمقاله آموزشی· 4 دقیقه مطالعه· در فناوری

سلسله‌مراتب حجم محدودکننده (BVH): رهگیری پرتو چگونه بدون رستر کردن صحنه، مسیر نور را محاسبه می‌کند؟

برای رندر کردن نورپردازی واقع‌گرایانه در لحظه، پردازنده‌های گرافیکی (GPU) به یک الگوریتم جعبه‌های تودرتو متکی هستند که به آن‌ها اجازه می‌دهد در هر فریم، میلیون‌ها چندضلعی را نادیده بگیرند.

به قلم نیما موسوی

به‌طور خلاصه

  1. رهگیری پرتو نیازمند بررسی مسیرهای نور در برابر میلیون‌ها چندضلعی است که انجام مستقیم آن از نظر محاسباتی بسیار پرهزینه است.
  2. سلسله‌مراتب حجم محدودکننده (BVH) هندسه یک صحنه را در جعبه‌های تودرتو گروه‌بندی می‌کند.
  3. اگر یک پرتو نور به یک جعبه محدودکننده برخورد نکند، پردازنده گرافیکی فوراً تمام چندضلعی‌های داخل آن را نادیده می‌گیرد و میلیون‌ها محاسبه را صرفه‌جویی می‌کند.

محدودیت اصلی رهگیری پرتو (Ray Tracing) این است که شبیه‌سازی نور به بررسی مسیر میلیون‌ها پرتو مجزا در برابر هندسه یک صحنه سه‌بعدی نیاز دارد. اگر محیط یک بازی مدرن شامل ده میلیون چندضلعی باشد و دوربین برای هر پیکسل در یک نمایشگر 4K یک پرتو شلیک کند، بررسی هر پرتو در برابر هر چندضلعی به بیش از ۸۰ تریلیون تست تقاطع در هر فریم نیاز دارد.

در نرخ ۶۰ فریم بر ثانیه، این رویکرد پردازش کورکورانه برای هر تراشه‌ای که در یک کنسول یا رایانه شخصی جا می‌شود، از نظر ریاضی غیرممکن است.[1][3]

برای حل این مشکل، مهندسان گرافیک اصلاً سعی نمی‌کنند هر تقاطعی را محاسبه کنند. در عوض، آن‌ها به یک میان‌بر الگوریتمی به نام سلسله‌مراتب حجم محدودکننده (BVH) تکیه می‌کنند. الگوریتم BVH یک ساختار داده درختی است که اشیای هندسی یک صحنه را در جعبه‌های محدودکننده تودرتو و محافظه‌کارانه دسته‌بندی می‌کند.

گره ریشه این درخت، یک جعبه عظیم و واحد است که کل دنیای رندر شده را در بر می‌گیرد. این جعبه به جعبه‌های کوچک‌تری تقسیم می‌شود و این تقسیم‌بندی به‌صورت بازگشتی ادامه می‌یابد تا جایی که کوچک‌ترین جعبه‌ها - یعنی گره‌های برگ - تنها شامل چند مثلث مجزا باشند.[1][2]

وقتی یک پردازنده گرافیکی یک پرتو نور را رهگیری می‌کند، آن را مستقیماً با هندسه صحنه آزمایش نمی‌کند. بلکه ابتدا پرتو را در برابر بزرگ‌ترین جعبه‌های محدودکننده می‌سنجد. اگر پرتو به یک جعبه برخورد نکند، سخت‌افزار فوراً می‌فهمد که به هیچ‌یک از اشیای داخل آن جعبه نیز برخورد نکرده است. با نادیده گرفتن شاخه‌های کامل این درخت، BVH پیچیدگی زمانی یافتن یک برخورد را از حالت خطی به لگاریتمی کاهش می‌دهد. به این ترتیب، میلیون‌ها بررسی احتمالی چندضلعی‌ها تنها در یک گام ریاضی دور ریخته می‌شوند.[1][2]

با آزمایش یک پرتو در برابر جعبه‌های محدودکننده، پردازنده گرافیکی می‌تواند فوراً هندسه‌ای را که پرتو هرگز به آن برخورد نخواهد کرد، کنار بگذارد.

این فرآیند پیمایش آن‌قدر برای رندرینگ مدرن حیاتی است که سازندگان تراشه، سیلیکون‌های اختصاصی برای اجرای آن ساخته‌اند. هسته‌های RT شرکت انویدیا و شتاب‌دهنده‌های پرتو شرکت ای‌ام‌دی، واحدهای سخت‌افزاری تخصصی هستند که دقیقاً برای انجام دو کار طراحی شده‌اند: پیمایش سریع درخت BVH و محاسبه تقاطع نهایی پرتو و مثلث در گره‌های برگ. با واگذاری این بار کاری خاص و سنگین محاسباتی به این واحدها، هسته‌های سایه‌زن استاندارد آزاد می‌شوند تا نگاشت بافت و سایر وظایف سنتی رستر‌سازی را انجام دهند.[2]

معماری خود درخت BVH نیز اکنون در حال تکامل است تا با قابلیت‌های سخت‌افزارهای جدیدتر همگام شود. پیاده‌سازی‌های استاندارد معمولاً از ضریب انشعاب چهار استفاده می‌کنند که به BVH4 معروف است؛ به این معنی که هر جعبه والد تا چهار جعبه فرزند را در خود جای می‌دهد.

با این حال، معماری سفارشی AMD RDNA که قدرت‌بخش پلی‌استیشن ۵ پرو سونی است، پشتیبانی سخت‌افزاری از یک سلسله‌مراتب حجم محدودکننده ۸ مسیره یا BVH8 را معرفی می‌کند. ساختار BVH8 با دو برابر کردن تعداد گره‌های فرزند در هر جعبه، درختی کم‌عمق‌تر و پهن‌تر ایجاد می‌کند.[3]

ساختار BVH8 درختی کم‌عمق‌تر از BVH4 سنتی ایجاد می‌کند و تعداد فراخوانی‌های حافظه مورد نیاز برای یافتن یک چندضلعی را کاهش می‌دهد.

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

زمانی که استودیوی سی‌دی پراجکت رد به‌روزرسانی PS5 Pro بازی سایبرپانک ۲۰۷۷ را منتشر کرد، صراحتاً از پیاده‌سازی جدید BVH8 به عنوان مکانیزمی یاد کرد که به آن‌ها اجازه داد بازتاب‌ها، سایه‌ها و نورپردازی‌های تابشی مبتنی بر رهگیری پرتو را فعال کنند، در حالی که نرخ فریم قابل‌بازی حفظ شود. در واقع، سخت‌افزار زمان کمتری را صرف جستجو در ساختار داده می‌کند.

نتیجه عملی این کارایی الگوریتمی در معیارهای عملکرد جدیدترین عناوین کنسولی قابل مشاهده است. در آزمایش‌های اخیر بازی ولورین مارول روی PS5 Pro، حالت پیشرفته رهگیری پرتو در مقایسه با حالت رندر استاندارد، تنها با افت عملکردی حدود ۳ تا ۴ فریم بر ثانیه همراه بود. این کنسول قادر است محاسبات پیچیده نورپردازی سراسری و بازتاب‌ها را با تأثیری ناچیز بر روانی کلی بازی مدیریت کند.

نتیجه عملی این کارایی الگوریتمی در معیارهای عملکرد جدیدترین عناوین کنسولی قابل مشاهده است.

تلاش برای رسیدن به گرافیک واقع‌گرایانه در رسانه‌های تعاملی، صرفاً به معنای افزودن قدرت پردازشی خام بیشتر نیست؛ بلکه اصلاح مداوم نحوه سازمان‌دهی و پرس‌وجوی داده‌هاست. در شرایطی که توسعه‌دهندگان به بهینه‌سازی ساختارهای BVH خود ادامه می‌دهند و معماران سخت‌افزار مسیرهای پیمایش پهن‌تری می‌سازند، هزینه محاسباتی شبیه‌سازی نور فیزیکی همچنان کاهش می‌یابد و صنعت را از توهمات بصری رستر‌سازی دورتر می‌کند.[3]

اصطلاحات کلیدی

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

پرسش‌های متداول

چرا پردازنده‌های گرافیکی نمی‌توانند فقط هر چندضلعی را بررسی کنند؟

بررسی یک پرتو در برابر میلیون‌ها چندضلعی به عملیات‌های ریاضی بسیار زیادی نیاز دارد. انجام این کار برای میلیون‌ها پرتو، آن هم ۶۰ بار در ثانیه، هر پردازنده مدرنی را از کار می‌اندازد.

یک هسته RT دقیقاً چه کاری انجام می‌دهد؟

هسته‌های RT واحدهای سخت‌افزاری اختصاصی روی یک پردازنده گرافیکی هستند که به‌طور خاص برای پیمایش درخت BVH و محاسبه اینکه آیا یک پرتو با یک مثلث تقاطع دارد یا خیر، طراحی شده‌اند و بقیه ظرفیت پردازنده را آزاد می‌گذارند.

تفاوت بین BVH4 و BVH8 چیست؟

ساختار BVH4 تا چهار جعبه فرزند را در داخل هر جعبه والد گروه‌بندی می‌کند، در حالی که BVH8 تا هشت جعبه را در خود جای می‌دهد. BVH8 درختی کم‌عمق‌تر ایجاد می‌کند، به این معنی که پردازنده گرافیکی برای یافتن چندضلعی نهایی به مراحل کمتری نیاز دارد.

بررسی عمیق دیدگاه‌ها

مهندسان گرافیک

تمرکز بر کارایی الگوریتمی و پیچیدگی زمانی رندرینگ.

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

معماران سخت‌افزار

تمرکز بر طراحی سیلیکون اختصاصی برای شتاب بخشیدن به عملیات‌های ریاضی خاص.

طراحان تراشه، BVH را به عنوان یک بار کاری ریاضی ثابت می‌بینند که می‌تواند در سیلیکون کدگذاری شود. از آنجا که پیمایش یک سلسله‌مراتب حجم محدودکننده نیازمند تست‌های تکراری و قابل پیش‌بینی تقاطع جعبه‌هاست، معماران سخت‌افزار در AMD و Nvidia شتاب‌دهنده‌های پرتو و هسته‌های RT اختصاصی را برای اجرای این دستورالعمل‌های خاص طراحی کردند. با انتقال پیمایش BVH از نرم‌افزار به سخت‌افزار اختصاصی، آن‌ها تأخیر این عملیات را به‌شدت کاهش داده و واحدهای محاسباتی همه‌منظوره پردازنده گرافیکی را برای کارهای دیگر آزاد می‌کنند.

بازیکنان کنسول

تمرکز بر تجربه کاربر نهایی از نرخ فریم بالا و کیفیت بصری.

برای کاربر نهایی، ساختارهای داده زیربنایی نامرئی هستند؛ معیار موفقیت، تعادل بین کیفیت بصری و عملکرد است. پیاده‌سازی سخت‌افزارهای پیشرفته‌ای مانند پیمایش BVH8 در PS5 Pro به این معنی است که بازیکنان دیگر مجبور نیستند بین روانی ۶۰ فریم بر ثانیه و نورپردازی واقع‌گرایانه ارائه‌شده توسط رهگیری پرتو یکی را انتخاب کنند. این کارایی الگوریتمی مستقیماً به گیم‌پلی روان‌تر در عناوین سنگین از نظر بصری ترجمه می‌شود.

مهندسان گرافیک 35%معماران سخت‌افزار 35%بازیکنان کنسول 30%
مهندسان گرافیک
تمرکز بر کارایی الگوریتمی و پیچیدگی زمانی رندرینگ.
معماران سخت‌افزار
تمرکز بر طراحی سیلیکون اختصاصی برای شتاب بخشیدن به عملیات‌های ریاضی خاص.
بازیکنان کنسول
تمرکز بر تجربه کاربر نهایی از نرخ فریم بالا و کیفیت بصری.

دیدگاه‌هایی که این گزارش پوشش نداده

  • توسعه‌دهندگان موتورهای بازی‌سازی
  • بررسی‌کنندگان مستقل سخت‌افزار رایانه‌های شخصی

منابع

پوشش منابع

3 منبع

3 دیدگاه شناسایی‌شده

مهندسان گرافیک 35%معماران سخت‌افزار 35%بازیکنان کنسول 30%
  1. [1]Physically Based Renderingمهندسان گرافیک

    Bounding Volume Hierarchies

    مطالعه در Physically Based Rendering →
  2. [2]Wikipediaمعماران سخت‌افزار

    Bounding volume hierarchy

    مطالعه در Wikipedia →
  3. [3]تیم سردبیری کوهستان

    تحلیل تیم سردبیری کوهستان

    مطالعه در تیم سردبیری کوهستان →

نظرات

همیشه در جریان باشید

هر زاویه. هر روز.

اخبار فناوری با پوشش کامل منابع و تحلیل دیدگاه‌ها، هر روز و رایگان.