زد بافر: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
FreshmanBot (بحث | مشارکت‌ها)
جز ←‏top: اصلاح فاصله مجازی با استفاده از AWB
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با ویرایشگر خودکار فارسی
خط ۱:
{{ویکی‌سازی}}
در گرافیک کامپیوتر، '''زد بافر''' الگوریتمی برای مدیریت عمق تصور در [[گرافیک سه بعدی]] است. این الگوریتم عموماً توسط [[سخت افزار]] پیاده سازیپیاده‌سازی می‌شود و معمولاً فقط هنگام عدم وجود سخت افزار لازم یا هنگام انجام آزمایش‌های در حالت نرم‌افزاری اجرا می شودمی‌شود. این الگوریتم برای پیدا کردن جواب مسئله پدیداری، که عبارت است از اینکه کدامیک از عناصر محیط روی تصویر دیده می شوند،می‌شوند، طراحی شده استشده‌است. این الگوریتم فقط برای اجسام کدر طراحی شده و در صورت وجود اجسام شفاف یا نیمه شفاف در محیط می توانمی‌توان از الگوریتم پینتر که البته کندتر است استفاده کرد.
هنگامی که یک شیئ به وسیله کارت گرافیکی کشیده می شود،می‌شود، عمق هر پیکسل شیئ (مختصات z آن) در یک آرایه (معمولاً دو بعدی) ذخیره می شودمی‌شود. اگر یک پیکسل دیگر بخواهد در همان محل نمایش داده شود، باید به دوربین نزدیکتر باشد تا پیکسل هایپیکسل‌های قبلی را بپوشاند، یا به عبارت دیگر در زد بافر عمق کمتری داشته باشد. به این کار حذف زد می گویند.
زد بافر به جز در کشیدن [[تصاویر سه بعدی]] کاربردهای دیگری نیز به خصوص در تولید جلوه هایجلوه‌های ویژه ای چون عبور اجسام از دیوار هادیوارها (مانند ارواح)، قرار دادن انیمیشن هاانیمیشن‌ها روی یک صفحه خاص از فضا و الگوریتم هایالگوریتم‌های تولید سایه دارد.
 
== الگوریتم ==
''' مقادیر ورودی:''' لیستی از چند ضلعی هاضلعی‌ها برای کشیدن.
 
''' مقدار بازگشتی:''' یک آرایه رنگ، که شدت رنگ در آن نقطه را نشان می دهدمی‌دهد.
 
مقدار تمام عناصر (z-buffer(x,y را برابر حداکثر عمق قرار بده.
خط ۱۳:
 
برای هر چند ضلعی P انجام بده:
برای هر پیکسل (x,y) که هنگام کشیدن P در صفحه خروجی قرار می گیردمی‌گیرد انجام بده
مقدار عمق این پیکسل را برای P محاسبه کن.
اگر این عمق کمتر از عمق ذخیره شده در (zbuffer(x,y بود آنگاه: