下載app免費(fèi)領(lǐng)取會員
本文來自牛侃BIM的南澤有木
一、平面浮雕
1.1選取圖片(通過Dy將圖片倒入到我們的畫布中,并讀取到圖片的尺寸信息)
1.2接下來,我們將得到的尺寸值長寬一同縮放一個比例m,這個比例值m可以理解為每隔一個比例值m的間距創(chuàng)建一條橫/豎向網(wǎng)格線,然后,將縮放后的網(wǎng)格線數(shù)量給到Image.Pixels這個節(jié)點(diǎn)上(x、y對應(yīng)長寬網(wǎng)格數(shù)量,Image輸入我們的圖片即可),這里需要注意的一點(diǎn)是該節(jié)點(diǎn)的x/ySamples接受的是一個Int整數(shù),雖然我們給的橫縱網(wǎng)格線數(shù)量值不是Int,但也不會影響該節(jié)點(diǎn)工作(節(jié)點(diǎn)將會自動把該值四舍五入為一個整數(shù),理解一下,這里和把輸入值int()取整數(shù)是不同的);另外的,我們需要創(chuàng)建兩列橫縱向的網(wǎng)格的分量,用CodeBlock代碼塊輸入“0..width..#Math.Round(_w)”、“height..0..#Math.Round(_h)”(后面會解釋一下為什么height數(shù)組是從大到小排列的)。
下面是我們生成點(diǎn)的PythonScript中的代碼:
(這里稍作解釋一下,取橫向網(wǎng)格、豎向網(wǎng)格的值作為我們創(chuàng)建點(diǎn)的x、z坐標(biāo),取色彩值--這里選用的是Red強(qiáng)度值,并將其縮放10倍,添加“-”號是為了讓浮雕向y的反方向凸出。由上述代碼可生成一個二維數(shù)組,每一列一維數(shù)組對應(yīng)由上之下每一列點(diǎn)組,并且一維數(shù)組的點(diǎn)從左向右排列)
1.3既然這里空間凹凸程度不同的二維點(diǎn)組我們有了,接下來,我們需要創(chuàng)建一些系列的子Surfaces來拼湊出整體的畫面。
在這里,我們新建一個Python腳本代碼,代碼的內(nèi)容如下:
代碼的思路是將每一行依次取序號為0到-2的所有點(diǎn),暫且稱之為點(diǎn)P1,接著取同行次列的點(diǎn)P2、以及同列次行的點(diǎn)P3,將三點(diǎn)連成閉合的線并形成facea面(即下圖三個紅圈內(nèi)的點(diǎn)),于此同時取綠色圈中的三個點(diǎn)形成faceb。依次類推)
這里解釋一下之前的“height..0..#Math.Round(_h)”為什么從大到小排列,究其原因,是因為Image.Pixels這個節(jié)點(diǎn)提取圖片的顏色ARGB值從按照從上至下,從左至右的順序進(jìn)行的,生成的ARGB二維數(shù)組是由上而下的每一列由左至右的點(diǎn)數(shù)組構(gòu)成的(理解下)
這是最終的效果:
(該效果精度取值為3,值越低,精度越高,相應(yīng)的會消耗更長的時間)
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
推薦專題