您當前的位置:首頁 > 娛樂

Houdini:製作飄揚的國旗

作者:由 David Chan 發表于 娛樂時間:2019-10-08

前兩天看了《我和我的祖國》,電影裡有很多動人情節。趁著十一長假,祖國70週年生日之際,不妨做一面飄揚的國旗,為祖國喝彩。

按照標準繪製國旗

首先學習一下標準的國旗是如何繪製的。

Houdini:製作飄揚的國旗

根據以上標準,以頂檢視(X正向右,Z正向下)為例,我們可以提煉出核心資料:

國旗長30個標準單位,寬20個標準單位,紅色。

五角星有5顆,大的半徑為3個單位,小的半徑為1個單位,黃色。

大五角星的座標為(5,5),小五角星從上到下的座標為(10,2),(12,4),(12,7),(10,9)

每個小五角星的尖角朝向大五角星的中心。

根據以上資訊,我們可以分成以下幾個步驟實現國旗圖案。

繪製一標準單位半徑的五角星

以點為例項,計算五角星的位置、縮放、朝向等屬性。

將標準五角星按屬性複製到點

將五角星與紅旗合併

繪製標準五角星有很多辦法。可以從正五邊形(圓分5段)切出來,也可以直接按照幾何關係算好五角星的點座標,連成幾何體。我使用了矩陣變換的方式來生成頂點,最後連線成五角星。

首先生成十個點,座標全在(0,0,-1),按照順序將其按照等份額角度旋轉,最後將奇數點按照比例縮小。之後就可以透過add節點將這十個點連線成五角星了。

Houdini:製作飄揚的國旗

先在原點生成五個點,計算五角星的座標,縮放和旋轉。使用

dihedral

計算二面角四元數,將指向(0,0,-1)的尖角朝向大五角星中心。

Houdini:製作飄揚的國旗

然後將五角星複製到點,可以觀察到大小,位置和朝向都是正確的:

Houdini:製作飄揚的國旗

最後合併五角星與紅旗。

Houdini:製作飄揚的國旗

這個時候就已經可以使用正交鏡頭渲染成標準的平面國旗圖案了,如題圖。

除了上面的方法,我們當然也可以一個一個手擺五角星,調整其位置縮放旋轉,不過這樣並不方便,有的時候也不精確。對於這種有規可循的圖案,使用程式化思維往往能快速準確地解決問題。

烘焙貼圖

為了保證可重用性,我們一般不把幾何體湊成的圖形直接使用。使用貼圖是比較常見且通用的做法,如果我們想把旗幟換成不同的圖案,那麼我們只需替換材質上的貼圖即可,而不必重新模擬。

新增UVTexture節點,為頂點新增UV資訊

Houdini:製作飄揚的國旗

使用GameDev工具套件裡的Simple Baker節點,烘焙頂點顏色到圖片檔案

Houdini:製作飄揚的國旗

使用Vellum模擬布料

Vellum是Houdini17中新加的用於模擬柔體的工具集,我們用它來模擬旗幟可以非常簡單方便。

新建一個Grid,新增UV,我們可用旗杆套做包圍盒決定固定點

Houdini:製作飄揚的國旗

添加布料屬性,新增旗幟左側一列到固定約束

Houdini:製作飄揚的國旗

新增Vellum Solver,設定風速等屬性

Houdini:製作飄揚的國旗

不斷調整引數,觀察模擬結果

新增材質渲染

簡單的新增一下旗杆部分,憑記憶還原一下電影裡的樣子,配上材質

Houdini:製作飄揚的國旗

注意旗面的材質,顏色使用上面生成的貼圖

Houdini:製作飄揚的國旗

渲染成影片,大功告成,祝祖國越來越好

Houdini:製作飄揚的國旗

飄揚的國旗

https://www。zhihu。com/video/1163655295204552704

更多文章

透過Houdini邁向程式化(目錄)

標簽: 五角星  新增  國旗  貼圖  座標