亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        DirectX11技術(shù)發(fā)展探討

        2009-12-31 00:00:00
        現(xiàn)代商貿(mào)工業(yè) 2009年21期

        摘 要:DirectX是一種應(yīng)用程序接口(API),它可讓以windows為平臺(tái)的游戲或多媒體程序獲得更高的執(zhí)行效率,加強(qiáng)3d圖形和聲音效果,并提供設(shè)計(jì)人員一個(gè)共同的硬件驅(qū)動(dòng)標(biāo)準(zhǔn)。

        關(guān)鍵詞:DirectX;渲染;畫面

        中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):16723198(2009)21026702

        1 Direct3D11渲染管線

        DirectX 11和DirectX 10兩者最大的不同之處在于管線,可以說DirectX 11的渲染管線標(biāo)志著繪圖硬件以及軟件功能革命性一步。DirectX 11加入了對(duì)Tessellation(鑲嵌)的支持。Tessellation 由外殼著色器(Hull Shader)、鑲嵌單元(tessellator)以及域著色器(Domain Shader)組成。同時(shí)還加入了計(jì)算著色器(Compute Shader),計(jì)算著色器與DX10中引入的GS不同,它并不是渲染管線的一部分,CS也是DirectX 11的重要改進(jìn)之一,可以很大程度上協(xié)助開發(fā)人員彌補(bǔ)現(xiàn)實(shí)與虛幻之間的差別。

        2 Tessellation鑲嵌技術(shù)

        自R600發(fā)布時(shí),DirectX 11這個(gè)字眼才開始越來越多的出現(xiàn)在網(wǎng)絡(luò)上。盡管R6xx和R7xx硬件都具有tessellator單元,但是由于tessellator屬于專有實(shí)現(xiàn)方案(proprietary implementation),所以R6xx和R7xx硬件是不能直接兼容DirectX 11,更何況DirectX 11采用了極其精密老練的設(shè)置過程。事實(shí)上,DX11 tessellator單元本身不具備可編程性,DX11向tessellator (TS)輸入或者從中輸出的過程是通過兩個(gè)傳統(tǒng)的管線階段完成的:Hull Shader (HS,外殼著色器)和Domain Shader (DS,域著色器)。

        tessellator可以把一些較大的圖元(primitive)分成很多更小的圖元,并將這些小圖元組合到一起,形成一種有序的幾何圖形,這種幾何圖形更復(fù)雜,當(dāng)然也更接近現(xiàn)實(shí)。這個(gè)過程也被稱作細(xì)分曲面(Subdivision Surfaces)。

        Hull Shader負(fù)責(zé)接收一種由全四邊形網(wǎng)格(quad mash)計(jì)算得到的圖元數(shù)據(jù)(稱作patches),并計(jì)算控制點(diǎn)(control points)的各種變換以及輸入的圖元各個(gè)邊的鑲嵌配置(tessellation factors),從而進(jìn)行鑲嵌。其中Control points用來定義想要得到的圖形(比如說一個(gè)曲面或者其他)的圖形參數(shù)。如果你經(jīng)常用Photoshop繪圖軟件的話,不妨把Control points理解為PS的鋼筆工具:用平面代替線的貝塞爾曲線功能。Hull Shader采用control points來決定如何安排tessellator處理數(shù)據(jù),利用Tessellator生成大批量的新的圖元,然后將這些圖元以及控制點(diǎn)傳送給Domain Shader,Domain Shader將這些數(shù)據(jù)計(jì)算轉(zhuǎn)換成3D處理中的頂點(diǎn),最后GPU生成曲線以及多邊形。

        3 多線程的支持

        由于DX11所新增的特性甚至可以應(yīng)用到DX10硬件中,所以我們對(duì)于DX11的快速應(yīng)用都非常期待和樂觀。DX11特性還包括很重要一點(diǎn):支持多線程(multithreading)。沒錯(cuò),無論是DX10還是DX11,所有的色彩信息最終都將被光柵化并顯示在電腦顯示屏上(無論是通過線性的方式還是同步的),但是DX11新增了對(duì)多線程技術(shù)的支持,得益于此,應(yīng)用程序可以同步創(chuàng)造有用資源或者管理狀態(tài),并從所有專用線程中發(fā)送提取命令,這樣做無疑效率更高。DX11的這種多線程技術(shù)可能并不能加速繪圖的子系統(tǒng)(特別是當(dāng)我們的GPU資源受限時(shí)),但是這樣卻可以提升線程啟動(dòng)游戲的效率,并且可以利用臺(tái)式CPU核心數(shù)量不斷提高所帶來的潛力。

        對(duì)于場(chǎng)景中的人像和三個(gè)鏡像,DX11會(huì)啟動(dòng)四個(gè)單獨(dú)線程進(jìn)行并行處理,效率自然要比現(xiàn)在依次進(jìn)行的做法高很多。

        此外,DX10硬件也能夠在運(yùn)行DX11游戲時(shí)支持多線程,微軟的這一計(jì)劃相當(dāng)令人興奮,不過值得一提的是,AMD以及NVIDIA必須為各自的DX10硬件開發(fā)出相應(yīng)的驅(qū)動(dòng)軟件才能達(dá)到這一效果(因?yàn)槿绻麤]有相應(yīng)的驅(qū)動(dòng)支持的話,DX10硬件即便可以運(yùn)行DX11游戲,對(duì)于玩家而言并不會(huì)看到真正應(yīng)有的效果)。當(dāng)然了,我們希望NVIDIA,特別是AMD(因?yàn)樗瑫r(shí)也是一家可以生產(chǎn)多核心CPU的廠商)能夠?qū)Υ烁信d趣。而且,如果A/N這么做到話,無疑會(huì)為游戲開發(fā)商們開發(fā)DX11游戲提供誘因,即便是A/N的DX11硬件還在襁褓之中。

        4 計(jì)算著色器Compute Shader

        很多游戲開發(fā)者都對(duì)DX11新增的Compute Shader(通常簡(jiǎn)稱為CS)特性嘖嘖稱贊。CS的這一渲染管線能夠進(jìn)行更多的通用目的運(yùn)算。我們既能在某種可以用來被執(zhí)行數(shù)據(jù)的操作中看到這種特性,又能在某種可以用來操作的數(shù)據(jù)中看到這種特性。

        在DirectX11以及CS的幫助下,游戲開發(fā)者便可以使用更為復(fù)雜的數(shù)據(jù)結(jié)構(gòu),并在這些數(shù)據(jù)結(jié)構(gòu)中運(yùn)行更多的通用算法。與其他完整的可編程的DX10和DX11管線階段一樣,CS將會(huì)共享一套物質(zhì)資源(也就是著色處理器)。

        相應(yīng)的硬件需要在運(yùn)行CS代碼時(shí)更靈活些,這些CS代碼必須支持隨機(jī)讀寫、不規(guī)則列陣(而不是簡(jiǎn)單的流體或者固定大小的2D列陣)、多重輸出、可根據(jù)程序員的需要直接調(diào)用個(gè)別或多線程的應(yīng)用、32k大小的共享寄存空間和線程組管理系統(tǒng)、原子數(shù)據(jù)指令集、同步建構(gòu)以及可執(zhí)行無序IO運(yùn)算的能力。

        與此同時(shí),CS也將會(huì)隨之失去一些特性。因?yàn)閱蝹€(gè)線程已經(jīng)不再被看成是一個(gè)像素,所以線程將會(huì)喪失幾何集合功能。這就意味著,盡管CS程序依然可以利用紋理取樣功能,但是自動(dòng)三線LOD過濾計(jì)算將會(huì)喪失自動(dòng)功能(LOD必須被指定)。此外,一些并不重要的普通數(shù)據(jù)的深度剔除(depth culling)、反鋸齒(antialiasing)、alpha混合(alpha blending)以及其他運(yùn)算不能在一個(gè)CS程序中被執(zhí)行。

        除了某些特殊應(yīng)用的渲染,游戲開發(fā)者可能同時(shí)也希望做一些諸如IK(inverse kinematics,反向運(yùn)動(dòng)學(xué))、物理、人工智能以及其他在GPU上執(zhí)行的傳統(tǒng)的CPU任務(wù)之類的運(yùn)算。用CS算法在GPU上執(zhí)行這些數(shù)據(jù)意味著這些數(shù)據(jù)將會(huì)更快的被渲染,而且一些算法可能在GPU上的執(zhí)行速度更快。如果某些總是產(chǎn)生同樣結(jié)果的算法既可以出現(xiàn)在CPU上又可以出現(xiàn)在GPU上的話,諸如AI以及物理等運(yùn)算甚至可以同時(shí)在CPU和GPU上運(yùn)行(這種運(yùn)算實(shí)際上也可以代替帶寬)。

        即便是這些運(yùn)算代碼在相同的硬件(CPU或者GPU)上運(yùn)行,PS以及CS代碼的執(zhí)行也是兩個(gè)截然不同的過程,這主要取決于被執(zhí)行的算法。有趣的是,暴露數(shù)據(jù)以及柱狀數(shù)據(jù)經(jīng)常被用作HDR渲染。用PS代碼計(jì)算這些數(shù)據(jù)的話就需要幾條通道和幾種技巧,以便提取所有像素,從而集中或者平分這些數(shù)據(jù)。盡管共享數(shù)據(jù)將會(huì)或多或少的減緩處理速度,但是共享數(shù)據(jù)的方式要比在多通道中計(jì)算速度更快,而且這樣可以使CS成為這些算法的理想處理階段。

        5 Shader Model 5.0

        DirectX 10的Shader Model 4.0(Shader Model以下簡(jiǎn)稱“SM”)帶來了整數(shù)運(yùn)算和位運(yùn)算的功能,DirectX 10.1的SM 4.1加入了對(duì)MSAA的直接采樣和控制。而DirectX 11包含的SM 5.0,采用面向?qū)ο蟮母拍?,并且完全可以支持雙精度數(shù)據(jù)。隨著SM 5.0的發(fā)布,微軟也會(huì)將HLSL語(yǔ)言更新至最新版本,其中包含了諸如動(dòng)態(tài)著色、動(dòng)態(tài)分支和更多的對(duì)象等。總之,面向?qū)I(yè)開發(fā)人員的SM 5.0,依舊是以降低編程的難度和復(fù)雜為目的。

        為了解決Shader靈活性與彈性不足的問題,微軟在HLSL5.0中帶來解決之道。HLSL5.0提出shader子程序的概念,即允許程序員將各種小段、簡(jiǎn)單或?yàn)閭€(gè)別需要而特制的shader程序鏈接起來,再根據(jù)實(shí)際需要?jiǎng)討B(tài)調(diào)用,這樣既能夠提高硬件兼容性,同時(shí)減少“巨型shader”對(duì)寄存器空間的占用,有效提升性能。

        6 改進(jìn)的紋理壓縮

        精細(xì)的紋理對(duì)視覺效果的增益是顯而易見的。目前的3D游戲越來越傾向于使用更大、更為精細(xì)的紋理,但是過大的紋理嚴(yán)重占用顯存和帶寬。由于目前紋理壓縮仍然不支持HDR圖像,因此DirectX 11提出了更為出色的紋理壓縮算法——BC6和BC7。BC6是為HDR圖像設(shè)計(jì)的壓縮算法,壓縮比為6∶1;而BC7是為低動(dòng)態(tài)范圍紋理設(shè)計(jì)的壓縮模式,壓縮比為3∶1。兩種壓縮算法在高壓縮比下畫質(zhì)損失更少,效果更出色。

        紋理質(zhì)量對(duì)畫面效果起著至關(guān)重要的作用。比如我們運(yùn)行3D游戲時(shí),畫面內(nèi)同樣一個(gè)物體,觀察距離較遠(yuǎn)時(shí),紋理銳利而清晰,但當(dāng)你拉近視角,近距離細(xì)看時(shí),紋理就非常粗糙了。更不用說在某些游戲中還有類似放大鏡、望遠(yuǎn)鏡等道具,啟用這些道具后,只能看到更為粗糙和不真實(shí)的紋理。出現(xiàn)這種問題,一方面是紋理壓縮率損失嚴(yán)重,細(xì)膩的紋理壓縮存放后,損失大量細(xì)節(jié);另一方面是大紋理難以保證保證游戲運(yùn)行速度和軟件體積,如果在游戲中大面積采用分辨率高達(dá)4000dpi的紋理貼圖,那么顯卡的運(yùn)算資源和顯存容量很快就會(huì)告罄。因此,DirectX 11最快速和最直觀的改變就是再次改進(jìn)了紋理的壓縮算法,將紋理體積和紋理質(zhì)量控制在一個(gè)相當(dāng)優(yōu)秀的范圍之內(nèi)。

        參考文獻(xiàn)

        [1]胡曉峰等.多媒體技術(shù)教程[M].北京:人民郵電出版社,2007.

        [2]李澤年(ZeNian li)等,史元春譯.多媒體技術(shù)教程[M].北京:機(jī)械工業(yè)出版社,2007.

        [3][美]登普斯基.Directx實(shí)時(shí)渲染技術(shù)詳解[M].重慶:重慶大學(xué)出版社,2006.

        [4][美]謝里德.Directx游戲開發(fā)終極指南[M].北京:清華大學(xué)出版社,2008.

        国产精品videossex国产高清| 日韩在线精品视频观看| 亚洲永久精品日韩成人av| 白嫩丰满少妇av一区二区| 日日碰狠狠添天天爽无码| 国产91网址| 在线视频一区二区三区中文字幕| 成人av综合资源在线| 蜜臀性色av免费| 品色堂永远的免费论坛| 亚洲AV手机专区久久精品| 久久精品国产亚洲av久五月天| 在线播放五十路熟妇| 欧美疯狂性xxxxxbbbbb| 亚洲欧美日韩国产综合专区| 成人影院羞羞的视频免费观看 | 国产精品国产自线拍免费| 精品一区二区三区a桃蜜| 成人免费无码大片a毛片抽搐色欲 日本动漫瀑乳h动漫啪啪免费 | 亚洲av偷拍一区二区三区| 在线观看麻豆精品视频| 亚洲av无码专区在线播放| 99国产超薄丝袜足j在线观看| 少妇被日到高潮的视频| 激情亚洲一区国产精品久久| 疯狂撞击丝袜人妻| 精品亚洲国产探花在线播放| 国产剧情亚洲一区二区三区| 国产 精品 自在 线免费| 波多野结衣一区二区三区高清| 色婷婷狠狠97成为人免费| 一级老熟女免费黄色片| 色一情一乱一伦| 亚洲中文无码久久精品1| 久久蜜臀av一区三区| 人妻熟妇乱又伦精品视频| 亚洲精品欧美二区三区中文字幕| 亚洲国产成人无码电影| 国产一区二区av免费观看| 国产好大好硬好爽免费不卡| 久久久久欧洲AV成人无码国产|