導航:首頁 > 編程語言 > unity3dshader編程

unity3dshader編程

發布時間:2022-09-24 15:51:14

『壹』 如何系統的學習 Unity 3D 中的 shader 編寫

(一)國內引進出版的書籍
國內引進或出版的圖形學書籍很多,但是大部分是糟粕,看它們是浪費時間

3D數學基礎:圖形與游戲開發
這本可以補數學基礎,矩陣變換,線性代數啥的

圖形著色器:理論與實踐(第2版)
這本是比較新的講 opengl shader 的

DirectX 9.0 3D游戲開發編程基礎
這本是國內出版或引進的 d3d 書籍中唯一能看的

(二)國內沒有引進的書籍,可以下載電子版或上淘寶買列印版
OpenGL Shading Language
可以認為是 glsl 的聖經

Introction to 3D Game Programming: With Directx 11
可以認為是 d3d11 的聖經,這本是 DirectX 9.0 3D游戲開發編程基礎 的升級版

(三)個人推薦
3D數學基礎:圖形與游戲開發
DirectX 9.0 3D游戲開發編程基礎
Introction to 3D Game Programming: With Directx 11

『貳』 如何系統的學習 Unity 3D 中的 shader 編寫

僅針對你只想學些shader編程來講:

1、先要明白shader在整個3D流水線中的地位或者是作用,建立流水線概念的過程,是理解整個當代3D的基礎。

2、把Unity當做shader編輯器,這一方面講,unity的確也是不錯的,:)。由簡到難的分析和實驗各個shader,調試各種參數,用unity的所見即所得界面,了解shader內部代碼的意義。

3、就每個遇到的問題,在互聯網上查找該問題的可能的答案。如Diffuse light的演算法公式究竟是什麼,shadow map的矩陣幹嘛用的。在這塊上,請盡量查找英文資料,會痛快些。

就這么三點,第一點是面,能幫助自己確定方向。第三點是點,知道自己的短線位置在哪裡。書籍不舉例,只知道我第一本看的書是《3D游戲編程大師技巧》。後來在各種查找過程中,各種不同的書籍自然會進入自己的腰包,沒有一本是需要全部讀完的。但是讀完所有的每本的某一個部分,應該每本書都算是讀完了,你明白的。

『叄』 如何系統的學習 Unity 3D 中的 shader 編寫

這會是個比較漫長的學習過程

(一)國內引進出版的書籍
國內引進或出版的圖形學書籍很多,但是大部分是糟粕,看它們是浪費時間

3D數學基礎:圖形與游戲開發
這本可以補數學基礎,矩陣變換,線性代數啥的

圖形著色器:理論與實踐(第2版)
這本是比較新的講 opengl shader 的

DirectX 9.0 3D游戲開發編程基礎
這本是國內出版或引進的 d3d 書籍中唯一能看的

(二)國內沒有引進的書籍,可以下載電子版或上淘寶買列印版
OpenGL Shading Language
可以認為是 glsl 的聖經

Introction to 3D Game Programming: With Directx 11
可以認為是 d3d11 的聖經,這本是 DirectX 9.0 3D游戲開發編程基礎 的升級版

(三)個人推薦
3D數學基礎:圖形與游戲開發
DirectX 9.0 3D游戲開發編程基礎
Introction to 3D Game Programming: With Directx 11

『肆』 如何系統的學習 Unity 3D 中的 shader 編寫

Unity中的Shader通常來說叫做UnityShader,相對來說他有自己的相對語法UnityShaderLab。

如果你想學好Shader編程的話,有幾個步驟你是少不了的:

  1. 你需要學習GPU編程、CG、渲染管線和相對應的知識。

  2. CG相關知識

  3. 渲染管線

  4. 數學及物理知識,尤其線性代數比較重要,當然矩陣這套東西也不能丟掉。

  5. 如果你是初學的話,有本書可以推薦給你 Unity Shader入門精要,這個比較簡單,適合入門。

『伍』 如何系統的學習 Unity 3D 中的 shader 編寫

這會是個比較漫長的學習過程

(一)國內引進出版的書籍
國內引進或出版的圖形學書籍很多,但是大部分是糟粕,看它們是浪費時間

3D數學基礎:圖形與游戲開發
這本可以補數學基礎,矩陣變換,線性代數啥的

圖形著色器:理論與實踐(第2版)
這本是比較新的講 opengl shader 的

DirectX 9.0 3D游戲開發編程基礎
這本是國內出版或引進的 d3d 書籍中唯一能看的

(二)國內沒有引進的書籍,可以下載電子版或上淘寶買列印版
OpenGL Shading Language
可以認為是 glsl 的聖經

Introction to 3D Game Programming: With Directx 11
可以認為是 d3d11 的聖經,這本是 DirectX 9.0 3D游戲開發編程基礎 的升級版

(三)個人推薦
3D數學基礎:圖形與游戲開發
DirectX 9.0 3D游戲開發編程基礎
Introction to 3D Game Programming: With Directx 11轉載

『陸』 如何系統的學習 Unity 3D 中的 shader 編寫

相信一定也有很多做unity3d開發的朋友對shader這一塊有疑問。unity3d算是比較新的引擎,最近手游又比較火,很多unity3d程序猿應該是從其他專業轉過來的,比如本人以前就是搞java web開發的,所以對這一塊的知識體系不太了解。
我看了nvidia官網上的 The Cg Tutorial: Chapter 1. Introction ,算是稍微入了點門,
然後看了 Cg Programming/Unity 中的一些例子(有很多看不懂的),結合unity3d官方文檔,能寫一些簡單的shader,但復雜的東西就不太懂了(比如上次看到一個鏡面反射的例子,裡面有些矩陣運算,不太明白那演算法怎麼來的,當然自己線性代數不好也是硬傷)。
感覺cg編程涉及的東西很多,數學、物理、編程、3D模型什麼的都要懂一些,要學的東西很多很雜,有些迷茫。
不想再東拼西湊找例子,這里拷一段那裡拷一段的寫shader,而是按照自己的想法寫。
請問有什麼好書籍可以幫助我系統地學習這一塊的知識( 包括計算機圖形學、數學等各個方面的書籍)?
,這會是個比較漫長的學習過程
(一)國內引進出版的書籍
國內引進或出版的圖形學書籍很多,但是大部分是糟粕,看它們是浪費時間

3D數學基礎:圖形與游戲開發
這本可以補數學基礎,矩陣變換,線性代數啥的
圖形著色器:理論與實踐(第2版)
這本是比較新的講 opengl shader 的
DirectX 9.0 3D游戲開發編程基礎
這本是國內出版或引進的 d3d 書籍中唯一能看的
(二)國內沒有引進的書籍,可以下載電子版或上淘寶買列印版
OpenGL Shading Language
可以認為是 glsl 的聖經
Introction to 3D Game Programming: With Directx 11
可以認為是 d3d11 的聖經,這本是 DirectX 9.0 3D游戲開發編程基礎 的升級版
(三)個人推薦
3D數學基礎:圖形與游戲開發
DirectX 9.0 3D游戲開發編程基礎
Introction to 3D Game Programming: With Directx 11
Vinjn張靜 2013-08-14
還得看NVidia良心免費彩色pdf 《GPU GEMS IIIIII》。這三本書十分精彩,我在當初還沒免費的時候就買過了,一本一百多。
vczh 2014-12-06
自己回答一下,再補充兩本書:
1.《Unity Shaders and Effects Cookbook》
主要講Unity的Surface Shader 編程技巧,非常實用。除了光照以外還有Image effects在Unity中的實現。強力推薦。
2. 《Real-Time Rendering》
比較底層的內容,夯實基礎(自己還沒看完)
發現了新的好書再繼續更新!
kUANG tOBY 2014-12-06
最近也在學習shader,推薦幾篇博客供題主入門。
1、首先來兩篇最最基礎文章對shader有大體的認識。這兩篇文章會分析shader中的一行行代碼,講解語法和作用並加以擴展。讀完後就基本了解了shader中的屬性、Tags、LOD、光照模型等是怎麼回事。
貓都能學會的Unity3D Shader入門指南(一)
貓都能學會的Unity3D Shader入門指南(二)
2、然後可以看《Unity Shader and Effect Cookbook》,或者它的中文版《Unity著色器和屏幕特效開發秘笈》。這本書會展示shader中的各個方面,如漫反射著色、紋理貼圖、鏡面反射等等。
可能由於這本書方方面面都有涉及,有時會忽略一些比較關鍵的細節,而這恰恰使初學者困惑。有一位博主記錄下了根據這本書學習的筆記,題主可以直接看博客來學習:
【Unity Shaders】概述及Diffuse Shading介紹
3、在第2步的過程中,你可能需要查閱shader中各個概念函數的更詳細的情況,這時你會需要Unity官方手冊以及Cg教程:
Unity - Manual: Shaders
Unity - Manual: Shader Reference
The Cg Tutorial
4、學習shader的時候,你不僅想知道怎麼用,可能還想了解它背後的機制,那這篇文章你肯定不能錯過:
【Unity Shaders】初探Surface Shader背後的機制
5、這些都熟練了,對shader也都比較熟悉了。你可以嘗試去創造屬於自己的shader,也可以去Shadertoy BETA尋求靈感,感受shader的鬼斧神工。
匿名 2015-05-23
推薦一本書,Unity Shader and Effect Cookbook,但一般的Shader都可以用Shader Forge搞定。Shader Forge是一個可視化的,nose-based的shader編輯器。簡單來說,就是你在圖形化界面把各種effect按一定邏輯連接好,它可以自動生成shader的代碼。
Jingwen Zhao 2014-11-13
僅針對你只想學些shader編程來講:
1、先要明白shader在整個3D流水線中的地位或者是作用,建立流水線概念的過程,是理解整個當代3D的基礎。
2、把Unity當做shader編輯器,這一方面講,unity的確也是不錯的,:)。由簡到難的分析和實驗各個shader,調試各種參數,用unity的所見即所得界面,了解shader內部代碼的意義。
3、就每個遇到的問題,在互聯網上查找該問題的可能的答案。如Diffuse light的演算法公式究竟是什麼,shadow map的矩陣幹嘛用的。在這塊上,請盡量查找英文資料,會痛快些。
就這么三點,第一點是面,能幫助自己確定方向。第三點是點,知道自己的短線位置在哪裡。書籍不舉例,只知道我第一本看的書是《3D游戲編程大師技巧》。後來在各種查找過程中,各種不同的書籍自然會進入自己的腰包,沒有一本是需要全部讀完的。但是讀完所有的每本的某一個部分,應該每本書都算是讀完了,你明白的。
匿名 2013-08-17
unity的shader淺淺的包裝了一下cg。類似fx。總之就是一個DSL,對cg和渲染流程做了一些描述。所以基本上,你還是需要了解shader語言及基本的渲染流程。 @張靜vinjn和 @kUANG tOBY提到的書對頭。
速學的話,我補充一本:《GPU Programming And Cg Language Primer 1rd Edition》。國內的人寫的小冊子,很不錯。
知道 2014-06-12
這個網站可以參考 Shadertoy BETA
不過是同樣的問題,因為很多代碼都是式子,是經過計算之後得出的,計算過程在代碼里沒有體現,所以根本不知道那些奇怪的數字和算式都是怎麼來的。
殷實 2014-07-23
數學推薦這部——《Mathematics for 3D Game Programming and Computer Graphics 3rd》另外就是看看這個推薦游戲程序員養成計劃 (更新2013.3.19)
老鍾古 2014-02-20
我比較推薦《互動式計算機圖形學:基於OpenGL的自頂向下方法(第6版)》
配合《計算機圖形學/基於3D圖形開發技術》食用風味更佳。
學習shader會遇到一些比較基礎的數學問題,google、wiki和度娘基本能夠解決。
匿名 2014-06-12
《Unity Shaders and Effects Cookbook》其實這本書是surface shader的入門,我確實是先看了這本書,還不是特別實用,但也必須要看,它有解釋一些入門的知識比如pipeline,常見語法。。
那本書完全沒有涉及cg語言,vertex和frag shader,個人覺得有一本不錯,比較系統,就是《Cg Programming in unity》。然後「龍書」多少也著看,還有各種高數線性代數書籍跟著研究,有空多拿其他人的shader打開來看,並且在相關技術qq群貼吧等平台,利用好這些平台資源獲取大神的解答。。這是我的路,也是新手爬坑中,以供參考。。互勉!

『柒』 如何系統的學習 Unity 3D 中的 shader 編寫

最近也在學習shader,推薦幾篇博客供題主入門。

1、首先來兩篇最最基礎文章對shader有大體的認識。這兩篇文章會分析shader中的一行行代碼,講解語法和作用並加以擴展。讀完後就基本了解了shader中的屬性、Tags、LOD、光照模型等是怎麼回事。
貓都能學會的Unity3D Shader入門指南(一)
貓都能學會的Unity3D Shader入門指南(二)

2、然後可以看《Unity Shader and Effect Cookbook》,或者它的中文版《Unity著色器和屏幕特效開發秘笈》。這本書會展示shader中的各個方面,如漫反射著色、紋理貼圖、鏡面反射等等。
可能由於這本書方方面面都有涉及,有時會忽略一些比較關鍵的細節,而這恰恰使初學者困惑。有一位博主記錄下了根據這本書學習的筆記,題主可以直接看博客來學習:
【Unity Shaders】概述及Diffuse Shading介紹

3、在第2步的過程中,你可能需要查閱shader中各個概念函數的更詳細的情況,這時你會需要Unity官方手冊以及Cg教程:
Unity - Manual: Shaders
Unity - Manual: Shader Reference
The Cg Tutorial

4、學習shader的時候,你不僅想知道怎麼用,可能還想了解它背後的機制,那這篇文章你肯定不能錯過:
【Unity Shaders】初探Surface Shader背後的機制

5、這些都熟練了,對shader也都比較熟悉了。你可以嘗試去創造屬於自己的shader,也可以去Shadertoy BETA尋求靈感,感受shader的鬼斧神工。

『捌』 如何選擇Unity 3d Shader編寫語言

昨天我說過,在Unity里寫shader,Cg/ HLSL是最佳選擇。後來冒出了幾個很有意思的觀點,所以我特意查閱了一下資料再來回復。
Metal API:有人說,Metal API是iOS的未來。如果你完全不關心Android,PC,Xbox,PS等平台,那麼你的確可以奉之為圭臬。反正,Unity3d 是不支持用Metal寫的,而且他們說近期也沒有要去支持Metal的打算。他們只支持自動編譯成Metal API,但這樣你能控制的就很少。因此,這不是一個Unity開發者入門的選擇。

Vulkan:有人說這才是未來。大概吧。AMD開發過一個叫做Mantle 的語言,只有很少的幾個游戲用過它,然後它還死了,現在有人用它搞出了這個。人們說他們從蘋果公司的Metal借鑒了一些理念,用之以完善Vulkan。很顯然,Vulkan是在2015年GDC公布的,但我沒有在其他任何地方聽說或看到。即使它真是未來,那也是一個遠到不著邊際的未來。Vulkan 聽起來不錯,像是某種方式的夢想成真,但它甚至沒有發行。只有Valve公司用過它。什麼?你在Valve工作?你的上司是要支持這個技術了嗎?太多問題了。此外,約翰·卡馬克暗示Android可能不久會有一個類似Metal API的東西,所以Android設備的GPU甚至不需要接受它。那麼,當你考慮所有事情時,就是有太多的問題圍繞著它,太多的未知。無論如何,它不是Unity當下的選擇。
GLSL:現在你可以在Unity里寫GLSL了。Unity會將這段代碼編譯到任何平台,雖然你可能要在PC(或任何非iOS / Apple設備)上執行「-force-opengl」,以使之正常工作。那會導致在某些顯卡GPU上,Unity Profiler不能正確地執行配置。我很想知道,是否有可能解決這問題。所以,如果你用著Mac,團隊里人人用著Mac,那麼相信你應該使用GLSL- 絕對是明智之選。

Surface Shaders:你可以用Unity shader庫做些很酷的東西,但它不一定會在移動設備上有效果。 Shader庫就像一個簡化的,更易於閱讀的標記語言,但你失去了你手機游戲需要的控制和性能選項。鑒於大多數在中國的工作是做手游,我不推薦這樣做。
Cg/HLSL:有人說,Cg是死的語言。那麼,事實是,Cg和HLSL是同一個語言,只是由兩個不同的公司,NVIDIA 和Microsoft分別維護。現在NIVIDIA已停止支持Cg,沒有必要啊是不,反正Microsoft在維護HLSL。人們仍然使用著Cg的名字,但願沒有人對此困惑了。 Cg/ HLSL當然沒有死,在跟幾個大牛以及論壇老兵聊過Unity,他們都認為HLSL是Unity shader的未來,因為公司為游戲機做了很多,為3A級提升了許多。只要看看Unity5的特性,你會懂我意思了。Cg/HLSL可以被編譯到你需要的任何設備,同時Unity和微軟已經親密得像兄弟一樣,並且將一直親密下去直到地老天荒。

閱讀全文

與unity3dshader編程相關的資料

熱點內容
js項目提成計算器程序員 瀏覽:938
pdf光子 瀏覽:832
自拍軟體文件夾名稱大全 瀏覽:325
程序員留學移民 瀏覽:49
梁中間部位箍筋加密區 瀏覽:117
頻譜分析pdf 瀏覽:750
樂2怎麼升級安卓70 瀏覽:172
java中獲取日期 瀏覽:506
單片機74hc245 瀏覽:272
美國歷史上的總統pdf 瀏覽:751
程序員脫單實驗室靠不靠譜 瀏覽:460
php中間四位手機號 瀏覽:870
永旺app怎麼樣了 瀏覽:518
壓縮空氣流量計算軟體 瀏覽:651
智慧聊天app怎麼激活 瀏覽:925
一加換機備份到哪個文件夾 瀏覽:737
支撐pdf 瀏覽:418
java空文件夾刪除 瀏覽:588
安卓9跟81有什麼區別 瀏覽:914
n1藍寶書pdf 瀏覽:245