真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Unity中實現(xiàn)基于筆觸的實時渲染

這篇文章給大家介紹如何在Unity中實現(xiàn)基于筆觸的實時渲染,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的崇仁網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

什么是基于筆觸的渲染

基于筆觸的渲染(stroke-based rendering,下稱SBR),簡單的講就是根據(jù)圖像生成筆觸,然后再用筆觸對圖像進(jìn)行重繪。這個過程實際上是模仿畫家實際畫畫的過程,也就是觀察->理解->表達(dá)的過程,畫畫的時候有一句話叫意在筆先也就是這個意思。具體可以看這篇關(guān)于SBR的綜述:luthuli.cs.uiuc.edu/~da (luthuli.cs.uiuc.edu/~daf/courses/ComputerGraphics/01210867.pdf)。

為什么要在Unity中實現(xiàn)SBR

研究生的時候我是研究非真實性渲染(Non-Photorealistic Rendering,下稱NPR)的,發(fā)現(xiàn)本質(zhì)上有兩種方法,一種是基于經(jīng)驗的研究方法,也就是沒有理論根據(jù),根據(jù)實驗結(jié)果來設(shè)計渲染方法。好像有個圖形學(xué)大佬說過:看起來是對的,就是對的。大概說的就是基于經(jīng)驗的研究方法。還有一種是基于物理模擬的研究方法,比如研究顏料的實際混色和水分的流動等等。

我發(fā)現(xiàn)基于經(jīng)驗的方法有點憑感覺,無論是設(shè)計算法還是評判結(jié)果都不好弄?;谖锢砟M的研究方法又是太笨重,只是在計算機中再現(xiàn)了工具和顏料,而怎么畫還是靠藝術(shù)家手工去畫。于是我在想,怎么讓計算機真的像藝術(shù)家一樣去思考,去表達(dá)呢。

剛好以前接觸過一點計算機視覺,于是在想有沒有一種基于視覺的研究方法,讓計算機去理解圖像,然后像人一樣去畫,也就是渲染,而不是用一堆濾波器。

那時候用了opencv去做圖像分割,然后計算圖像的顯著度(saliency),再根據(jù)顯著度生成筆刷,最后用cuda并行地渲染筆刷,做了這樣一個離線版本的SBR。效果還不錯,但是工作之后這個研究就放下了。

最近開始學(xué)習(xí)Unity的Compute Shader,發(fā)現(xiàn)跟cuda很像,于是又想起了SBR,感覺用Unity可以在后處理中實現(xiàn)的SBR,于是做了一些嘗試。

具體的實現(xiàn)方法

所有處理都寫在post processing stack的render里面,流程大概如下:

如何在Unity中實現(xiàn)基于筆觸的實時渲染

其中梯度張量的經(jīng)過高斯平滑后,稱為平滑化梯度張量,求法如下:

如何在Unity中實現(xiàn)基于筆觸的實時渲染

IGa為高斯濾波的卷積運算,px為sobel算子計算的x方向的梯度,py為sobel算子計算的y方向的梯度。至于為什么用SVD分解求得的第二特征向量來計算旋轉(zhuǎn)矩陣,那是因為第一特征向量(主特征向量)表明的是變化最大的朝向,而第二特征向量與之正交,所以可以用來表明筆觸的流向。

渲染結(jié)果:

左邊為原幀,右邊為SBR渲染后的效果:

基于筆觸的實時渲染

另外,筆觸的間隔和的大小可以調(diào)節(jié)出不同的效果:

筆觸的間隔和的大小可以調(diào)節(jié)

不同筆觸紋理可以有不同的渲染效果:

如何在Unity中實現(xiàn)基于筆觸的實時渲染
如何在Unity中實現(xiàn)基于筆觸的實時渲染

代碼

(github.com/alpacasking/SBR)

時間有限,現(xiàn)在只寫了最基本的流程,其實還有很多東西值得做,比如:

  • 根據(jù)深度紋理檢測前景和背景,從而生成不同密度和大小的筆觸

  • 利用CV相關(guān)知識分析理解圖像再生成筆觸

  • 同時用不同的筆觸紋理渲染

  • 讓每幀之間的筆觸銜接得流暢

  • 可以為油畫,水彩風(fēng)格等做進(jìn)一步的研究

有時間的話會慢慢加上的,各位有興趣的話也可以自行魔改。

關(guān)于如何在Unity中實現(xiàn)基于筆觸的實時渲染就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


本文題目:如何在Unity中實現(xiàn)基于筆觸的實時渲染
標(biāo)題URL:http://weahome.cn/article/ihjggi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部