ورود

View Full Version : سوال: shader parameter packing



kochol
یک شنبه 28 آبان 1391, 17:22 عصر
سلام
من از d3d9 استفاده می کنم و از effect فایل ها استفاده نمی کنم می خواستم ببینم که پک کردن پارامتر های شیدر چی هست؟

اگه کاری بکنیم که فقط با یک بار صدا زدن SetVertexShaderConstants تمام پارامتر های اون شیدر ست کنیم بهش می گن پک کردن پارامتر ها؟

تاثیرش تو سرعت رندر چه قدر است؟

سپول
یک شنبه 28 آبان 1391, 21:06 عصر
قطعا بیشتر هست. چون هر بار که پارامتر به شیدر می فرستی در واقع در حال انتقال داده از حافظه اصلی به حافظه کارت گرافیک هستی که هر چی این کمتر باشه بهتره. استفاده از همین متد یکی از مزیت های استفاده از سیستم شیدر خودت رو به جای fx نشون می ده.
برای سرعتش هم که چقدر هست دیگه باید تست کنی. بستگی داره به فرکانس اجراش. هر چی بیشتر متغیر شیدر داشته باشی و ست کنی از این متد سرعت بیشتری می گیری.
در سخت افزار directx10 (و opengl3) این عمل به صورت native هم پیاده سازی شده. یعنی یک سری بافر داری که برای ست کردن دسته ای از متغیرها به کار می ره. فرقشش هم اینه که این بافر ها در gpu قرار دارند و سرعت update اشون خیلی بیشتر هست. مانند بافر های دیگه مثل vertex-buffer..