最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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(門格海綿)的評論 (共 條)

分享到微博請遵守國家法律
句容市| 抚顺市| 兰溪市| 临朐县| 罗田县| 郸城县| 临武县| 剑川县| 南召县| 合阳县| 通化市| 遵化市| 灵武市| 通海县| 北票市| 铜陵市| 孝义市| 宁乡县| 修武县| 桐庐县| 比如县| 柳江县| 开封县| 肇东市| 扎鲁特旗| 佛坪县| 晋宁县| 景德镇市| 长白| 大同县| 榆林市| 万源市| 台州市| 宜良县| 汾阳市| 建宁县| 贵南县| 治多县| 泾川县| 扶沟县| 城口县|