什麼是Shader

來源:互聯網
上載者:User

部分朋友玩電腦遊戲時會出現”no pixel shader support”等相關提示資訊,那麼什麼是shader呢?為此我特意向一個網路遊戲公司的開發人員諮詢,終於弄明白了shader是什麼。

shader什麼意思

  當初電腦剛誕生時,介面非常簡陋,直到上個世紀 九十年代windows誕生後,才湧現了大量的電腦遊戲,剛開始是二維遊戲(2D game)居多,現在則絕大部分遊戲都是三維(3D)的了。2D圖形,就是無論你如何移動視角,地面上的建築物、花草樹木樣子都不會變,而3D圖形則不 同,隨著視角的變換,你看到的物體也在變化,從正面變成側面,越遠的物體越小,越近的越大,與現實生活中人眼看到的情景非常相似。

  shader就是專門用來渲染3D圖形的一種技 術,通過shader,程式設計人員可以自己編寫顯卡渲染畫面的演算法,使畫面更漂亮、更逼真。幾年前並沒有shader這個東西,所以那時候的顯卡,就不 支援shader,而只支援固定管線渲染,遊戲畫面也沒有現在的酷。

  shader又分兩種,一種是頂點shader(3D圖形都是由一個一個三角形組 成的,頂點shader就是計算頂點位置,並為後期像素渲染做準備的),另一種是像素shader,像素shader顧名思義,就是以像素為單位,計算光 照、顏色的一系列演算法。

  幾 個不同的圖形API有各自的shader語言:
  在DirectX中,頂點shader叫做vertex shader,像素shader叫做pixel shader;
  在OpenGL中,頂點shader也叫做vertex shader,但像素shader叫做fragment shader。
  此外顯卡晶片廠商nVidia還推出CG顯卡程式設計語言,也支援 shader。

  shader 有很多不同的版本:
  所以,即使你的顯卡支援shader,但可能版本不夠高,所以無法支援比較新的遊戲使用的 shader。

  一般來說,大部分遊 戲都支援不同版本的shader,為的是讓儘可能多的機器都能運行,為此需要做很多額外的工作。

  除了顯卡不夠新之外,不同顯卡廠商對shader的支援也不盡相同,所以同一個遊戲,一樣的 設定,在n卡和ATI的卡上,表現可能大不一樣。

  另外,安裝官方最新的驅動程式也是必要的。如果你安裝了錯誤的驅動程式,甚至是隨便從網上下載一個顯卡驅動,那麼即使你的顯卡支援 shader,也可能跑不了需要shader支援的程式,包括但不限於網路遊戲!

三個level:

顯卡廠商(ATI, NVIDIA)提供硬體

圖形API廠商 (MS DirectX, OpenGL)提供訪問硬體的友好API

Dev使用API來進行圖形編程

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.