زنجیره مبادله چیست؟(Direct3d 9)

ساخت وبلاگ

یک زنجیره مبادله مجموعه ای از بافر است که برای نمایش فریم به کاربر استفاده می شود. هر بار که یک برنامه یک قاب جدید برای نمایشگر ارائه می دهد ، اولین بافر در زنجیره مبادله جایگاه بافر نمایش داده شده را می گیرد. این فرآیند مبادله یا تلنگر نامیده می شود.

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

Direct3D برای جلوگیری از پارگی دو گزینه را پیاده سازی می کند:

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

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

سیگنالهای معاملاتی...
ما را در سایت سیگنالهای معاملاتی دنبال می کنید

برچسب : نویسنده : عارف لرستانی بازدید : <-PostHit-> تاريخ : چهارشنبه 8 شهريور 1402 ساعت: 18:52