999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

程序紋理概述及其在材質制作中的應用
——以Substance Designer為例

2021-04-22 03:22:12林旻軒
數字技術與應用 2021年2期
關鍵詞:程序

林旻軒

(福建師范大學,福建福州 350000)

程序紋理(Procedural Texture)這一課題在國外興起的比較早,并且研究也較為靠前,然而在國內的資料較為有限。由于次時代模型+PBR貼圖流程使得畫面有了極大的提升,導致傳統的貼圖繪制滿足不了藝術家表達的需求,于是程序紋理進入三維藝術家的視野。程序紋理由于其具有偽隨機性、多變性、連續性、可無限生成等特點對材質創建有重要意義,可是其較高的學習成本導致很多從業者知其然而不知其所以然。本文意在從程序紋理的生成原理入手,使從業者能夠對程序紋理有個大致的了解,以便后續學習。并通過程序紋理在材質創建中的部分運用,來探討其在材質制作中的用途,并提出發展假想。

1 程序紋理概述

1.1 紋理映射與三維創作中對程序紋理的需求

在講程序紋理之前需要涉及一個紋理映射的概念,紋理映射技術(Mapping Techniques)能夠增強虛擬物體的真實感,其原理是通過紋理空間的UV坐標與三維物體表面坐標的映射關系,給三維物體頂點賦予適當的紋理坐標就能把色彩紋理成功映射到三維物體上, 使得三維物體表面能夠呈現圖像中的色彩效果。[1]但是紋理映射中使用的位圖紋理可能會出現以下的問題:一是過于復雜的模型表面可能會有位置出現紋理映射失效的情況,并且會占用大量的運算資源。二是映射過程無法保證原始圖像的完整性,而是會出現變形、模糊甚至是失真的情況。這也引起了人們的思考,是不是能有一種方式使得映射的紋理不是由像素塊組成,它可以無限的延續可以向任意方向使用任意比例創建,于是三維藝術家們就很自然的想到了程序紋理。

1.2 程序紋理廣義定義

“程序紋理”也可以稱作“過程紋理”程序這一詞主要體現在計算機根據紋理設計者提供的公式來從頭開始創建紋理。維基百科是這樣定義程序紋理的:“在計算機圖形學中,程序紋理是使用數學描述(即算法)而非直接存儲的數據創建的紋理。”所有的程序紋理都是函數,使用者只需要告訴紋理需要著色的位置坐標,它就能反饋給你一個值,多少維和多少值取決于具體的函數。可以這樣理解,在一個空間中所有的紋理特征全部由一組公式或多組公式互相作用來進行定義,紋理帶有其被公式定義的形狀無限延伸,遍布整個空間。[2]這些公式計算出的數值都有其對應的空間坐標,并且表現出當前坐標的要素類型。

程序紋理理論上能夠無限的進行采樣,其實可以將程序紋理的標度視作頻率,最高頻率攜帶有關波如何在最小尺度上運動的所有信息,而最低頻率代表最寬,最慢的變化。[3]考慮到這一點,可以看到比例是頻率的倒數。將此概念應用于地球。最大比例的是海洋和大陸,這些物體在大范圍內具有最明顯的形狀。但是,隨著距離的臨近,它們的形狀變得不那么明顯,你會看到較小比例的物體,形成山脈,海岸線,森林和沙漠。你越接近,開始注意到更精細的細節,包括成群的樹木,大型建筑物和河流,更近一步甚至能看到路上的石頭,地上的花草。

1.3 程序紋理生成原理

最基本的程序紋理函數f(x)=x就是一維的線性漸變,其中的灰度數值區間為(0,1)(如果按色階值來定義則是(0,255))0為純黑1為純白,由于我們并沒有y軸線的賦值,其圖像表示就是一張從左至右由黑到白的灰度漸變圖。在此基礎上我們給函數附加乘值就可以得到帶有函數變化的x方向上灰度漸變的圖像,所以如果在這些函數前添加上噪聲算法就可以在可控制的范圍內得到相對隨機的圖像(圖1)。如果進入到二維空間,其基礎函數就是f(x,y)=x*y再給它添加常數與附加算法那么就會得到我們常見的噪波圖像,我們通過對noise附加算法的修改來改變圖像。以此類推,我們可以通過不斷的添加數進行乘積運算來得到更高維度的程序紋理。

從本質上來講,構建程序紋理的方法就是“使用一個函數去修改另一個函數”。[4]例如函數f(x,y)=(1+sin((x+noise(x*5,y*5)/2)*50))/2,就是通過將函數f(x,y)=noise(x*5,y*5)與函數f(x,y)=(1+sin(x*50))/2復合后得到的類似大理石的程序紋理(圖2)。之后我們還可以將灰度值映射為顏色,將他們添加到已存在的紋理中獲得更好的外觀效果。程序紋理正是由于這樣的數學方式來創建故而其具有偽隨機的特性,這也使得它能夠更加真實的模擬自然。

1.4 程序紋理優缺點

由于程序紋理采用數學描述進行創建,所以只要硬件能力達標,軟件就可以根據函數生成無限量的紋理。位圖圖像的紋理映射是通過2D平面的采樣進行的,通過X,Y坐標系進行采樣并反求顏色,類似于查找圖像中的像素顏色。而程序紋理不同,如上文所說其直接從獲取坐標并賦予顏色信息。這便使得其信息的存儲方式有了不同,在圖像情況下,像素顯示的顏色信息被存儲于內存中再被采樣,程序紋理則是由于其信息是從公式中提取的,所以色值直到被采樣才被判定為存在。還有更重要的一點不同是,位圖紋理像素之間的空間是不確定的,而且圖像中的像素數量是確定的,如果追求更好的視覺效果,那往往是不夠的。相對來說程序紋理可以在任何地方進行采樣,得到清晰的信息(圖3)。[5]其還具有多變性的特點,他可以通過調節參數的方式來對紋理進行修正,從而得到風格迥然的紋理。正是由于程序紋理其采樣清晰且能夠生成多樣的完全平鋪的紋理,所以我們可以通過程序紋理來更好的模仿自然,它給了藝術家一個窗口來生成無人工痕跡的自然肌理表現。同時程序紋理理論上是能夠生成任意維度的紋理,三維場景中的粒子散布就是基于這一點,但由于我們顯示還是依靠數據紋理來實現的所以更高維度的信息在顯示上無法得到體現。

當然程序紋理也有缺陷,首當其沖的就是其對硬件的高需求,雖不耗費內存空間,但是如果在游戲中過度使用,程序紋理硬件的計算能力不足可能會出現卡頓甚至閃退的情況。另外,程序紋理在現階段還不能描述過于復雜的紋理,或者說描述過于復雜紋理時消耗的成本要高于普通的繪制紋理。再者,程序紋理的編寫難度較高,需要有一定的數學背景。故而我們在材質制作中一般都是使用別人編好的程序紋理,通過調整參數使得其達到我們想要的效果。

2 程序紋理在材質制作中的運用——以Substance Designer為例

由于程序紋理的生成方面主要還是對算法及函數的研究,涉及到大量的數學及計算機圖形學的內容,所以本文在實際應用方面還是結合本專業所學來探討程序紋理的合成與其在材質制作中的使用。

2.1 Substance Designer簡介

程序紋理在三維軟件中的運用主要還是通過材質來體現的,計算機軟硬件迭代是非常迅速的。從1995年三維動畫的起步階段到現在,畫面表現力得到了巨大的提升,物體的材質效果一直都是使畫面提升的重點。Substance Designer作為當下最為出色的材質編輯軟件之一,其程序化的紋理創建流程,通過算法使紋理進行復合疊加的編輯方式一定程度上改變了業界的生態。

SD制作材質主要是通過其帶有的各類疊加模式(Blending Mode)來實現的。BM的常用類型有Add、Subtract、Multiply、Divide、Min、Max、AddSub、Overlay這八種,具體設計的計算方式就不在此文中敘述了。材質最主要的信息是通過蒙版(Mask)以及高度圖(Height Maps)這兩個類型的圖來實現的,他們是在SD中創建動態智能材質的關鍵,蒙版使得紋理外觀可調節可覆蓋,高度圖則是負責快速添加造型細節,而不需要去建模。SD通過將合成后得到的紋理(包括色彩模式圖像以及灰度圖像)以節點連接的方式控制圖像的輸入輸出,其中也可以連接各類的混合器節點來改變初始紋理的參數。

2.2 程序紋理在材質制作中的應用

材質主要是通過紋理映射的方式來改變物體表面著色,來使其能夠代替建模來給與物體不同的視覺表現,而根據PBR流程(這里舉例較為常用的一套次時代貼圖方式),其貼圖的輸出節點主要包含以下幾種類型:Base color、Normal、Roughness、Metallic、Height[6]。

程序紋理用于材質的著色器(Base Color),如本文先前所舉的類大理石的程序紋理,將其中的灰度可以替換為色彩信息,在SD中創建一個顏色漸變節點,選取我們需要的色彩,計算機會根據既定的算法來對圖像進行合理的顏色分布與過度,再創建一個混合節點,我們就可以對兩個紋理進行疊加得到彩色的類大理石紋理。由于大多程序紋理都具備很好的隨機性,我們還可以通過調整程序紋理節點中的各類參數來獲得類似卻完全不同的材質。這樣的材質有利于我們去更加真實的還原自然。

程序紋理通過連接輸出粗糙度(Roughness)來改變材質的表面的反射系數,通常來說是根據著色器來進行粗糙度調節的,比如制作一個地面材質,自然界中不存在整個平面都是統一的粗糙度的物體,我們就可以通過程序紋理生成的方式,對材質的各個采樣點進行偽隨機,這樣就會使得材質表面出現更自然的不一致的光澤。

金屬值(Metallic)這一貼圖的原理與粗糙度類似,都是通過修改表面的反射系數來模擬不同材質下表面的反光度從而使得其表面的金屬度發生變化,程序紋理同樣的可以將自身數值疊加到金屬值貼圖上,來使得物體表面的反射發生變化,常用于掉漆,充滿劃痕的金屬表面等情況。

在高度圖(Height)的制作中,可以通過程序紋理生成的噪波來控制材質表面的凹凸感,甚至可以依靠置換的方式來生成實際的幾何形狀。同時結合上面的粗糙度,能夠很完美的增加材質的表面深度,即便它依然是一個平面但是在三維軟件中可以直接模擬出坑坑洼洼的效果。

圖1 添加noise后的一維函數圖像Fig.1 One-dimensional function image after adding noise

接下來用一個破碎的混凝土墻面的案例(圖4)來對程序紋理在材質制作中的具體運用進行部分說明。創建uniform color節點并連接base color來賦予物體一個基礎的顏色。同時還可以將uniform color節點切換為灰度模式來對roughness節點進行控制來改變物體的表面粗糙度。先是創建一個灰度反轉節點輸出到法線以及高度圖(為了使接縫部分是凹陷的),之后創建一個網格狀的程序紋理,調整其細分屬性以及網格的寬度后作為墻體部分的磚塊間的接縫。創建一個柏林噪波的紋理,將先前制作的接縫以及柏林噪波通過slope節點進行混合調整節點數值,連接Blur_HQ節點(高質量模糊)就會在接縫處產生一些不規則的倒角以此來模擬混凝土剝落的狀態。再使用could的程序紋理來制作混凝土墻面的凹凸并通過混合節點將其和之前制作的磚墻縫隙結合(圖5)。再在表面通過相同的方式混合劃痕顆粒狀的突起等紋理這樣就可以得到完整的混凝土材質的表層紋理。之后使用類似的方式利用could紋理以及類似碎片的程序紋理來混合構成混凝土材質的里層。創建一個柏林噪波,通過節點來調整它的采樣范圍以及對比度,再通過Multiply的運算將其圖像進行混合,多次重復疊加程序紋理進行調整,就可以得到一個類似遮罩的效果,再將之前做好的里層紋理與其混合,通過灰度反轉節點后輸出到高度圖上就可以得到部分內陷(灰度圖白色部分)且帶有里層紋理的效果。鋼筋的制作也是同理,顏色部分是后期通過將疊加的灰度圖替換成了按生銹的金屬的顏色比例生成的相應紋理。小碎石的效果則是基于碎塊狀的程序紋理通過調整采樣范圍,遮蓋掉一部分后混合疊加到法線以及高度圖上直接置換生成的。

這種材質的制作方式雖然較為繁瑣,但是相對于傳統流程其泛用性更強,可以僅通過拉動幾個滑塊就能生成類似風格卻造型迥然的可復用的紋理材質,由于一切都是基于程序化的,所以藝術家可以把更多的精力放到環境表現以及氣氛烘托上,故而紋理程序化的生成方式在大型場景制作中幾乎是必不可少的。

2.3 程序紋理應用的未來方向

我認為程序紋理的后續運用在以下兩個方向比較容易取得突破,一是虛擬現實技術(VR),程序紋理在VR中的運用已經初見端倪,在很多醫療及勘探領域已經取得了一定的成績,大多是結合VR直觀的呈現檢測分析后的模型數據。二是結合對抗生成網絡(GAN),通過機器學習對圖像進行分析及重組,AI可以基由圖片來直接生成大量同類紋理。這可以很大程度上提高設計師的工作效率。

圖2 f(x,y)=(1+sin((x+noise(x*5,y*5)/2)*50))/2 的函數圖像Fig.2 The function image of f(x, y)=(1+sin((x+noise(x*5,y*5)/2)*50))/2

3 結語

圖3 左半為位圖紋理采樣右半為程序紋理采樣Fig.3 The left half is bitmap texture sampling and the right half is procedural texture sampling

雖然程序紋理有很多的優點,可是其較高的學習成本是一個擋路石,即便是運用嫻熟的設計師也不敢說自己能完全掌控程序紋理,其隨機性使得程序紋理不可能做到真正意義上的完全控制,就如同繪畫中的肌理運用一般,讓人又愛又恨。現在人們對畫面的需求愈來愈高,游戲影視行業中“次時代”的運用也成為常態,程序紋理提供了一個新的方向,隨著軟硬件不斷完善,VR甚至是MR技術的普及,程序紋理的運用必然更加的寬泛。故而從業者必須不斷學習,突破自我,繼而使得作品能在可以預見的未來帶給受眾更加沉浸式的體驗。

圖4 鋼筋混凝土材質表現Fig.4 Reinforced concrete material performance

圖5 混凝土磚墻表層材質表現Fig.5 Surface material performance of concrete brick wall

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 伊人国产无码高清视频| yjizz国产在线视频网| 亚洲精品图区| 亚洲精品国产精品乱码不卞 | 亚洲人成网站在线播放2019| 欧洲熟妇精品视频| 97成人在线观看| 在线中文字幕日韩| 免费又黄又爽又猛大片午夜| 国产精品嫩草影院av| 国产福利大秀91| 久久亚洲黄色视频| 国产欧美精品一区aⅴ影院| 免费在线观看av| 国产96在线 | 激情国产精品一区| 91精品免费久久久| 成人在线综合| 国产免费观看av大片的网站| 欧美a级完整在线观看| 日本黄色a视频| 一区二区日韩国产精久久| 久久国产av麻豆| 免费看黄片一区二区三区| 成人午夜天| 天堂av高清一区二区三区| 久久亚洲综合伊人| 亚洲欧洲美色一区二区三区| 中文字幕天无码久久精品视频免费 | 婷婷六月激情综合一区| 国产第一页亚洲| 亚洲一级无毛片无码在线免费视频| 国产香蕉国产精品偷在线观看 | 综合天天色| 国产91线观看| 无码aⅴ精品一区二区三区| 丝袜美女被出水视频一区| 男女精品视频| 最近最新中文字幕在线第一页| 性视频一区| 亚洲欧美不卡视频| 国产极品美女在线观看| av在线人妻熟妇| 午夜丁香婷婷| 国产在线拍偷自揄拍精品| 女同久久精品国产99国| 国产欧美另类| 日韩国产精品无码一区二区三区 | 婷婷99视频精品全部在线观看| 国产va在线| 无遮挡一级毛片呦女视频| A级毛片无码久久精品免费| 欧美伊人色综合久久天天| 国产黑人在线| 久久无码高潮喷水| 色婷婷国产精品视频| 亚洲欧洲日韩综合色天使| 欧美a在线视频| 国产精品尹人在线观看| 夜夜高潮夜夜爽国产伦精品| 波多野结衣一区二区三视频| 国产91小视频在线观看| 91在线一9|永久视频在线| 午夜限制老子影院888| 999国产精品永久免费视频精品久久 | 97av视频在线观看| www.亚洲色图.com| 亚洲日韩AV无码一区二区三区人| 亚洲天堂.com| 亚洲人成网站观看在线观看| 欧美乱妇高清无乱码免费| 99这里精品| 久久久亚洲色| 日韩色图在线观看| 国产菊爆视频在线观看| 波多野结衣无码视频在线观看| 精品一区二区三区无码视频无码| 美女无遮挡拍拍拍免费视频| 亚洲欧美日韩成人在线| 又大又硬又爽免费视频| 国产真实乱了在线播放| 日韩一级毛一欧美一国产|