用DDA Convolution和Perlin Noise來模擬水粉畫筆觸

在西方,水彩畫和水粉畫是可以統稱為Watercolor的,水粉畫通常也稱為不透明水彩畫或樹膠水彩畫(Gouache),兩者既有相似之處,又有所區別。水粉畫是以水作為媒介,這一點,它與水彩畫是相同的。所以,水粉畫也可以畫出水彩畫一樣的酣暢淋漓的效果。但是,它沒有水彩畫透明。此外,水粉畫和油畫也有相同點,就是它也有一定的覆蓋能力。而與油畫不同的是,油畫是以油來作媒介,顏色的干濕幾乎沒有變化。而水粉畫則不然,由于水粉畫是以水加粉的形式來出現的,干濕變化很大。所以,它的表現力介于油畫和水彩畫之間。

這里我使用對Perlin Noise進行DDA Convolution的方式來模擬水粉畫的筆觸效果。大致流程如下:
1.生成Perlin Noise
Perlin Noise是由Ken Perlin發明的一種噪聲函數,它能夠很好地模擬火焰、云彩、奇形怪狀的巖石,以及樹木和大理石表面。這里是Perlin在GDC 99上做的關于Perlin Noise的PPT(http://www.noisemachine.com/talk1/)。要想很快的入門可以看這里(http://freespace.virgin.net/hugo.elias/models/m_perlin.htm),AZURE兄將其翻譯成了中文(http://www.azure.com.cn/article.asp?id=291)。
Perlin Noise計算量很大,如果純粹的用CPU計算會很慢,達不到實時的效果。這里用GPU來計算,速度比CPU快得多。可以通過設置Noise函數的Frequency和Amplitude來調節Perlin Noise的Gain(對比度)和Bias(明亮度)。下圖是生成的一種Perlin Noise效果:

2.將Perlin Noise與原始圖像Blend
這是原始圖像:

融合后:

3.對Blend后的圖像進行DDA Convolution
DDA Convolution是LIC(線性積分卷積)的簡化版本。LIC常用于科學計算可視化的向量場模擬中,能夠很好的表現向量的方向(比如流體的流動方向)。DDA是數字微分分析式(Digital Differential Analyzer)的縮寫,DDA直線生成算法是計算機圖形學中的最經典的算法之一(關于該算法的詳細內容請參見計算機圖形學教材)。這里用DDA將水粉畫筆觸的方向離散成像素點,然后對這些點進行線性卷積,就能產生不錯的筆觸效果。可以調節DDA Convolution的強弱,來產生不同程度的筆觸效果。
Perlin Noise能產生比較平滑的團絮效果(比如云彩),對它進行DDA Convolution后能產生比較逼真的水粉畫筆觸效果。調節Perlin Noise的Gain(對比度)和Bias(明亮度),可以控制筆觸的粗糙程度(是stroke還是brush)。下面是最后生成的效果(這里筆觸方向是水平向右方向,由于各種參數沒有調好,所以可能效果不是很好,^^)


雖然Perlin Noise和DDA Convolution不能真實模擬水粉畫畫筆的物理模型,但它確實能模擬水粉畫筆觸的效果。圖形學本來就是科學和藝術的結合體,NPR尤是。不管你用什么方法,只要能模擬出效果來就是好方法,這也正是圖形學吸引我的原因之一。

轉載于:https://www.cnblogs.com/skyman/archive/2007/07/18/watercolor_brush.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277025.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277025.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277025.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第三課 Makefile文件的制作(上)

1.序言: 前面的課程講解了從gcc編譯過程到其實踐,大家可以看到其實在這些步驟中有些是可以簡化編譯的,但由于參數多以及項目中文件數量多的原因難免會造成錯誤甚至是浪費大量的時間在這編譯上,為此linux系統中專門也有這個工具&am…

刺猬文│從啟動方式來看播客鏈的運行機制—設置驗證者

(圖片出自網絡,版權歸原作者所有)上一篇刺猬文我們介紹了播客鏈是如何實現Dpos的,其實質過程就是:節點A打包,將打包的區塊發送給其它的節點,其它節點根據當前時間,判斷是否應該由A節…

[記憶碎片的磁盤整理]老媽

卷標:老媽 掛載點:/family/mother 分區格式:親情 備注:老媽固然是我人生中的至親,但是搜遍我的大鬧,也沒能發現一點關于老媽的特殊記憶。老媽是一位再普通不過的女人、妻子、母親。也本該如此吧。碎片文件&…

探究Java如何實現原子操作(atomic operation)

1. 讓我們首先了解下java 中 Volatile 關鍵字 Volatile可實現java內存模型當中的可見性, java內存模型的可見性: 可見性,是指線程之間的可見性,一個線程修改的狀態對另一個線程是可見的。也就是一個線程修改的結果,另一…

JAVA-重寫equalse規范、技巧

JAVA-重寫equalse規范、技巧 1、自反性 任何非空引用x,x.equalse(x) 應該返回true2、對稱性 任何引用x和y,當x.equals(y)返回true,y.equals(x)也應返回true3、傳遞性 任何引用x、y和z,當x.equalse(y)和y.equalse(z),那…

Password Creator(HTA)

<!--- 功能&#xff1a; 生成隨機密碼- 輸入&#xff1a; 用戶的設置- 輸出&#xff1a; 隨機密碼&#xff0c;同時拷貝到剪切板- 作者&#xff1a; maskx- 版本&#xff1a; v1.0- 歷史紀錄&#xff1a; 2007-7-11新建 - 創建時間&#xff1a; 200…

Julia 排坑指南

Julia 是一個高效的計算語言&#xff0c;據說性能和C有一拼。 Google也開始支持TPU的Julia&#xff0c; 個人覺得他的可視化比較厲害&#xff0c;下面是自己安裝過程的截圖&#xff0c;由于Julia的服務器在國外&#xff0c;所以下載的過程會出現一些不可描述的問題&#xff0c;…

Arts 第十九周(7/22 ~ 7/28)

ARTS是什么&#xff1f;Algorithm&#xff1a;每周至少做一個leetcode的算法題&#xff1b;Review&#xff1a;閱讀并點評至少一篇英文技術文章&#xff1b;Tip&#xff1a;學習至少一個技術技巧&#xff1b;Share&#xff1a;分享一篇有觀點和思考的技術文章。 Algorithm 深度…

難過的要命。。。。。。

請允許我這樣叫幾下&#xff0c;我知道自己是個老姑娘了&#xff0c;不能像小女孩那樣碰到點不開心的事就一哭二鬧三上吊。我不哭不鬧更不會傻得去上吊&#xff0c;我還有幾十年的大好日子要過呢&#xff0c;我兒子還沒生呢。現在我們還沒有正式的攤牌&#xff0c;應該說只差最…

基于.NET2.0的System.Net.Mail發送郵件Demo

第一種: //emailaddress郵件接收者地址 //mailcontent郵件主體內容 //mailtitle郵件標題 //mailsubject郵件主題 public bool SendMail(string emailaddress,string mailcontent,string mailtitle,string mailsubject) { …

美國美國,USA USA

外派美國微軟接的項目職位名稱&#xff1a;開發主管&#xff08;SDE LEADER&#xff09; 工作城市&#xff1a;Redmond 職位要求: Good English communicationGood SQL and C# .net framework experienceBackend developmentBI knowledge (he is expected to deal with millio…

Windows Server 2016之RDS配置證書

證書我們可以自己創建也可以到阿里云申請&#xff0c;一次申請可以用一年&#xff0c;&#xff08;自己創建的證書是不受信任的&#xff09;所以我們在阿里云上申請的&#xff0c;下面我們就把申請到的證書下載下來&#xff0c;放到一個文件夾里&#xff0c;并解壓接下來我們就…

升級tomcat7.0之后的問題

學習web也有幾天了&#xff0c;今天把tomcat改成7.0的之后老是出現嚴重警告&#xff1a; 嚴重: The web application [/struts2_0100] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10](value[com.opensymphony.xwork2.inject.Conta…

慎重對待青霉素皮試

青霉素類藥不同品種間存在交叉過敏關系。 所以&#xff0c;中國藥典規定&#xff0c;青霉素類藥物在注射前必先使用青霉素鈉&#xff08;鉀&#xff09;及氯化鈉注射液配制的溶液做皮內敏感試驗。皮試液濃度為每毫升500單位&#xff0c; 皮內注射0.1毫升&#xff0c;陽性反應者…

2018阿里云雙11拼團大促主會場全攻略

為什么80%的碼農都做不了架構師&#xff1f;>>> 摘要&#xff1a; 在雙十一這個一年唯一一次的大幅度降價促銷日&#xff0c;怎樣才能花最少的錢配置最特惠的云服務&#xff1f;云棲社區特為各位開發者奉獻出省錢大法如下&#xff01; 2018阿里云雙十一拼團大促活動…

匿名用戶訪問用發布站點模板創建網站的列表項時要求登錄的問題解決

因為發布站點中的一個Feature被打開了&#xff0c;造成將列表FormPage的查看給Lock了&#xff0c;所以需要登錄&#xff0c;將其關閉就OK了。哈哈。英文KB&#xff1a;Users are unexpectedly prompted to enter their credentials when they access a list in a Windows Share…

知識點1: 進度條隨數據變化,并添加漸變樣式

效果圖&#xff1a; dom&#xff1a; //  進度條             <div class"progress" :style"styleObj1"><div class"point"></div></div>//  數據容器<div class"precent"><counte…

第三篇.python編輯器和集成環境01

修改python的鏡像源 使用pip可以提高網速\Lib\site-packages\pip\models\index.py文件&#xff0c;將PYPI的值改為你所需要的鏡像源即可&#xff0c;例如改為豆瓣鏡像源&#xff1a; #PyPI Index(https://pypi.python.org/) PyPI Index(https://pypi.douban.com/) 轉載于:h…

常用SQL語句技法

下列語句部分是Mssql語句&#xff0c;不可以在access中使用。 SQL分類&#xff1a; DDL—數據定義語言(CREATE&#xff0c;ALTER&#xff0c;DROP&#xff0c;DECLARE) DML—數據操縱語言(SELECT&#xff0c;DELETE&#xff0c;UPDATE&#xff0c;INSERT) DCL—數據控制語言(GR…

JSP2.0中Simple Tag介紹

JSP2.0中為了簡化標簽的復雜性&#xff0c;增加了制作Simple Tag的標簽類SimpleTagSupport類。 SimpleTagSupport類是實現SimpleTag接口的。它只需要實現一個doTag()方法即可&#xff0c;而不需要一堆回傳值。 舉例說明&#xff1a; 例1&#xff1a;HelloSimpleTag標簽 第一步&…