小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

【微筆記】houdini16中Geometry solver 案例制作

 cghunter 2021-04-16

——  微資訊 · 微課程  ——

利用零碎時(shí)間,走上超神之路!


houdini sovler探索教程,以一個(gè)案例為主為最終效果(如下圖)詳細(xì)講解了點(diǎn),線(xiàn),面vex創(chuàng)建和構(gòu)建原理,還有各種基礎(chǔ)的內(nèi)容。最后案例不算難,入門(mén)級(jí)別,不過(guò)看最后渲染效果還是不錯(cuò)的。小編把一些關(guān)鍵知識(shí)點(diǎn)筆記分享出來(lái),希望對(duì)大家有所幫助。

課程目錄

01課程介紹

02案例的理論分析

03添加點(diǎn)

04創(chuàng)建和可視化一個(gè)隨機(jī)向量

05添加到sop solver中

06點(diǎn)→頂點(diǎn)→面的生成理論

07houdini中實(shí)現(xiàn)PVP理論

08法線(xiàn)

09變量VS屬性

010VEX和vops

011解決屬性和變量的問(wèn)題

012解決屬性和變量的問(wèn)題-houdini VEX

013wire線(xiàn)生長(zhǎng)原理

014wire 線(xiàn)生長(zhǎng)解算器-刪除隨機(jī)點(diǎn)

015創(chuàng)建開(kāi)始和結(jié)束的組

016查找最短路徑和矢量算法

017案例-創(chuàng)建和可視化點(diǎn)

018案例-添加拓?fù)浼?xì)節(jié)

019案例-導(dǎo)入logo

020案例-優(yōu)化logo

021案例-額外細(xì)節(jié)

學(xué)習(xí)筆記

01課程介紹

02案例的理論分析

需要掌握的知識(shí)點(diǎn)如下

使用solver的作用就是可以基于上一幀的效果進(jìn)行疊加計(jì)算

添加隨機(jī)矢量方向,然后不斷疊加偏移

03添加點(diǎn)

在空間中創(chuàng)建點(diǎn)的方法

add節(jié)點(diǎn),可以設(shè)定指定的點(diǎn)位置

wrangle節(jié)點(diǎn),需要把層級(jí)切換為 detailed(once),這個(gè)意義就是只運(yùn)行一次,不需要對(duì)所有點(diǎn)/元素進(jìn)行遍歷處理一遍。

使用vex函數(shù) addpoint(輸入端,點(diǎn)位置P),注意矢量的寫(xiě)法{},下面這個(gè)就在原點(diǎn)創(chuàng)建一個(gè)點(diǎn)。

04創(chuàng)建和可視化一個(gè)隨機(jī)向量

對(duì)剛才創(chuàng)建的點(diǎn)創(chuàng)建一個(gè)隨機(jī)的vector矢量屬性,添加多要給wrangle,設(shè)置層級(jí)為point,因?yàn)槭菍?duì)輸入的所有點(diǎn)處理(這里當(dāng)然只有一個(gè)點(diǎn))

vex中創(chuàng)建局部變量和屬性的寫(xiě)法不一樣

vector direction這個(gè)寫(xiě)法是創(chuàng)建局部變量,只能在本wrangle中進(jìn)行訪(fǎng)問(wèn)。不會(huì)創(chuàng)建任何屬性,所以在spreadsheet中不會(huì)出現(xiàn)direction這個(gè)屬性,使用visualize節(jié)點(diǎn)也不可以查看(因?yàn)椴榭磳?duì)象是屬性才行)

v@direction的寫(xiě)法是創(chuàng)建屬性;

至于是要?jiǎng)?chuàng)建屬性還是局部變量,要看自己需求;沒(méi)必要的情況下盡量不要?jiǎng)?chuàng)建屬性,因?yàn)檫@會(huì)增加內(nèi)存和電腦運(yùn)行資源,緩存到硬盤(pán)也會(huì)增加占據(jù)空間。

由于這里需要可視化操作,所以使用了屬性;

v@direction = rand({1,0,0}+@Frane);//每一幀都取隨機(jī)值,不過(guò)這里有個(gè)問(wèn)題,因?yàn)閞and()函數(shù)返回的是0-1的空間,所以最終xyz都會(huì)在正區(qū)域空間中,后面會(huì)處理的。

@P =@P+ @direction;把這個(gè)隨機(jī)的矢量疊加給這個(gè)點(diǎn)的位置,那每一次點(diǎn)的位置都會(huì)發(fā)生隨機(jī)偏移

05添加到sop solver中

當(dāng)我們播放時(shí)間線(xiàn)的時(shí)候,上面我們實(shí)現(xiàn)了點(diǎn)每一幀的都在變化,但是之前變化的點(diǎn)沒(méi)有保存,所以這時(shí)候我們需要在solver進(jìn)行疊加計(jì)算。

在solver中鏈接到previous frame

06點(diǎn)→頂點(diǎn)→面的生成理論

關(guān)于點(diǎn),頂點(diǎn)和面(線(xiàn))的關(guān)系,公眾號(hào)之前有篇文章做過(guò)詳細(xì)講解

【微課程】houdini 幾何體的層級(jí)關(guān)系,頂點(diǎn)是什么?邊在哪里? _CG獵人

07houdini中實(shí)現(xiàn)PVP理論

使用3個(gè)函數(shù),分別是addpoint()創(chuàng)建點(diǎn)函數(shù) addprim()創(chuàng)建面函數(shù),和addvertex()創(chuàng)建頂點(diǎn)函數(shù)

和上面文章分析過(guò)

點(diǎn)可以單獨(dú)存在,但是頂點(diǎn)不能單獨(dú)存在,而頂點(diǎn)是鏈接點(diǎn)和面/線(xiàn)的橋梁。也就是說(shuō),如果想創(chuàng)建線(xiàn)和面,只有point是不行的,必須創(chuàng)建vertex頂點(diǎn)

所以出現(xiàn)下面感覺(jué)重復(fù)的代碼

addpoint無(wú)需依賴(lài)任何東西直接創(chuàng)建,只要設(shè)置好點(diǎn)的位置就可以創(chuàng)建,視圖中也會(huì)有點(diǎn)出現(xiàn);

addprim(端口,prim的類(lèi)型) 雖然添加了prim面但是視圖中不會(huì)有任何面,原因就是我們還需要?jiǎng)?chuàng)建頂點(diǎn);

addvertex(輸入端,面需要,點(diǎn)序號(hào))頂點(diǎn)創(chuàng)建需要3個(gè)參數(shù),輸入端,面序號(hào),點(diǎn)序號(hào),再次證明了只有存在面/線(xiàn)的時(shí)候才會(huì)存在頂點(diǎn)。單獨(dú)的point不需要任何頂點(diǎn)。

在鏈接面的時(shí)候注意默認(rèn)是按點(diǎn)需要號(hào)進(jìn)行鏈接的

08法線(xiàn)

點(diǎn)順序的鏈接方向定義了法線(xiàn)的朝向,也就是定義了面的正反過(guò)方向

我們這里只需要兩個(gè)點(diǎn)鏈接成線(xiàn)就行,使用prim類(lèi)型為polyline

09變量VS屬性

再次對(duì)比變量和屬性的區(qū)別,局部變量只存在于wrangle節(jié)點(diǎn)自身,不會(huì)形成屬性,同時(shí)也不能被wrangle以外的節(jié)點(diǎn)調(diào)用。

無(wú)論是變量還是屬性,都講究數(shù)據(jù)類(lèi)型匹配,比如浮點(diǎn)和浮點(diǎn),整形和整形,矢量和矢量;對(duì)于@ptnum這個(gè)代表是點(diǎn)需要,肯定是整形,因?yàn)椴粫?huì)存在第1.5個(gè)點(diǎn)這種小數(shù)形式。

如果點(diǎn)特別多,多余的屬性會(huì)拖慢電腦運(yùn)行效率

010VEX和vops

vops是vex中的可視化編程,使用節(jié)點(diǎn)替代了vex中的函數(shù)。

vex會(huì)更加簡(jiǎn)潔,vop可以以vex形式查看,但是會(huì)有更加復(fù)雜的代碼結(jié)構(gòu),因?yàn)橐骖櫤透鞣N預(yù)設(shè)。

011解決屬性和變量的問(wèn)題

如何讓生成的點(diǎn)隨著時(shí)間漸變

基于時(shí)間@Time或者@Frame,做一個(gè)remap過(guò)程,最后控制Alpha或者pscale屬性

012解決屬性和變量的問(wèn)題-houdini VEX

創(chuàng)建一個(gè)box調(diào)整長(zhǎng)寬厚度,scatter進(jìn)行撒點(diǎn),添加wrangle進(jìn)行屬性控制,放進(jìn)solver中進(jìn)行迭代計(jì)算。

本質(zhì)上就是Cd.r隨著時(shí)間增加遞減;

013wire線(xiàn)生長(zhǎng)原理

臨近點(diǎn)之間相減獲得運(yùn)動(dòng)矢量

014wire 線(xiàn)生長(zhǎng)解算器-刪除隨機(jī)點(diǎn)

基于@ptnum的隨機(jī)刪除點(diǎn),自定義預(yù)制控制,因?yàn)閞and函數(shù)返回的是0-1

rand()函數(shù)還有一個(gè)第二個(gè)參數(shù) seed,可以用來(lái)定義隨機(jī)種子值

使用函數(shù) removepoint(輸入端口,點(diǎn)序號(hào))

015創(chuàng)建開(kāi)始和結(jié)束的組

使用sphere作為范圍選擇點(diǎn)組作為開(kāi)始組

groupbyrange設(shè)置解算組 5選一

016查找最短路徑和矢量算法

添加findshortestspath查找最短路徑節(jié)點(diǎn),設(shè)置之前分好的開(kāi)始組合結(jié)束組

output paths輸出鏈接類(lèi)型為 from any start to each end模式,從任意開(kāi)始組開(kāi)始到每一個(gè)結(jié)束點(diǎn)組

添加carve節(jié)點(diǎn),對(duì)線(xiàn)進(jìn)行裁切,secondU對(duì)點(diǎn)進(jìn)行裁切,創(chuàng)建wrangle節(jié)點(diǎn),設(shè)置屬性N

基于點(diǎn)的位置相減獲得法線(xiàn)方向。

017案例-創(chuàng)建和可視化點(diǎn)

對(duì)N進(jìn)行normalize ,然后設(shè)置orient屬性,值為N的倍數(shù),倍數(shù)定義

018案例-添加拓?fù)浼?xì)節(jié)

增加grid的分段數(shù),然后再findshortestpath后面添加smooth,之后再添加carve進(jìn)行裁切(感覺(jué)本教程最酷的地方就在這里。

019案例-導(dǎo)入logo

abc文件導(dǎo)入logo,設(shè)置大小和調(diào)整位置,y軸旋轉(zhuǎn)動(dòng)畫(huà)

鏈接到solver 的input2中,使用Attributetranfer對(duì)對(duì)位置P進(jìn)行屬性傳遞,對(duì)范圍動(dòng)畫(huà)控制設(shè)置

020案例-優(yōu)化logo

對(duì)logo進(jìn)行pointfrom volume獲得更多的點(diǎn)

021案例-額外細(xì)節(jié)

可以調(diào)用N對(duì)P位置疊加,設(shè)置動(dòng)畫(huà)設(shè)置。

獲得教程的方法:

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章