تمام سوالات سوالات بدون پاسخ سوال بپرسید

می دانم که یکی از مزیت های اصلی WPF استفاده از کارت گرافیک برای render کردن گرافیک و انیمیشن هاست. ولی در جایی خواندم که اگر سیستم کارت گرافیک خوبی نداشته باشد، WPF بعضی از گرافیک ها را با cpu اجرا می کند. چطور بدانم که انیمیشن و گرافیک روی سیستم با کارت گرافیک اجرا شده یا با CPU؟ البته راجع به RenderCapability مطالبی می دانم ولی توضیحات بیشتری در این مورد می خواهم. از دوستان ممنون می شوم اگر کسی بداند که چه کارهای گرافیکی بصورت نرم افزاری ممکن است اجرا شود تا در برنامه ها معمولاً کمتر استفاده کنم.

2 پاسخ

سلام از این نظر که اگر سیستم کارت گرافیک خوبی نداشته باشد، WPF بعضی از گرافیک ها را با cpu اجرا می کند من چیزی نشندیم و نمیتونم تایید کنم اما بر اساس تجربه ای که در نوشتن برنامه های متعدد با WPF بدست آوردم دادن افکت هایی مثل سایه و بلور همچنین انیمیشن هایی که ایجاد می کنید شدیدا به کارت گرافیکی شما وابسته هستند ، اجرای برنامه هایی با گرافیک سنگین و افکت های متنوع بر روی کارت گرافیک هایی که WHQL نباشند و همچنین درایور مناسب برای آنها نصب نداشه باشد با کندی اجرا میشود


برای افکت ها میتونم بگم که افکت هایی که در فضای نام BitmapEffect هستند، بصورت نرم افزاری اجرا می‌شوند. اما تنها افکتهایی که بصورت سخت افزاری اجرا میشن در فضای نام Effect هستند. (افکتهای موجود در BBitmapEffect قدیمی تر از Effect هستند)
بقیه قابلیت ها در WPF‌ مثل Gradient بستگی به این داره که کارت گرافیک شما چه نسخه ای از DirectX رو پشتیبانی میکنه. مثلا Gradient‌نوع دایره ای (RadialGradient) در نسخه ۹ از DirectX بصورت سخت افزاری پشتیبانی میشه.
اگر بخواهی اصولی برنامه نویسی کنی، باید بگم که مایکروسافت سه سطح برای تخمین امکانات سخت افزار گرافیکی در نظر گرفته که به آنها Tier میگه. Tier 0‌ برای کارت گرافیک هایی است که قابلیت اجرای DirectX 7 و یا 8 رو دارن. Tier 1‌ برای DirectX 9 یا بالاتر و Tier 2 که باز هم برای سخت افزارهای DirectX 9 یا بالاتر هستند؛ اما تقریبا همه امکانات گرافیکی از قدرت کارت گرافیک استفاده میکنن.
برنامه شما باید سطح کارت گرافیک رو بر اساس Tier بدست بیاره و براساس اون افکتهای متفاوتی رو اجرا کنه. (کدهای متفاوت)
برای بدست آوردن Tier‌ سیستم مقصد می تونید از RenderingCapability.Tier استفاده کنید.
بنابراین جواب شما این شد که بسته به قدرت کارت گرافیک برخی افکتها ممکن است بصورت نرم افزاری و برخی بصورت سخت افزاری اجرا شوند. باید قدرت سیستم مقصد رو تخمین بزنید و میزان افکت ها رو تنظیم کنید.
برای اطلاعات بیشتر سری به سایت MSDN بزنید.
یک پست احتمالا بدرد بخور دیگه هم در اینجا ببینید.


موفق باشید

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×137
  • ×40
  • پرسیده شده: 17 آوریل '12, 08:00
  • بازدید: 2,157 بار
  • آخرین بروزرسانی: 17 آوریل '12, 19:24

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها