无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Houdini學習筆記038_Menger Sponge(門格海綿)

2022-10-10 19:06 作者:獨孤嘌呤  | 我要投稿

今天分享的VEX教程是一個簡單的分形結(jié)構(gòu)——門格海綿(Menger Sponge)的制作。

制作思路很簡單,但有一個地方困擾了我半天,希望知道的朋友能解釋一下。

給定一個初始點和邊長,當?shù)螖?shù)為0時,直接在初始點位置生成一個立方體,邊長即給定的邊長。每增加一次迭代,將原來的立方體分為3×3×3(=27)份,并去除體心和每個面的面心處的小立方體(共7個),剩下20個小立方體。小立方體的邊長為之前的1/3。

所以只需要得到每次迭代后的中心點坐標,以及立方體邊長,就可以拷貝出所有的小立方體。假設初始邊長為1,迭代n次后的立方體邊長則為:(1/3)^n。

box節(jié)點的Uniform Scale參數(shù)可設置如下:

這里的iterationsize都是自定義的參數(shù),分別為迭代次數(shù)和初始的立方體邊長。

接下來的關(guān)鍵是每次迭代的點坐標求取。對于每一個點,可以將其看作坐標原點,然后從(-1,-1,-1)到(1,1,1)的空間內(nèi)分布27個點坐標。除去(0,0,0)、(1,0,0)、(-1,0,0)、(0,0,1)、(0,0,-1)、(0,1,0)、(0,-1,0)這7個坐標,剩下的位置都生成新的點。

迭代使用的是For-Loop with Feedback節(jié)點,然后用point wrangle節(jié)點來創(chuàng)建點(對應函數(shù)為addpoint)。point wrangle節(jié)點中使用的是三層嵌套for循環(huán),得到27個點坐標,使用判斷條件 abs(x)+abs(y)+abs(z) > 1 即可篩選出需要保留的坐標。然后在原來的點坐標基礎上加上新的坐標值(需要乘以相應的邊長),就得到了新的點坐標。

原本我寫的代碼是:

pos = @P + pos*size;

可總是得不到正確的結(jié)果,后來將 @P 改成了 3*@P 才成功了,總感覺有些奇怪,感興趣的朋友可以幫忙分析下。

如果將上面的判斷條件改為 sum <= 1 則可以得到互補的結(jié)果,如下圖所示——

今天的分享就到這里,感謝大家的閱讀,下回見~

Houdini學習筆記038_Menger Sponge(門格海綿)的評論 (共 條)

分享到微博請遵守國家法律
垦利县| 丹凤县| 沿河| 精河县| 鄱阳县| 太仆寺旗| 吐鲁番市| 高要市| 吉安市| 赤城县| 兴山县| 贵阳市| 南昌县| 迭部县| 普陀区| 射洪县| 扬中市| 乌苏市| 巨鹿县| 蒙山县| 卢氏县| 随州市| 宜昌市| 曲阜市| 濮阳县| 南平市| 江华| 红安县| 孟州市| 犍为县| 鄂尔多斯市| 舟曲县| 黔西| 张家港市| 蓬安县| 融水| 兰西县| 南漳县| 深州市| 顺平县| 宜宾市|