最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

嘗試入門Shader

2023-03-09 16:04 作者:王大喵愛編程  | 我要投稿

本文僅為邊學(xué)邊記錄的流水賬。

想優(yōu)先驗(yàn)證一下自己的想法的可行性,能不能在Unity中自行繪制一些數(shù)據(jù)。

大概是要用到Shader,找到《Unity Shader 入門精要》,里面應(yīng)該會(huì)有我想要的東西。

快速刷到3.1章,就可以上手嘗試了。

在Unity中我們需要配合使用材質(zhì)(Material)和Unity Shader才能達(dá)到需要的效果。

一個(gè)最常見的流程是:

(1)創(chuàng)建一個(gè)材質(zhì);

(2)創(chuàng)建一個(gè)Unity Shader,并把它賦給上一步中創(chuàng)建的材質(zhì);

(3)把材質(zhì)賦給要渲染的對象;

(4)在材質(zhì)面板中調(diào)整Unity Shader的屬性,以得到滿意的效果。

跟著1234走一遍。

創(chuàng)建shader的時(shí)候有4個(gè)模版,分別表示:

  • Standard Surface Shader會(huì)產(chǎn)生一個(gè)包含了標(biāo)準(zhǔn)光照模型的表面著色器模板,

  • Unlit Shader則會(huì)產(chǎn)生一個(gè)不包含光照(但包含霧效)的基本的頂點(diǎn)/片元著色器,

  • Image Effect Shader則為我們實(shí)現(xiàn)各種屏幕后處理效果提供了一個(gè)基本模板。

  • Compute Shader會(huì)產(chǎn)生一種特殊的Shader文件,這類Shader旨在利用GPU的并行性來進(jìn)行一些與常規(guī)渲染流水線無關(guān)的計(jì)算。

Unity Shader是Unity為開發(fā)者提供的高層級(jí)的渲染抽象層。ShaderLab是Unity提供的編寫Unity Shader的一種說明性語言。

一個(gè)典型的ShaderLab語義塊如下

在Unity中,我們可以使用上面3種形式來編寫Unity Shader

- 表面著色器寫在SubShader里面,是對頂點(diǎn)/片元著色器的抽象,并處理了光照細(xì)節(jié)。

表面著色器,CGPROGRAM和ENDCG之間的代碼是使用CG/HLSL編寫的,也就是說,我們需要把CG/HLSL語言嵌套在ShaderLab語言中

- 頂點(diǎn)/片元著色器是寫在Pass里面的,更復(fù)雜也更靈活


頂點(diǎn)/片元著色器的代碼也需要定義在CGPROGRAM和ENDCG之間,也是使用CG/HLSL編寫的

可以使用GLSL來寫嗎?

當(dāng)然可以。這意味著你可以發(fā)布的目標(biāo)平臺(tái)就只有Mac OS X、OpenGL ES 2.0或者Linux,而對于PC、Xbox 360這樣的僅支持DirectX的平臺(tái)來說,你就放棄它們了。

你可以怎么寫呢?

和CG/HLSL需要嵌套在CGPROGRAM和ENDCG之間類似,GLSL的代碼需要嵌套在GLSLPROGRAM和ENDGLSL之間。

嘗試入門Shader的評(píng)論 (共 條)

分享到微博請遵守國家法律
安义县| 霍城县| 永寿县| 潼关县| 肥城市| 阿城市| 包头市| 五家渠市| 蒲城县| 关岭| 四会市| 休宁县| 乌拉特中旗| 金溪县| 台东市| 化州市| 阿拉善左旗| 张家港市| 连云港市| 宁化县| 靖远县| 东丽区| 长春市| 沙洋县| 海宁市| 集安市| 高安市| 青神县| 庆安县| 济源市| 陇川县| 通河县| 德安县| 尼玛县| 乌兰察布市| 田阳县| 民和| 营口市| 张家界市| 咸阳市| 昭苏县|