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

歡迎光臨散文網 會員登陸 & 注冊

C4D材質原理揭秘筆記-小白自學記(一)

2018-09-13 16:31 作者:天逸寶地  | 我要投稿

【前言】

模型建立好了以后,通常都要賦予材質,這意味著給這個模型對象(這些模型本質就是一個由面組成的空殼)賦予了表面的屬性,用于計算模擬真實的物理效果。


聽說過“三分模型七分貼圖”的說法嗎?模型制作的再好(當然它是基礎),如果沒有紋理貼圖,那它也缺少表面的細節(jié),更缺少“靈氣”和“神韻”不是嗎?也就是大家所說,沒有質感。







質感是什么?光線照射物體所表現(xiàn)出來的視覺效果。在三維軟件中是通過設定材質、燈光、陰影和環(huán)境等要素,由渲染器調用不同的著色器進行渲染(模擬計算),對視覺形態(tài)的再現(xiàn)的過程。

說到渲染(Render)涉及很多要素,這里為了將來學習紋理繪制打基礎,所以簡單談談材質、重點研究學習貼圖原理和應用。下面我以CG人能理解的方式進行研究,盡量回避數學算法。(太深了,我也不會,嘿嘿)

【研究】

一、明確幾個概念:

1、 渲染 Render:使用軟件從模型生成圖像的過程。說白了就是把三維場景特殊數據格式計算,轉化為位圖圖像或圖像序列的過程。(XYZ到XY,從三維到二維)。

2、渲染器(renderer) :渲染工作是通過渲染器完成的。是實現(xiàn)渲染的特定算法(mental ray ,vray,Arnold)。主要兩類:一個光線跟蹤,一個是光能傳遞。每個獨立渲染器都有適合自己的材質和燈光,當然它也支持它所依賴的三維環(huán)境的標準燈光和材質,但效果沒有它自己的好。

3、著色器(shader)是一組提供計算機圖形資源在執(zhí)行渲染時使用的指令,負責計算目標顏色。分為定點著色器,幾何著色器,像素著色器等,應用于GPU流水線的。在一般情況下,著色器是可以直接在圖形處理單元(GPU)上運行的程序。換句話說,著色器類似一個匯編程序。你可以通過使用匯編編程的CPU,你也可以使用頂點和像素著色器的GPU編程。

糊涂了吧? 說白了Shader(著色器)實際上就是一小段程序,它負責將輸入的Mesh(網格模型)以指定的方式和輸入的貼圖或者顏色等組合作用,然后輸出。繪圖單元可以依據這個輸出來將圖像繪制到屏幕上。輸入的貼圖或者顏色等,加上對應的Shader,以及對Shader的特定的參數設置,將這些內容(Shader及輸入參數)打包存儲在一起,得到的就是一個Material(材質)。所以說Shader并沒有什么特別神奇的,它只是一段規(guī)定好輸入(顏色,貼圖等)和輸出(渲染器能夠讀懂的點和顏色的對應關系)的程序。而Shader開發(fā)者要做的就是根據輸入,進行計算變換,產生輸出而已。C4D中已經由官方開發(fā)好了的Shader為你服務,等你調用。如果你對渲染效果不滿意,總想渲染出自己想要的風格,而這些現(xiàn)成的Shade又滿足不了你,怎么辦?有能力自己寫一個吧!

二、C4D材質

第一部分:材質(Material)用來表述物體表面所呈現(xiàn)的顏色、光澤、透明度、凹凸、反射等屬性的著色器集合。C4D基本材質的各個通道就對應著物體的不同屬性的數據描述。(描述材質實際上是只是一種材質函數,全名為BRDF(Bidirectional Reflectance Distribution Function)雙向反射分布函數,數學上,完全的材質函數應當是BxDF,即包括了反射透射等等所有的效應。因此BRDF只是BxDF的一種,除此之外,還有透射函數,散射函數等等。但考慮到我們處于實時的框架下,故近似為BRDF,忽略其他的BxDF。)


通過材質各個通道的屬性來模擬描繪現(xiàn)實世界的不同物體。


第二部分原理:

材質的各種屬性是如何模擬現(xiàn)實的光學物理現(xiàn)象的呢?這必須從物理學上談起。

一、光與物質的交互

光是一種橫向傳播的電磁波,電磁波的波長范圍非常廣,但只有390~760nm之間的一段波譜是人眼可見到的,也就是在圖形學里對渲染著色起作用的部分。另外因為光有波粒二象性的緣故,有時候我們在圖形學里也會把光做為光子(photon)來處理。


1、當光投射到傳感器(眼睛,照相機等)上時,顏色和亮度就會被吸收并感知,而光與物質交互后被感知的,就是物體的顏色。


2、均勻介質

內部密度相同的物質,意味著它有唯一的折射率,對應透明的均勻物質來講(如水,玻璃),光通過時,并不會改變光的顏色或強度。


3、光被吸收(absorption)。

而當物質對某一種可見光譜有吸收率的時候,那么,光就會隨著在物質內的傳播距離而逐漸被吸收,而光的方向并不發(fā)生改變。


4、非均勻物質

當非均勻物質內部的折射率非常突然的時候,這時就會發(fā)生散射(Scattering)現(xiàn)象,光會被分割為多個方向,但光的總量并不會發(fā)生變化。



5、自發(fā)光”emission“。物質還可能因為其他能量發(fā)出新的光。


總之,光與物質交互的三種方式,吸收,散射,發(fā)光。


二、光與平面的交互

光與物質交互發(fā)生在物體表面時,關于光與空氣和物質之間的散射效果。這個時候平面散射光會分為兩部分:一部分進入平面的部分(折射,在物體內部傳播中被吸收或散射),另一部分從平面出去的部分(反射)。


1、鏡面反射:一個假設完美無限光學平坦的平面(簡稱光學平面)反射效果,平面兩側的空氣和物體有各自的折射率。(注意模型底下反射的是地面)


2、非鏡面反射:但實際上,平面大多都不是光學平面(除了鏡子或鏡頭等),而是一種微幾何體(Microgeometry),表面都會有一些比可見光波長要大的不規(guī)則凹凸,但又小到無法覆蓋一個像素或者采樣點,所以,我們就把這種非光學平面。



3、光滑 roughness

平面相對平滑時,表面方向的變化也比較輕微,從而反射光的方向變化也較小,有了較清晰的反射。而下面的表面粗糙,表面方向的變化范圍也較廣泛,反射光的方向變化也比較大,出現(xiàn)了模糊的反射。


4、漫反射光與鏡面光(diffuse and specular)

從平面直接反射的部分稱為鏡面反射光(Specular),來源于拉丁語的“Mirror”,鏡面光的顏色,通常就是燈光的顏色,只有照射在金屬上才會改變顏色(實際是金屬吸收了特定波長的光),傳入到物體內部,而經過折射,被材質吸收(轉變?yōu)闊崮埽?,或者內部進行散射,一些散射光最終會重新返回從平面折射出來,并被攝像機或眼睛所捕捉到,稱為漫反射光(Diffuse)。

漫反射光被物質吸收并散射后,會成為不同波長的光,這也就給予了物體顏色,比如物體吸收了藍色以外的光,那物體就是藍色的,而因為散射的混亂比較均勻,從每個方向看起來都是一樣,所以這點和鏡面光不一樣。也可以使用這個名字albedo來描述。



5、金屬和非金屬

物體內部的折射光的作用,取決于物體內部的組成,內部組成的不同,可以分為,金屬(metal)導體,電介質(Dielectrics)絕緣體和半導體(Semiconductors ),在處理物體時簡單的分組為金屬和非金屬就可以了。金屬會吸收所有的折射光,而且通常會被絕緣體的反射率要高,通常的反射率要達到60%~90%,而絕緣體則是0%~20%,反射率高,就防止了入射光被吸或折射,這樣,金屬就有了”閃亮“的外觀。



金屬的折射光能量都立刻被自由電子吸收,而非金屬(絕緣體),光會在內部進行吸收和散射活動,最后,一些折射光會通過散射,重新從入射平面反方向射出



6、非金屬的折射光會進行散射

導體的反射會跨越光譜,所以反射是有顏色的,雖然顏色反射在導體里比較罕見的,但在一些日常的材質里(金,銅,黃銅)還是可以看到這種效果,而絕緣體的反射通常是他們的本來顏色,因為金屬會吸收所有的穿透光,也就沒有任何漫反射(diffuse)部分,但金屬氧化的部分和一些表面殘留物還是會散射少量的光。不同材質的漫反射顏色,金屬為0。


7、次級表面散射(Subsurface Scattering)

從前面的圖中,可以看到折射后的散射光從平面不同的點發(fā)射出來,和原始的入射點的距離也各不相同,可以統(tǒng)稱為次級表面散射光,根據散射出的距離和入射點像素的大小的關系,可以分為兩種情況:


如左圖所示,當像素的尺寸大于入射到出射點的距離時,這個距離就可以被忽略,可以認為這個平面散射出的光和入射光是在相同點上,也就是右圖的樣子,也就是我們常說的漫反射。


當像素小于出射到入射距離時,每個點的著色就會收到其他光入射到其他點的影響,也就是常說的“次級表面散射”技術,很重要的一點是,它和普通的漫反射著色是一種物理現(xiàn)象(都是折射光的次級表面散射),唯一不同的就是散射的距離與觀察點大小的關系,一個通常被認為是“次級表面散射”的表現(xiàn),當在較遠的距離觀察時,就可以被認為是漫反射著色(例如遠距離角色的皮膚),而“正規(guī)的漫反射著色”在很近距離觀察時,也會有次級表面散射的效果。


8、Fresnel現(xiàn)象

菲尼爾表現(xiàn)的是材質的反射率和入射角(也就是光源入射向量和平面法線向量的夾角)的對應關系,也就是說,入射光的角度越大,反射率也會越強。以水面為例,正常入射事只有3%的反射,而水平時則幾乎到100%。

下圖是水折射的菲尼爾現(xiàn)象,看近處和遠處對比。離觀測者越近折射越強烈,越遠越模糊。


下圖是水表面反射菲尼爾現(xiàn)象,離觀測者越遠反射越強烈,越近越模糊。



8、各向異性

前文已經提到了表面的微幾何體。從宏觀來看,在我們渲染模型網格時,使用凹凸貼圖或法線貼圖就可以描述表面小的細節(jié)。 但還是有一些微小的凹陷,裂縫或突起,而用肉眼是很難看清楚的,而且這些微幾何體是有規(guī)律分布的,它小到連正常大小的法線貼圖也無法來表現(xiàn),雖然肉眼無法看到,但這些微觀特征,還是對Diffuse和Specular產生了影響。光雖然向四處反射,但是有規(guī)律的,在模型表面有的地方強,有的地方弱,有的沒有,這就是各個方向不同。


第三部分材質和通道的優(yōu)先級:

C4D標準材質的各通道計算的優(yōu)先級,一般是從上到下。先計算顏色通道,然后再計算漫射通道,依次類推,這樣最后顯示的結果,卻是后計算的通道要影響先計算的通道效果。仔細看下圖:


1、顏色通道設置為紅色,其他不勾選,渲染器計算,最后顯示結果,當然是紅色。


2、如果再勾選漫射通道,為其添加一個噪波貼圖(SHADE程序貼圖)。渲染器先計算顏色通道為紅色,后計算漫射通道的噪波,顯示的結果是后者影響了顏色通道紅色的顯示,你也可以簡單理解這是一種層與層之間的混合覆蓋。


3、如果繼續(xù)勾選發(fā)光通道,參數設為最大。那么最后計算的結果,它把前兩個通道的效果全部覆蓋掉了。


4、再繼續(xù)勾選透明通道,把亮度設為100%,它的影響簡直是太大了,全部透明。也就是說顏色、漫射、發(fā)光通道計算完之后,沒有被顯示,最后顯示的是透明通道的結果。但是CPU的活還是干了。


5、不選擇透明,勾選反射,你會發(fā)現(xiàn)它的影響也是很大的。顏色、漫射、發(fā)光通道白忙活了,但是CPU的活還是干了。


6、勾選環(huán)境通道,它其實是一個優(yōu)化計算方法。它是假的反射,特點速度快,缺點是假。在其紋理通道載入一個貼圖,它就會顯示反射的樣子。如果你勾選反射通道,它就不顯示。如何同時顯示呢?仔細看圖就知道了。

(答案:把發(fā)射通道的衰減一定設為添加)


7、繼續(xù)向下勾選煙霧,它的影響也不小啊。雖然它是最后計算的,但效果覆蓋掉了上邊其他通道的效果。


8、勾選凹凸通道,添加一個噪波文件。它影響上邊的各個通道,顏色、高光、反射通道。


9、下邊這個更厲害,阿爾法通道。


10、輝光實際上是后期渲染運算。它的效果影響上面的各個通道。


11、這是置換通道,也是如此。


以上,簡單研究一個材質的各個層之間的相互影響。

不同的材質如果賦予一個模型,在渲染的時候如何呢?

12、建立三個材質,紅綠藍。


13、把它們都賦予一個模型球體。渲染結果會是什么呢?渲染器的計算的優(yōu)先級是從左到右,那么最后的顯示效果一定是右側的藍色了。因為這些材質都不透明,也沒有阿爾法通道,他們之間也沒有設置混合運算。最后計算的藍色就會覆蓋前面的。


14、測試一下,果然如此。(場景中沒有用燈光,用全局光渲染,場景是HDRI貼圖照亮的)


三、C4D貼圖

才說道重點。

為什么要用貼圖?雖然材質定義了物體表面的顏色、光澤、透明度、凹凸等屬性,但各個通道中的設置:一是非常簡單,二是它是對整體進行控制的。對于模型不同地方不同的屬性,很難描述復雜情況。所以用貼圖來實現(xiàn)對復雜世界的描述。

貼圖(Texture 或Map),在C4D中其實就是一種SHADE。在標準材質的各個通道,除了有基本屬性設置之外,幾乎都有一個紋理通道,可以填充可以是texture或shader。


1、Texture(紋理)通常與2D 位圖圖像或圖像序列(視頻)相聯(lián)系。而2D圖像有一些局限性,因為它們依賴于圖像的精度。所以當一個物體的貼圖精度較低而渲染出的圖要求精度較高時,紋理貼圖會不清晰或不真實,因為它是由一個小的圖拉伸而來的。(其實它也是通過SHADE載入的)

2、 Shader也就程序紋理,是一段程序生成的。它的精度可以由參數決定,在渲染時按照燈光、環(huán)境等因素計算呈現(xiàn)效果。一是不會產生上述精度的麻煩,二是能夠隨著環(huán)境而變化。

它分為2Dshader 3Dshader。2Dshader似于2D圖像紋理。除了沒有精度問題,它在物體上的投影方式與2D 的圖片一樣有平面、柱體、球體等。它依據U、V 將圖片投射在物體表面。3Dshader 可以在真實的空間中分布,因為它是基于U、V、W 三個坐標方向的,W 給了3D shader體積感。由于3Dshader使用UVW 投影,所以它不會拉伸或扭曲。3D shader 是面對復雜物體時,代替2D texture 和2D shader 的最佳方案。

3、Shader包含Channelshader和Volumetric Shaders 。

一是Channelshader:

可以被材質的某個單獨的通道載入。如噪波、菲尼爾等。這些shader 被稱為通道shader


噪波是通道SHADE,它是程序紋理,可以通過參數控制紋理的形態(tài)。


通道SHADE所在的位置:


二是Volumetric Shaders :

C4D 有一套內建的高級shader包:volumetric shaders,它們增強了C4D 的材質系統(tǒng)。volumetric shaders也包括了2D 和3D 的shader,它們提供了高級的特別控制用于制作基本材質無法做到的效果,如金屬表面的刮痕,真實的透明、半透明等。它們如材質一樣獨立使用,不能被標準材質載入紋理通道使用。

位置在于:


官方幫助截圖:

1、玻璃材質


2、木紋材質


3、有機生物材質


4、金屬材質:


5、大理石材質


6、NUKEI復合物材質


多么好的材質,怎么就不用呢?初學者總是用標準材質費勁調試,效果也不見得比這個好。

個人理解總結如下:


程序紋理Shade:能夠生成一個變化紋理的著色器,又能保持圖像精度,如表面里的木紋、大理石、星空等等,可以通過參數改變形態(tài)。

功能性Shade:該Shade不能直接生成程序紋理,有的如PS濾鏡,對紋理起著調整和混合作用;有的有管理作用,如圖層、過濾等是泛稱。

舉例子說明,如下所示:

1、在材質的凹凸通道中添加一個噪波,這是一個程序紋理Shade。


2、在此基礎上,在添加一個圖層,這是一個功能Shade(我這么叫)。


3、點擊圖層,進入再點擊著色器(Shade),再添加一個棋盤(程序紋理Shade)。


4、然后,改變混合模式為變暗。


5、這個圖層所起到的作用就是“功能性”的,如同進入PS一樣,處理多個紋理進行混合管理,再生成一個新的紋理。


【后記】

1、C4D不支持PBR基于物理渲染,只能近似模擬光的物理現(xiàn)象。

這些知識是我學習的心得,不一定完全正確。但我認為任何一個CG培訓的老師如果進行渲染教學,首先應該談光的物理原理,然后談渲染器利用材質是如何模擬的,這個真是很重要。

追本溯源,才能融會貫通,最后才能隨心所欲不是嗎?

如果紋理貼圖的原理你都不知道,你還想學“紋理貼圖的繪制“,那簡直是笑話!

2、通過上面的學習,知道紋理貼圖重要,那又如何學習呢?

首先熱愛生活,觀察自然真實的物品?,F(xiàn)實的物品,沒有那么完美的,總有污垢、破邊、劃痕、銹跡等等,仔細觀察,并用手機拍照收集,金屬如何、塑料如何、布料如何?石頭磚墻如何?然后想想,在三維軟件中,利用什么樣的貼圖來表現(xiàn)這些細節(jié),做到優(yōu)化;如何用材質的屬性和參數去模擬表現(xiàn)它。找個簡單的模型一遍遍測試,不斷調整。渲染的是個慢功夫,非常耗時間,所以,你必須能坐住凳子才行?。∏f不要“乳膠漆”參數如何如何,瓷磚參數如何如何,死記硬背,這樣的確可以速成,但削弱你的獨立和再創(chuàng)造性。

這是我的自學心得:日積月累,你的功力就會大增,游刃有余。

聲明:文章中第二部分內容和圖片參考了《Trace的空間》的文章。

作者:DIGITALMAN


C4D材質原理揭秘筆記-小白自學記(一)的評論 (共 條)

分享到微博請遵守國家法律
凌海市| 承德市| 平利县| 武陟县| 怀来县| 图们市| 清苑县| 城市| 汉阴县| 大荔县| 会泽县| 镇康县| 城口县| 垦利县| 梅州市| 嘉黎县| 加查县| 云阳县| 金坛市| 武夷山市| 南澳县| 满洲里市| 津南区| 永兴县| 沁源县| 蓝山县| 剑阁县| 宁国市| 榆树市| 田林县| 沁水县| 湖南省| 道真| 孟州市| 固始县| 海晏县| 涟水县| 济南市| 榆社县| 德安县| SHOW|