完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類(lèi)型
* 企業(yè)名稱(chēng)
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請(qǐng)先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

5cdd2dc095060.jpg

Dynamo生成精美復(fù)雜的浮雕(二)

發(fā)布于:2021-06-29 10:11:39

網(wǎng)友投稿

更多

本文來(lái)自牛侃BIM的南澤有木

一、平面浮雕

1.1選取圖片(通過(guò)Dy將圖片倒入到我們的畫(huà)布中,并讀取到圖片的尺寸信息)

01.png

1.2接下來(lái),我們將得到的尺寸值長(zhǎng)寬一同縮放一個(gè)比例m,這個(gè)比例值m可以理解為每隔一個(gè)比例值m的間距創(chuàng)建一條橫/豎向網(wǎng)格線,然后,將縮放后的網(wǎng)格線數(shù)量給到Image.Pixels這個(gè)節(jié)點(diǎn)上(x、y對(duì)應(yīng)長(zhǎng)寬網(wǎng)格數(shù)量,Image輸入我們的圖片即可),這里需要注意的一點(diǎn)是該節(jié)點(diǎn)的x/ySamples接受的是一個(gè)Int整數(shù),雖然我們給的橫縱網(wǎng)格線數(shù)量值不是Int,但也不會(huì)影響該節(jié)點(diǎn)工作(節(jié)點(diǎn)將會(huì)自動(dòng)把該值四舍五入為一個(gè)整數(shù),理解一下,這里和把輸入值int()取整數(shù)是不同的);另外的,我們需要?jiǎng)?chuàng)建兩列橫縱向的網(wǎng)格的分量,用CodeBlock代碼塊輸入“0..width..#Math.Round(_w)”、“height..0..#Math.Round(_h)”(后面會(huì)解釋一下為什么height數(shù)組是從大到小排列的)。

02.png

下面是我們生成點(diǎn)的PythonScript中的代碼:

03.jpg

(這里稍作解釋一下,取橫向網(wǎng)格、豎向網(wǎng)格的值作為我們創(chuàng)建點(diǎn)的x、z坐標(biāo),取色彩值--這里選用的是Red強(qiáng)度值,并將其縮放10倍,添加“-”號(hào)是為了讓浮雕向y的反方向凸出。由上述代碼可生成一個(gè)二維數(shù)組,每一列一維數(shù)組對(duì)應(yīng)由上之下每一列點(diǎn)組,并且一維數(shù)組的點(diǎn)從左向右排列)

04.jpg

05.png

1.3既然這里空間凹凸程度不同的二維點(diǎn)組我們有了,接下來(lái),我們需要?jiǎng)?chuàng)建一些系列的子Surfaces來(lái)拼湊出整體的畫(huà)面。

06.jpg

在這里,我們新建一個(gè)Python腳本代碼,代碼的內(nèi)容如下:

07.jpg

代碼的思路是將每一行依次取序號(hào)為0到-2的所有點(diǎn),暫且稱(chēng)之為點(diǎn)P1,接著取同行次列的點(diǎn)P2、以及同列次行的點(diǎn)P3,將三點(diǎn)連成閉合的線并形成facea面(即下圖三個(gè)紅圈內(nèi)的點(diǎn)),于此同時(shí)取綠色圈中的三個(gè)點(diǎn)形成faceb。依次類(lèi)推)

08.png

這里解釋一下之前的“height..0..#Math.Round(_h)”為什么從大到小排列,究其原因,是因?yàn)镮mage.Pixels這個(gè)節(jié)點(diǎn)提取圖片的顏色ARGB值從按照從上至下,從左至右的順序進(jìn)行的,生成的ARGB二維數(shù)組是由上而下的每一列由左至右的點(diǎn)數(shù)組構(gòu)成的(理解下)

09.png

這是最終的效果:

10.png

(該效果精度取值為3,值越低,精度越高,相應(yīng)的會(huì)消耗更長(zhǎng)的時(shí)間)

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:Dynamo生成精美復(fù)雜的浮雕(一)

下一篇:Dynamo生成精美復(fù)雜的浮雕(三)