directx 11 همون نسخه ۱۰٫۱ هست که تغییری نکرده بلکه چند تا ویژگی دیگه هم بهش اضافه شده شما میتونید directx11 را با بعضی از کارتهای گرافیک که با ۱۰٫۱ سازگارند تست کنید ولی خوب احتیاج به یه درایور آپدیت شده و جدید داره. من قبلا راجع به موضوع و قابلیتهای آن نوشتم اینجا معرفی از همون ابزارها و ویژگی ها میکنم تا یک مطلب تکمیلی بنویسم.
یکی از اصلاحاتی که روی نسخه ۱۱ شد ساپورت بهتر از multithreading است. ولی این پشتیبانی فقط تا همینجا یست خود direcx runtime هنوز تک رشته ای single-threaded است. من در مطلب “چرا directx 11 مهم است؟” درباره multithread توضیح دادم پس اینجا کلام دیگه کوتاه میکنم.
یکی دیگه از اجزا مهمش که قبلا هم توضیح کامل را راجع بهش دادم tessellation است اگر روی اسمش کلیک کنید به مطلبی که من راجع بهش کامل نوشتم میرسید. tessellation به معنی شکستن یک مدل یا mesh با تعداد پائینی از چند ضلعیها به یک مدل با تعداد زیادی از چند ضلیها است که باعث میشه مدل مورد نظر ظاهر بسیار هوارتری پیدا کرده و جزئیات بیشتری را نمایش بده. مزیت تمام اینها در اینه که امکان ایجاد یک هندسه پیچیده را برروی کارت گرافیک فراهم میکنه و در عین حال ، داده هائی که باید بر روی گذرگاه منتقل گردیده و یا از حافظه بازیابی شوند نیز بسیار کئچکتر خواهند بود. به این میگن یه ابر مجموعه superset از ویژگیهای واحد tessellator پیاده سازی شده در xbox 360 . این قضیه باعث میشه که بازی سازان که قبلا از تابع مذکور برروی کنسول بازی مایکروسافت استفاده میکردند نتیجه ای مشابه از همانها را روی pc با سخت افزار directx 11 بگیرند.
مورد بعدی compute shader است در مورد compute shader و تکنولوژی cuda توضیح کاملی قبلا دادم در اینجا یه خلاصه ازش میگم البته از معرفی آن و بعد اصلا میخوام روی این قضیه چیزهایی را بگم که تا حالا نگفتم.
برنامه نویسان سالهاست که که از سخت افزار گرافیکی ۳D برای اجرای آنچه که نرم افزارهای کاربردی GP-GPU نامیده میشود استفاده میکنند. اما استفاده از اینترفیسهای direct3D در بهترین حالت زحمت زیادی داره.
compute shader اولین تلاش مایکروسافت بود برای حل این مشکل که حالا برنامه نویسان راحت میتونند ساختار داده را بطور دلخواه در حافظه نوشته و یا فراخوانی کنند. آنها میتونند رجیسترها در بین رشته ها به اشتراک بگذارند و داده ها را با یک کلاس ذخیره سازی groupshared جدید به اشتراک بگذارند تا I/O اضافی را کاهش بدند.
مایکروسافت در حال انجام آزمایشهایی بر روی directx 11 که با استفاده از سخت افزارهای directx 10 است. در مورد آزمایش تبدیل نرم افزارهای کاربردی CUDA را با اختلاف کمی پشت سر گذاشت اما این فاصله عملکردی احتمالا با ارائه سخت افزارهای جدیدتری که برای نسخه ۱۱ بهینه شدند بهتر خواهد شد.
نرم افزارهای کاربردی هدف برای compute shader ها عبارتند از کدگذاری و کدگشائی ویدئویی ، ray tracing الگوریتم های نورپردازی post processing ، radiosity تصویری، جلوه های فیزیکی ، انباشت جلوه های بافر و احتمالا حتی AI و جنبه های فیزیکی در هسته بازیها.
ویندوز ۷ و directx 11 با تعداد زیادی از ویژگیها و اصلاحات کوچکتر میایند که زیاد به چشم نمیاند و من بزرگهاش را همه را توضیح دادم و الان این موارد را هم میگم. میشه قبل از همه به پشتیبانی از آداپتورهای متعدد نامتناجس اشاره کرد. در ویندوز xp شما میتونستید دو آداپتور گرافیکی متفاوت با دو پشته درایور متفاوت در حال اجرا داشته باشید ، به شرط آنکه هر یک از آنها به نمایشگر مخصوص به خودش باشند. و حتی میتونستید دسکتاپ را هم گسترش بدید.
در ویندوز ویستا این ویژگی را مایکروسافت برداشت اما با ویندوز ۷ و درایور جدید wddm برمیگرده.
directx 11 در عین حال دو فرمت جدید فشرده سازی داره که تحت عنوان BC6 و BC7 شناخته میشند. BC6 یک فشرده سازی برای بافتهای HDR فراهم میکنه و BC7 کیفیت بهبود یافته ای را به بهای نسبت فشرده سازی پائین تر برای بافتهای RGB+Alpha ارائه میکنه. BC7 تنها نسبت ۳:۱ را برای بافتهای RGB و نسبت ۴:۱ را برای بافتهای RGBA تاین میکنه.