日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

关于D3D11,你必须了解的几件事情(三):完结篇

發布時間:2024/8/26 综合教程 45 生活家
生活随笔 收集整理的這篇文章主要介紹了 关于D3D11,你必须了解的几件事情(三):完结篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請注明出處為KlayGE游戲引擎,本文地址為http://www.klayge.org/2011/08/26/%e5%85%b3%e4%ba%8ed3d11%ef%bc%8c%e4%bd%a0%e5%bf%85%e9%a1%bb%e4%ba%86%e8%a7%a3%e7%9a%84%e5%87%a0%e4%bb%b6%e4%ba%8b%e6%83%85%ef%bc%88%e4%b8%89%ef%bc%89%ef%bc%9a%e5%ae%8c%e7%bb%93%e7%af%87/

上文介紹了D3D11的兩個重要特性compute shader和multi-threaded,本篇專注于兩個不能在D3D10硬件上使用的、純D3D11的新特性tessellation和BC6H/BC7紋理壓縮。

Tessellation

很 多人會說D3D11增加了tessellation shader這個stage,但真相是增加了hull shader、tessellator和domain shader三個stage。Hull shader的輸入是patch的控制點(三角形、四邊形這樣的圖元,最多有32個控制點),計算出tessellation等級、確定 tessellation的方法等。它的輸出被送給固定單元的tessellation進行細分。Domain shader的輸入是細分后的bary centric坐標、來自hull shader的控制點,它負責計算插值后的頂點坐標。

Tessellation早就存在于一些GPU。 D3D9的API中其實就正式存在一些使用patch的能力。比如NVIDIA的Geforce 2就支持PN-Patch,但在Forceware 29.xx之后(如果我沒記錯的話)就因為效率和使用率問題而禁用了。后來ATI設計的XBox360的GPU里面就有個不可編程的 tessellator,這個架構一直延續到Radeon HD 5000系列為止。和D3D11不同的是,這個tessellator位于VS之前,而不是VS之后。這么做的好處是流水線變簡單了,由VS完成DS的功 能即可。但缺點也很明顯——性能會受到嚴重影響:

tessellation等級必須在另一個pass計算
本來應該在per vertex上做的事情(比如乘上wvp)變成要在細分插值后的頂點上作,顯著地增加了計算量;要么就還要一個pass來做這件事情

所以D3D11用這種設計對性能提升很有幫助的。

NVIDIA Direct3D SDK 11里特別提供了一個名為Tessellation Pattern Viewer的工具,用來查看在不同參數下,三角形和四邊形被tessellate后的拓撲。

Tessellation Pattern

BC6H/BC7

D3D11 增加了BC6H和BC7兩種紋理壓縮格式,分別擅長HDR壓縮和高質量LDR壓縮,都能達到8bpp。BC6H和BC7的原理類似,但比原先的BC1-5 復雜了非常多。所以壓縮的運算量也大了巨多。比如512×512的原始圖片,用D3DX里面提供的BC6H或BC7壓縮,需要10分鐘左右。解決方法是用 DX SDK提供的BC6HBC7EncoderDecoder11這個例子來進行GPU加速壓縮,只要幾秒鐘即可。更新的版本可以從這里下載到。

下圖是用BC6H來壓縮一張HDR圖片的結果。左邊是原圖(給定曝光度),中間是誤差絕對值,右邊是壓縮后的圖。

BC6H壓縮的結果

下圖是一個BC3(也就是DXT5)和BC7的壓縮誤差比較。左邊是原圖,中間是誤差絕對值,右邊是壓縮后的圖。很明顯可以看出,BC7的誤差遠小于BC3,尤其是在邊界的地方。

BC3和BC7的比較

介紹了這些D3D11的“基本”概念后,本系列就此打住。希望能給對D3D11一知半解的人有所幫助。

KlayGE游戲引擎

總結

以上是生活随笔為你收集整理的关于D3D11,你必须了解的几件事情(三):完结篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。