光影之下(一)- 從Logo談起

計算機圖形學可以說是一門研究光與影的科學(當然不只研究光影),在渲染,3D重建,甚至3D列印,數字製造都有和光影相關的分支。不過今天我們要談一個略微奇怪的方向,就從我們的LOGO說起吧!

相信小夥伴們也注意到了吧,我們的LOGO是3D渲染的!

什麼?沒注意?再show一下:

它是怎麼做的呢,其實我們造了一個模型。就像這個動圖裡這樣,C字形加了一個小尾巴,看起來像G。一打光,就有一個C形的影子了。也就是我們GraphiCon的兩個開頭字母G,C。

(點擊圖片看動圖)

有這個想法也不是我們哪天突然開了個腦洞想出來的。其實在神書「哥德爾、艾舍爾、巴赫:集異璧之大成」的封面上就出現過這種效果,圖中這個幾何形狀從3個方向看分別投影出G(G?del),E(Escher)和B(Bach)3個字母。

這時候問題就來了,假如我們給出三個方向的影子作為輸入,怎麼生成這樣一個幾何形狀呢?還真有人想過這個事,2009年,現在都已經成為超級大牛的Niloy Mitra和Mark Pauly就發了這樣一篇文章,名叫Shadow Art[1],從幾何處理的角度解決了這個問題。

我們先從頭來看,這問題真的很難嗎?拿三幅圖在三個角度投個影求個交不就完事了?事實是這樣嗎?我們來試試!

先從「集異璧」開始吧:

我們在OpenSCAD里畫一個長長的「G」和它的影子:

再畫個「E」和「B」還有他們的影子:

再對它們求個交:

Bingo!成了,這不很簡單嘛~

唔,我們把「B」調大點試試:

求個交:

這什麼鬼,怎麼和說好的不一樣?是巧合吧,難道這模型太複雜了?

我們來試試簡單的形狀,比如三角形,方形和圓形:

開心地求個交:

什麼?還是不行?看來「GEB」能work才是巧合啊。。。看來這事不簡單啊!

兩位大牛也發現了這個問題,不過人家是大牛我是菜雞就是因為人家想到了解法我只是在這發獃。

讓我們來看看這該怎麼辦。

圖裡面綠色,粉色和紫色的投影部分就是本來屬於一個圖像但求交過程中被削去的的部分,或者叫做投影不一致的區域(inconsistent region),圖中的紅點就是一個投影不一致的像素(inconsistent pixel)。這樣一看就明白啦,我們的目標就是消除投影不一致的像素,那麼要麼我們在原圖裡砍掉這些投影不一致的像素(我們當然不想要這種),要麼就把其它視角的原圖稍微變個形讓這些投影不一致像素落到其它視角的圖像內,讓這種壞像素變成好像素好了。

就這麼簡單?就這麼簡單!

好吧,小夥伴們把傢伙們都拿出來,變形嘛,就用最常用的As-rigid-as-possible deformation(ARAP)好了,這個方法用一句話說起來就是盡量保持局部形狀不變的全局變形法,我們的M神會專門寫一篇文章好好講講As-rigid-as-possible deformation(ARAP)。

Anyway,「汽車人,變形!」

比如我們想把中間米老鼠腳上的投影不一致像素變成好像素,我們選一圈壞像素(紅色部分),找到他們在史努比視角和大力水手視角的對應點,然後用ARAP變形史努比和大力水手,使這些壞像素變成好像素,循環往複,最後就生成了新的史努比,米老鼠和大力水手。那麼他們再求個交,就成了這樣:

點擊看動圖

Done!

這時候或許有人會問(沒人問我自己問):你講半天為啥一個公式也沒有?

怪我咯?這篇文章裡面就一個公式也沒有!還是篇SIGGRAPH Asia

或許你覺得這種文章沒什麼用,可人家還真有幾篇follow up,借用投影和輪廓概念來建模的3D Modeling with Silhouettes[2],還有去年一篇算怎麼用人來擺影子的paper:Shadow Theatre: Discovering Human Motion from a Sequence of Silhouettes[3]

大家看的是不是意猶未盡?反正我是寫的停不下來。。。下一期「光影之下」會講講這篇文章里的另一個大牛Mark Pauly的代表性項目:Computaional caustics,敬請期待!(一大波公式正在接近中!!!)

References:

[1]: Shadow Art; Niloy J. Mitra, Mark Pauly; ACM SIGGRAPH Asia 2009.

[2]: Shadow Theatre: Discovering Human Motion from a Sequence of Silhouettes; Jungdam Won, Jehee Lee; SIGGRAPH 2016.

[3]: 3D Modeling with Silhouettes; Alec Rivers, Frédo Durand, Takeo Igarashi; SIGGRAPH 2010.

_(:3」∠)_ _(?ω?」∠)_ _(:з)∠)_ ∠( ? 」∠)_ _(:зゝ∠)_

請毫不猶豫地關注我們:

我們的網站:GraphiCon

知乎專欄:GraphiCon圖形控

公眾號:GraphiCon

如果你有什麼想法,建議,或者想加入我們,你可以:

給我們發郵件:[email protected]

加入我們的QQ群:SIQGRAPH(342086343)

加入我們的slack群:GraphiCon

本作品採用知識共享署名-非商業性使用-禁止演繹 4.0 國際許可協議進行許可。
推薦閱讀:

TAG:计算机图形学 | 计算机图形学和可视化 |