H16新機能 コンパイルブロック 7 – コンパイルブロックとPython その3


どうも篠島です。今回はコンパイルブロックとPythonのまとめです。

 

前の記事でも説明しましたが、コンパイルブロックで一つにまとめると、内部のSOPのキャッシュが作られません。PytnonでSOPの動詞を使う時も execute() メソッドを使って実行する時にインプットとアウトプットのジオメトリを同じにすると、コンパイルブロックと同じようにインプットジオメトリのデータを直接加工して上書きしているので途中にキャッシュが作られずメモリが節約されているのがわかると思います。なので下の図の様に色んなSOPの動詞が合った場合verb1~4、インプットジオメトリに直接上書きされてメモリが節約されます。ですがコンパイルブロックのように並列処理をしてるわけではありませんので注意。

 

これらのSOPの動詞は Side Effects がコンパイル対応SOPを作っている時に出来たものなので、まだ使えるSOP動詞の数は多くありません。下のようにPython Source Editor で下のコードを書いて Apply をクリックすると、動詞として使えるSOPの一覧がドバーっと出てきます。

 

Pythonコード書くのが面倒くさい人のために、下に動詞として使えるSOP一覧を載せておきます。SOP動詞の名前を下のように入力して動詞を使います。

verb = sops.nodeVerb(‘scatter::2.0’)
verb.execute(geo, [geo])

add groupcreate shrinkwrap::2.0 vdbrenormalizesdf
attribcast groupdelete skin vdbresample
attribcomposite grouppromote smooth::2.0 vdbreshapesdf
attribcopy grouprange solidify vdbsegmentbyconnectivity
attribcreate::2.0 grouprename sphere vdbsmooth
attribfromvolume grouptransfer stash vdbsmoothsdf
attribinterpolate inflate subdivide vdbtopologytosdf
attribpromote intersectionanalysis switch vdbtospheres
attribute intersectionstitch tetpartition vdbvectormerge
attribvop isooffset tetrahedralize vdbvectorsplit
blast line tetrasurface vdbvisualizetree
bonecapturebiharmonic matchtopology torus volumeanalysis
boolean::2.0 measure tube volumeblur
box merge unpack volumebound
circle name unpackpoints volumebreak
connectivity normal vdb volumecompress
convertvdb null vdbactivate volumeconvolve3
convertvdbpoints opencl vdbactivatesdf volumefeather
cop2net output vdbadvectpoints volumefft
cop2net pack vdbadvectsdf volumefromattrib
copytopoints packpoints vdbanalysis volumemerge
copyxform pointgenerate vdbclip volumemix
curve polycut vdbcombine volumereduce
delete polyfill vdbdiagnostics volumeresample
deltamush polyframe vdbfracture volumeresize
divide ray vdbfromparticles volumesdf
error resample vdbfrompolygons volumeslice
facet rest vdblod volumesplice
font reverse vdbmorphsdf volumevisualization
grid revolve vdbocclusionmask volumevop
groupcombine rewire vdbpointsgroup xform
groupcopy scatter::2.0 vdbprojectnondivergent xformaxis

 

 

なんでわざわざPython 使う必要があるのか・・・というと、Shelfツールとかに自分で独自のツールを作る場合に使えると思います。あとは何かの理由でわざわざSOPのネットワークを作りたく無い場合とか・・・? 普通の人は使う機会はほとんど無いと思います・・・。