Zi 字媒體
2017-07-25T20:27:27+00:00
Illustrator基礎教程:創建內陰影效果
這一次的教學是屬於矢量教程領域中的Illustrator教程的相關教學。
文章出處是來自優設的矢量教程類文章,寫教學的作者是佚名,感謝佚名提供Illustrator教程的實作教學。
教學大綱:
很長一段時間,我對AdobeIllustrator最不滿意的一點,就是AI中沒有內陰影效果,只能使用內發光效果大致模擬。不過內發光效果不能設置效果的偏移量,因此用起來有局限性。不過,最近,在網上找到了一種方法,能在AI中快速方便地創建內陰影效果。
Illustrator教程教學開始
希望能通過本教程掌握Ai這方面的知識。
很長一段時間,我對AdobeIllustrator最不滿意的一點,就是AI中沒有內陰影效果,只能使用內發光效果大致模擬。不過內發光效果不能設置效果的偏移量,因此用起來有局限性。不過,最近,在網上找到了一種方法,能在AI中快速方便地創建內陰影效果:
首先,新建一個文檔,用圓角矩形工具,或者矩形工具+圓角效果,畫出這樣的圖形:
然後,執行菜單命令「效果」-›「SVG濾鏡」-›「應用SVG濾鏡」命令,在彈出的對話框中,新建一個SVG濾鏡:
然後,把下面的代碼複製、粘貼替換掉文本框里的內容,點擊確定:
dx=’5′ dy=’5′ />
stdDeviation=’3′ result=’offset-blur’ />
operator=’out’ in=’SourceGraphic’ in2=’offset-blur’ result=’inverse’ />
flood-color=’black’ flood-opacity=’0.75′ result=’color’ />
operator=’in’ in=’color’ in2=’inverse’ result=’shadow’ />
operator=’over’ in=’shadow’ in2=’SourceGraphic’ />
最後,點「確定」應用效果,內陰影效果就出來了,帶有(5,5)方向的偏移:
如果發現圖形帶有鋸齒,類似這樣:
那麼,執行命令「效果」-›「文檔柵格效果設置」,勾選「消除鋸齒」,即可以了。
Done.如果希望調整內陰影的偏移,調整dx,dy的值即可。改變內陰影的顏色和透明度,可以通過調整
flood-color=’black’ flood-opacity=’0.75′ result=’color’ />
標籤里的flood-color和flood-opacity屬性來做到。這個方法應該是在AI中創建內陰影最省力,效果還不錯的辦法了。不過要注意,這個濾鏡通常應該放到「效果」面板的最後邊,因為圖形在應用這個濾鏡后就被柵格化了。
註:這個方法來自StackExchange上的討論:InnershadowissueinIllustratorCS5,更早的出處是源自:SVGQuickRef,不過這個站點的域名當前已經過期,不能正常訪問了==
2.以及其他(Howitworks)
在上面的例子里,我們使用AI的SVG濾鏡功能,自己寫了一個濾鏡,應用到了圓角矩形上,生成了內陰影效果。出於好奇,我研究了一下howitworks,發現這一塊兒水還挺深。下面,就說說AI里的SVG濾鏡功能。下面的這部分,就當拓展閱讀好了,可能有些晦澀難懂,所以不要求掌握。不過,掌握SVG濾鏡的應用后,就可以自己寫一些簡單的濾鏡在AI里來用了。
首先,說說SVG是什麼。SVG的全稱是ScalableVectorGraphic,即可縮放矢量圖形。SVG實際上是純文本XML格式,通過XML定義圖形的形狀、填充顏色、描邊等。在維基百科中,就大量應用了SVG格式作為國旗國徽、地圖、信息圖應用。
SVG除了可以描述矢量圖形的形狀、填充顏色、描邊等,還可以使用濾鏡對圖形進行進一步的修飾。這裡的濾鏡就是SVG濾鏡(SVGFilters)。網上有關於SVG濾鏡的資料少的可憐,無論中文還是英文。不過,還是根據現有有限的資料,大概了解了一下SVG濾鏡到底是什麼樣的玩意兒,以及怎樣來用。
SVG濾鏡同以SVG格式描述矢量圖一樣,也是純文本XML格式。SVG濾鏡以標籤開始,以標籤結束。在和標籤之內的部分為濾鏡的定義。在AI里,標籤里的id屬性,即為顯示在SVG濾鏡面板中的濾鏡名。
SVG濾鏡的一個重要概念是基礎濾鏡(filterprimitives),每個基礎濾鏡可以執行某個特定的修飾功能,例如顏色變換等。所有的基礎濾鏡命名都以“fe”為開頭,應該是filtereffect或filterelement的縮寫,如上面的,這些。一個SVG濾鏡可以由一個基礎濾鏡或多個基礎濾鏡的組合來完成。知道這些后,回過頭來看一下,上面的內陰影效果是怎樣一步一步地實現的。為方便查看,把畫板的背景設置為這樣的網格:
首先,執行第一步操作:
dx=’5′ dy=’5′ />
這一步,基礎濾鏡讓原始圖形向下和向右兩個方向平移均五個像素(注意和上圖的邊界框與背景網格做比較):
然後是
stdDeviation=’3′ result=’offset-blur’ />
基礎濾鏡的作用正如它的名字那樣,為圖形做高斯模糊,其中,stdDeviation參數為高斯模糊的標準差,決定模糊半徑。在為上面的圖形做高斯模糊后,將結果暫存在緩衝區,名稱為“offset-blur”:
接下來是基礎濾鏡:
operator=’out’ in=’SourceGraphic’ in2=’offset-blur’ result=’inverse’ />
命令的作用是將兩個圖按一定規則拼為一個圖。需要指定一個混合模式,混合模式有arithmetic,over,in,out,atop,xor六種。arithmetic為算數模式,有四個參數,k1,k2,k3,k4需要手工指定;拼合規則是對[R,G,B,A]每一個色版做這樣的變換:result=k1*in*in2+k2*in+k3*in2+k4,in和in2為兩張圖每個像素的每個單獨色版分量的大小,result就是合成圖像的某顏色色版值。over,in,out,atop,xor六種混合模式如圖所示:
需要指定兩個圖像作為輸入。在這個示例中,輸入圖像一,即in參數指定的,即是源圖像,SourceGraphic;輸入圖像二,即in2參數所指定的,為上一步 基礎濾鏡放在緩衝區的輸出結果offset-result。然後讓這兩個圖像做out運算,得到這樣的結果:
最後,將上面的拼合結果存入緩衝區,命名為inverse。
再下面是基礎濾鏡:
flood-color=’black’ flood-opacity=’0.75′ result=’color’ />
命令對SVG濾鏡所控制的區域做顏色填充。本例子中以黑色,75%可見度填充SVG濾鏡控制區域:
注意基礎濾鏡沒有輸入參數。填充的結果輸出至緩衝區,名稱為color。
然後又是一個命令:
operator=’in’ in=’color’ in2=’inverse’ result=’shadow’ />
這次是用在緩衝區里的color和inverse圖像做in運算,將內陰影做出來,結果保存到shadow里,如圖:
最後是用將陰影和源圖像拼合:
operator=’over’ in=’shadow’ in2=’SourceGraphic’ />
拼合完畢后,就得到最終需要的結果了:
使用AI的SVG濾鏡生成內陰影的步驟差不多就是這個樣子了。如果再回顧一下這整個過程,會發現很多基礎濾鏡都是將某一步的輸出作為這一步的輸入。那麼,可以根據基礎濾鏡輸入輸出之間的聯繫,畫一個結點圖。我們這個例子的基礎濾鏡結點圖可以畫成這個樣子:
這樣基礎濾鏡之間的關係就一目了然了。
除此之外,SVG濾鏡還有一些其他的有趣功能。再舉一個例子:加強圖像的凹凸效果。
如果用過一些3D創作軟件或類似Unity這樣的遊戲引擎,可能會知道,在計算機世界里,物體表面的凹凸感可以由凹凸貼圖或法線貼圖來做到。凹凸貼圖即給定一個除顏色紋理之外的凹凸紋理,凹凸紋理由灰度表示,越白的地方代表該點高度越高,越黑的地方與之相反代表高度越低。
法線貼圖類似,只是由灰度表示的凹凸紋理換為由彩色表示的表面法線紋理,每個像素的[R,G,B]顏色對應該點法線[X,Y,Z]分量的大小。通過凹凸貼圖和法線貼圖,可以大大增加計算機世界里物體的真實感,且不會像直接創建多邊形那樣過多的增加物體幾何細節而過度增加計算機渲染負擔:
如上面這個CrazyBump軟件截圖,在這裡用了石牆紋理,並通過石牆紋理本身的灰度生成了凹凸紋理,計算機根據凹凸紋理、顏色紋理以及入射光線顏色、方向,還有視角的方向,生成了最終具有真實感的顏色圖像。
在AI里,使用SVG濾鏡,也可以做出類似的效果。代碼如下:
type="luminanceToAlpha" in="SourceGraphic" result="img1" />
lighting-color="white" in="img1" surfaceScale="12" diffuseConstant="1" kernelUnitLength="1,1" result="bumped">
azimuth="135" elevation="135" />
in="bumped" in2="SourceGraphic" mode="multiply" result="img2" />
in="img2" in2="SourceGraphic" operator="in" result="output" />
這個濾鏡使用源圖像的灰度,生成凹凸紋理,再用凹凸紋理生成由光線照射下的凹凸感圖像,最後將凹凸感圖像與源圖像拼合,生成更加帶有凹凸感的圖像:
如圖,上圖為應用上述濾鏡的圖像,下圖為源圖,對比一下即可看到差別。
然後,還可以這樣玩,如改變光源的方向:
改變光源的顏色為夕陽溫暖的餘光:
改變光源的類型:
甚至是為紋理增加「亮晶晶」的效果:
由此,我們可以看到,SVG濾鏡雖然是AI最不常用的功能之一,但是功能卻相當強大。有了SVG濾鏡這個功能,我們能夠自己編寫所想要的濾鏡,從而大大增強AI的功能,甚至可以將AI變成一個圖像處理軟件。不過AI的SVG濾鏡也有很多局限性:
首先是SVG濾鏡不能方便調節參數,若需要調節參數,必須要通過手工更改代碼來調節。還有,AI中的SVG濾鏡不能夠像在Web那樣,通過開啟enable-background屬性來獲取當前圖形的背景圖。以及,AI中似乎不可以用SVG濾鏡引用其他圖像或矢量對象。
最後,估計因為Adobe也覺得這個功能可能沒多少人會用,沒怎麼對這個功能做軟件測試,SVG濾鏡這個功能有一些bug,如果輸入一些無效的SVG命令可能會引起AI崩潰。因此在應用SVG濾鏡前,必須要保存文件。
最後,依然是作業時間:
請根據FilterEffects這個頁面裡面的資料,了解上面的凹凸效果濾鏡是如何實現的;
根據上面凹凸濾鏡效果代碼,畫出基礎濾鏡結點圖;
將上面凹凸濾鏡的代碼擴充,使其實現最後一張圖的反光效果;
–本文轉載自 http://www.missyuan.net 教學網 —
文章永久連結為: Illustrator基礎教程:創建內陰影效果
寫了
5860316篇文章,獲得
23313次喜歡