在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 現(xiàn)代顯卡GPU pixel shader小程序合集

            現(xiàn)代顯卡GPU pixel shader小程序合集

            作者: 時(shí)間:2015-06-22 來(lái)源:網(wǎng)絡(luò) 收藏

              前言

            本文引用地址:http://www.biyoush.com/article/276088.htm

              是現(xiàn)代顯卡的編程語(yǔ)言,可以用于對(duì)屏幕輸出圖像里的每個(gè)象素點(diǎn)進(jìn)行精確的色彩調(diào)整。大型三維游戲里面大量采用了和它的伙伴,Vertex Shader,用于控制各種復(fù)雜的場(chǎng)景。

              視頻播放通常被認(rèn)為是2D應(yīng)用,實(shí)際上現(xiàn)在的視頻播放已經(jīng)是部分借助于顯卡的3D渲染管線來(lái)實(shí)現(xiàn)的(VMR7、VMR9等渲染模式),使用可以對(duì)最終輸出的視頻圖像進(jìn)行進(jìn)一步修正和增強(qiáng),達(dá)到更佳的畫面質(zhì)量,也更充分的發(fā)揮顯卡(尤其是高端顯卡)被閑置的能力。

              背景介紹:HiVi燒友已經(jīng)開始廣泛使用ffdshow里面提供的倍線銳化等后期處理濾鏡于播放DVD, 尤其是使用投影儀輸出時(shí)。這些濾鏡能夠大幅提升DVD的欣賞品質(zhì),達(dá)到接近HDTV的效果。但是,同樣的方式卻不能用于HDTV播放上,原因很簡(jiǎn)單,因?yàn)镠DTV的分辨率大大提高,做同樣的后期處理,對(duì)CPU的要求高了很多,再加上視頻解碼處理也需要由CPU來(lái)負(fù)責(zé)完成(硬件解碼的限制),現(xiàn)有的CPU基本無(wú)法勝任這樣的工作,導(dǎo)致無(wú)法流暢播放。而與此同時(shí),顯卡卻屬于基本閑置狀態(tài)。

              軟硬件需求

              硬件:支持PS1.4或更高的顯卡,N卡為FX5200以上,A卡為8500以上(不含9100). 至于CPU等,不太好說(shuō),但絕對(duì)不支持低端系統(tǒng)。視頻特效無(wú)止境,硬件越高級(jí)越好

              軟件:DX9.0, 播放軟件需要支持Pixel Shader編程。已知的有Media Player Classic 6.4.8.4 或KMPlayer。但KMPlayer尚有點(diǎn)問(wèn)題,MPC是目前唯一可用的播放器。

              

            點(diǎn)擊放大此圖片

             

              MPC里面使用Shader的辦法

              1. MPC6.4.8.4播放設(shè)置調(diào)整,修改渲染器設(shè)置。除此以外,你還要把解碼器等濾鏡進(jìn)行相應(yīng)調(diào)整,在此就不再贅述。試驗(yàn)一下播放是否正常

              

            點(diǎn)擊放大此圖片

             

              

             

              2. 啟動(dòng)MPC里面的Shader編輯程序

              

             

              3. 輸入shader程序并保存為你喜歡的名字,注意屏幕下方的提示,必須成功才有用。圖片里的程序僅為示例。

              

            點(diǎn)擊放大此圖片

             

              4. 再次播放影片,并使用你剛才輸入的shader程序,看看有什么效果

              以下列舉為可用的shader程序

              消除1080i的白條,要求ps1.4

              sampler s0 : register(s0);

              float4 p0 : register(c0);

              #define height (p0[1])

              float4 main(float2 tex : TEXCOORD0) : COLOR

              {

              float h = 1080.0f/1088.0f;

              float4 pixel = tex2D(s0,tex);

              float4 fill = float4(0,0,0,0);

              if(height == 1088 && tex.y >=h )

              pixel = fill;

              return pixel;

              }

              xsharpen濾鏡(完整版),適用于支持ps3.0的顯卡,如NVIDIA 6xxx系列卡. 對(duì)于ATI X系列卡等也許也可以用

              可以自行修改strength/threshold的值

              sampler2D s0 : register(s0);

              float4 p0 : register(c0);

              #define width (p0[0])

              #define height (p0[1])

              float luma(float4 color)

              {

              float4 lum = {0.21484375, 0.7109375, 0.07421875, 0};

              return dot(color, lum);

              }

              float4 main(float2 tex : TEXCOORD0) : COLOR0

              {

              float strength = 1.0f; //min 0.0f, max 1.0f

              float threshold = 1.0f; //min 0.0f, max 1.0f

              float4 pmin, pmax,porg;

              float lmin = 1.0f, lmax = 0.0f,lorg;

              for(int i=-1; i<=1; i++)

              {

              for(int j=-1; j<=1; j++)

              {

              float4 pcur = tex2D(s0, tex.xy + float2(i/width, j/height));

              float lcur = luma(pcur);

              if (lcur < lmin) { lmin = lcur; pmin = pcur; }

              if (lcur > lmax) { lmax = lcur; pmax = pcur; }

              if(i==0 && j==0) { porg = pcur;lorg=lcur;}

              }

              }

              if(lorg-lmin > lmax-lorg)

              {

              if(lmax-lorg < threshold)

              return pmax*strength+porg*(1-strength);

              else

              return porg;

              }

              else

              {

              if(lorg-lmin < threshold)

              return pmin*strength+porg*(1-strength);

              else

              return porg;

              }

              }

            全息投影相關(guān)文章:全息投影原理


            關(guān)鍵詞: GPU Pixel Shader

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉