ども、大腸がん検診にひっかかって、
尻を掘られたTERAです。
まあ、尻を掘られただけで、
特に問題はなかったのですが、健康大事w
というわけで、
Houdiniネタです。
3D系のツールは何でも
ノードになって来た今日この頃、
便利とは思うのですが、
コードの方が便利なことが多々あります。
というわけで、Houdiniでは、
wrangleノードというのが用意されてます。
なんというか、vop sopが
書いてくれるコードを自分で書けみたいな。
実行速度も、かなり早いようです。
で、調べてみたのですが、
新たな VEX Expressionを覚えないとダメっぽい
チュートリアルを確認すると
c/c++やRenderman Shading Language
と似てるっては書いてありますね。
これは、メンドクサイと思っていたのですが、
どうやらこれ、VertexShaderとほぼ、同じ考え。
入って来たポイント事の処理なようです
Attributeもがんがん加えられるので楽チンチンです
というわけで、平面を太らせる ノードを作ってみました
Point Wrangle
vector vec,vecY = set(0,1,0),v1,v2; i@fID = (@ptnum - 1) % @Npt; i@bID = (@ptnum + 1) % @Npt; v1 = normalize(point(@OpInput1,"P",i@fID) - @P); v2 = normalize(point(@OpInput1,"P",i@bID) - @P); vec = v1 + v2; if(length(vec) <= 0.001) { vec = cross(v1,vecY); @N = vec; } else { if(dot(cross(v1,v2),vecY) > 0) vec *= -1; v1 = normalize(cross(v1,vecY)); normalize(vec); @N = vec / abs(dot(v1,vec)); } @P += @N * ch("width");
Parameter
Point Wrangle ノードに "width" の
floatパラメータを追加してます
思った事
-
条件がめんどくさかったので
(@ptnum - 1) % @Npt
を使ったけど下策だとおもわれ -
直線に並んだ時の処理が無かったため、
慌てて付け加え -
頂点IDに依存してるので、あまり使い勝手は良くないですが、
まあ、手始めの第一歩ということで。
近況
VR勉強会に行って来た オキュ欲しい :p
0 件のコメント:
コメントを投稿