Rasterization — چیست، مراحل و اصل کار

نویسنده: IT Sectr منتشر شده: 2026-06-11 زمان مطالعه: 10 دقیقه

Rasterization — فرآیند تبدیل توصیف برداری از اولیه‌های سه‌بعدی (مثلث‌ها، خطوط، نقاط) به مجموعه‌ای از پیکسل‌ها (قطعات) برای نمایش روی صفحه است. به گزارش Khronos Group, 2025، رسترایزیشن یک مرحله خودکار (غیرقابل برنامه‌نویسی) از خط لوله گرافیک است که بین Vertex Shader و Fragment Shader قرار دارد. Rasterization تعیین می‌کند که کدام پیکسل‌های صفحه به کدام مثلث تعلق دارند و ویژگی‌های درون‌یابی شده را برای هر قطعه محاسبه می‌کند.

نکات اصلی

  • Rasterization — تبدیل اولیه‌های برداری به تصویر شطرنجی (پیکسل‌ها).
  • Scanline conversion — الگوریتم پایه که پوشش پیکسل‌ها توسط مثلث را تعیین می‌کند.
  • درون‌یابی ویژگی‌ها — محاسبه رنگ، مختصات بافت و نرمال‌ها برای هر قطعه.
  • MSAA — چندنمونه‌گیری که لبه‌های پله‌ای (aliasing) را در رسترایزیشن صاف می‌کند.
  • عملکرد رسترایزیشن به تعداد مثلث‌ها و وضوح صفحه بستگی دارد.

رسترایزیشن چیست؟

Rasterization — مرحله‌ای از خط لوله گرافیک است که اولیه‌های هندسی (مثلث‌ها، خطوط) را به مجموعه‌ای از قطعات برای پردازش بعدی توسط Fragment Shader تبدیل می‌کند. داده‌های ورودی — رئوس مثلث در مختصات صفحه و ویژگی‌های آنها (رنگ، نرمال‌ها، UV). خروجی — مجموعه قطعات با ویژگی‌های درون‌یابی شده.

برخلاف شیدرهای قابل برنامه‌نویسی (Vertex و Fragment Shader)، رسترایزیشن یک مرحله ثابت (غیرقابل برنامه‌نویسی) است. توسعه‌دهنده نمی‌تواند الگوریتم رسترایزیشن را تغییر دهد، اما می‌تواند پارامترهای آن را مدیریت کند: حالت برش (culling)، عرض خط، جابجایی عمق (polygon offset) و چندنمونه‌گیری.

نقش رسترایزیشن در گرافیک بلادرنگ

تقریباً تمام گرافیک مدرن بلادرنگ — بازی‌ها، UI، AR/VR — از رسترایزیشن استفاده می‌کند. این پربازده‌ترین روش رندرینگ است که قادر به پردازش میلیون‌ها مثلث در هر فریم با 60 FPS است. رسترایزرهای GPU برای پردازش موازی هزاران مثلث به طور همزمان از طریق بلوک‌های تخصصی ROP (Render Output Units) بهینه‌سازی شده‌اند.

رسترایزیشن چگونه کار می‌کند؟

رسترایزیشن مثلث پس از آن شروع می‌شود که Vertex Shader رئوس را به مختصات صفحه تبدیل کرده است. GPU سه رأس مثلث را می‌گیرد و تعیین می‌کند که کدام پیکسل‌های صفحه در داخل این مثلث قرار دارند.

مراحل رسترایزیشن مثلث

فرآیند شامل سه گام متوالی است: تعیین bounding box مثلث در پیکسل‌ها — بررسی هر پیکسل داخل bounding box از نظر تعلق به مثلث (edge function) — محاسبه ویژگی‌های درون‌یابی شده (مختصات باریسنتریک) برای هر پیکسل پوشش‌داده شده. Edge function — یک معادله خطی است که تعیین می‌کند نقطه در کدام سمت لبه مثلث قرار دارد.

مرحلهتوضیحنتیجه
Clippingبرش مثلث‌های خارج از مرزهای viewportاولیه‌های قابل مشاهده
Viewport transformتبدیل به مختصات صفحهمختصات پیکسلی
Triangle setupمحاسبه edge-functions و bounding boxپارامترهای رسترایزیشن
Fragment generationبررسی پوشش و درون‌یابیقطعات + ویژگی‌ها

الگوریتم‌های رسترایزیشن

Rasterization می‌تواند با الگوریتم‌های مختلفی پیاده‌سازی شود که هر کدام مصالحه‌های خاص خود را بین عملکرد و کیفیت دارند. GPUهای مدرن از ترکیبی از چندین رویکرد استفاده می‌کنند.

الگوریتم Scanline

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

روش Half-space (edge function)

GPUهای مدرن از روش رسترایزیشن half-space استفاده می‌کنند: برای هر ضلع مثلث، edge function محاسبه می‌شود — یک معادله خطی که از یک طرف مثبت و از طرف دیگر منفی است. پیکسل به مثلث تعلق دارد اگر هر سه edge functions مثبت باشند. رسترایزیشن half-space به راحتی موازی‌سازی می‌شود و به خوبی با معماری‌های SIMD GPU سازگار است.

رسترایزیشن Tile-Based (TBR)

GPUهای موبایل (Qualcomm Adreno, ARM Mali) از Tile-Based Rendering (TBR) استفاده می‌کنند. صفحه به tileهای کوچک (16×16 یا 32×32 پیکسل) تقسیم می‌شود و رسترایزیشن برای هر tile به طور جداگانه انجام می‌شود. این کار تعداد مراجعات به حافظه ویدئویی را با ذخیره بافر فریم در حافظه محلی سریع (tile memory) به حداقل می‌رساند. TBR مصرف انرژی را کاهش می‌دهد که برای دستگاه‌های موبایل حیاتی است.

رسترایزیشن در مقابل Ray Tracing

Rasterization و ray tracing — دو رویکرد اساساً متفاوت برای رندرینگ گرافیک سه‌بعدی هستند. رسترایزیشن در برنامه‌های بلادرنگ غالب است، ray tracing — در رندرینگ آفلاین و به تدریج به بلادرنگ (در GPUهای سازگار با RTX) نفوذ می‌کند.

پارامترRasterizationRay Tracing
اصلمثلث → قطعاتپرتو → برخورد با صحنه
سرعتبسیار سریع (میلیون‌ها مثلث/فریم)کند (هزاران پرتو/فریم)
کیفیتنیاز به تکنیک‌های اضافی (سایه‌ها، بازتاب‌ها)سایه‌ها و بازتاب‌های فیزیکی درست
GPUهای موبایلروش استانداردپشتیبانی محدود (A17 Pro, Snapdragon Gen 3)
مصرف انرژیکمزیاد

MSAA و صاف‌سازی در رسترایزیشن

در رسترایزیشن مشکل aliasing — لبه‌های پله‌ای (jaggies) در مرزهای مثلث‌ها ایجاد می‌شود. این به این دلیل رخ می‌دهد که پیکسل گسسته است و نمی‌تواند به طور جزئی توسط مثلث پوشش داده شود. برای مبارزه با aliasing از چندنمونه‌گیری (MSAA) استفاده می‌شود.

MSAA چگونه کار می‌کند

MSAA (Multisample Anti-Aliasing) رسترایزیشن را با فرکانس نمونه‌برداری افزایش‌یافته (2x، 4x، 8x) انجام می‌دهد. به جای یک نمونه در هر پیکسل، از چندین زیرنمونه استفاده می‌شود که هر کدام از نظر پوشش توسط مثلث بررسی می‌شود. MSAA 4x 4 زیرنمونه در هر پیکسل را پردازش می‌کند که صاف‌سازی قابل توجه لبه‌ها را بدون افزایش کامل وضوح رندرینگ فراهم می‌کند.

FXAA و سایر روش‌های پساپردازش

برخلاف MSAA، روش‌های صاف‌سازی پساپردازش (FXAA، SMAA، TAA) پس از رسترایزیشن کار می‌کنند و تصویر نهایی را تحلیل می‌کنند. FXAA (Fast Approximate Anti-Aliasing) لبه‌های تصویر را شناسایی کرده و برای صاف‌سازی تار می‌کند، بسیار سریع‌تر از MSAA کار می‌کند اما با نتیجه‌ای با کیفیت کمتر.

رسترایزیشن روی GPU و بهینه‌سازی

Rasterization روی GPUهای مدرن توسط بلوک‌های سخت‌افزاری تخصصی — ROP (Render Output Units) انجام می‌شود. تعداد ROP مستقیماً بر نرخ پر شدن (fill rate) — تعداد پیکسل‌هایی که GPU می‌تواند در ثانیه پردازش کند — تأثیر می‌گذارد.

عوامل عملکرد رسترایزیشن

  • Triangle count — تعداد مثلث‌ها در هر فریم. هر مثلث به سربار برای setup و آزمایش لبه نیاز دارد.
  • Fill rate — تعداد پیکسل‌های پردازش شده توسط بلوک‌های ROP در ثانیه. به فرکانس کلاک GPU و تعداد ROP بستگی دارد.
  • Overdraw — رسترایزیشن مجدد یک پیکسل به دلیل همپوشانی مثلث‌ها. با مرتب‌سازی اشیاء بر اساس عمق بهینه‌سازی می‌شود.

بهینه‌سازی رسترایزیشن برای GPUهای موبایل

برای GPUهای موبایل (Tile-Based Rendering) موارد زیر حیاتی هستند: به حداقل رساندن overdraw از طریق رد زودهنگام (early-Z)، استفاده از back-face culling برای حذف مثلث‌های نامرئی و حذف سطوح پنهان (occlusion culling) برای رد مثلث‌هایی که کاملاً توسط اشیاء دیگر پوشانده شده‌اند.

سوالات متداول

رسترایزیشن به زبان ساده چیست؟

رسترایزیشن فرآیند تبدیل مثلث‌ها به پیکسل روی صفحه است. GPU یک مثلث سه‌بعدی را می‌گیرد، تعیین می‌کند کدام پیکسل‌های صفحه را می‌پوشاند و آنها را برای رنگ‌آمیزی به Fragment Shader منتقل می‌کند.

تفاوت رسترایزیشن با ray tracing چیست؟

رسترایزیشن مثلث‌ها را روی صفحه پروجکت می‌کند و پوشش پیکسل‌ها را تعیین می‌کند (بسیار سریع). Ray tracing پرتوهایی از دوربین می‌فرستد و برخورد با هندسه را بررسی می‌کند (از نظر فیزیکی دقیق‌تر اما به طور قابل توجهی کندتر).

چرا در رسترایزیشن به صاف‌سازی (anti-aliasing) نیاز است؟

در رسترایزیشن، پیکسل یا کاملاً به مثلث تعلق دارد یا نه — از این رو لبه‌های پله‌ای (aliasing). MSAA لبه‌ها را با زیرنمونه‌های متعدد در هر پیکسل صاف می‌کند و FXAA فیلتری را به تصویر نهایی اعمال می‌کند.

آیا می‌توان مرحله رسترایزیشن را برنامه‌نویسی کرد؟

خیر، رسترایزیشن یک مرحله ثابت خط لوله گرافیک است. توسعه‌دهنده نمی‌تواند الگوریتم را تغییر دهد، اما می‌تواند تنظیمات را مدیریت کند: culling، polygon offset، حالت رسترایزیشن (نقاط، خطوط، مثلث‌ها) و پارامترهای MSAA.

چرا GPUهای موبایل از Tile-Based Rendering استفاده می‌کنند؟

Tile-Based Rendering (TBR) صفحه را به tileها تقسیم کرده و آنها را در حافظه محلی سریع پردازش می‌کند، نه در VRAM جهانی. این کار مصرف انرژی و پهنای باند را به شدت کاهش می‌دهد که برای دستگاه‌های موبایل با باتری حیاتی است.

خلاصه

  • Rasterization — تبدیل مثلث‌های برداری به قطعات شطرنجی برای نمایش روی صفحه.
  • Half-space — الگوریتم اصلی رسترایزیشن در GPUهای مدرن.
  • Tile-Based Rendering — معماری رسترایزیشن مورد استفاده در GPUهای موبایل (Adreno, Mali).
  • Aliasing — مشکل لبه‌های پله‌ای که با MSAA، FXAA یا TAA حل می‌شود.
  • Fill rate — پارامتر کلیدی عملکرد رسترایزیشن وابسته به تعداد بلوک‌های ROP.
  • Overdraw — رسترایزیشن مجدد پیکسل‌ها که با early-Z و occlusion culling بهینه می‌شود.
  • Ray Tracing — روش جایگزین که رندرینگ فیزیکی درست را به قیمت عملکرد فراهم می‌کند.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید