VEX

VEX

ポイントのアトリビュートとグループを転写する

リダクションや曲線化などの処理を行ってポイント配置が変わりアトリビュートが消えた場合などに、元のポリラインからポイントアトリビュートを転写する。 ポイントのアトリビュートを転写する アトリビュート全種類を調べてコピーしていく。値はパラメトリ...
VEX

合計が1になるn個の乱数を返す

オブジェクトを並べる時に、最初と最後の位置は確定しているけど、途中はランダムに揺らぎのある配置にしたいような目的に使う関数。 // 合計が1になるn個の乱数を返す function float[] randomArray(int num; ...
VEX

境界外を考慮したRay Intersect

intersect()で判定が取れない場所も平面式を使い、近いプリミティブの平面を延長した平面とみなして衝突点を計算する。 // // 境界外を考慮したRay Intersect // // input0: 対象 // input1: 実際...
VEX

配列に順位をつける

アトリビュートに順位をつける アトリビュートに順位を割り振りたい場面で使うコード。 // // アトリビュートの順位をつける // // Run Over:Detail float data[]; int rank[]; for(int i...
VEX

関数を外にまとめる

VEXコードに毎回同じ関数を書くのではなく、外にまとめてアクセスする方法。 Wrangle SOPをつくり、関数だけを書き込む。 `chs("../functions/snippet")` 他のSOPの先頭に上のコードを書く。それ以降は普通...
VEX

辞書型をEnumのように使う

VEXを使っているとどうしてもEnumのような変数を使いたい場合があります。辞書型を使ってEnumのような使い方をしてみる。 Null SOPを用意する。 Edit Parameter Interfaceの画面を開き、Key-Value D...
VEX

イージングカーブ

Ease In Out Sin // Sin float easeInOutSin(const float x) { return -(cos(PI * x) - 1) / 2; } @P.y = easeInOutSin(@P.x); E...
VEX

VEXでの文字列操作

文字が含まれているかチェック string name = "abcdefghijk"; int flag = find(name, "cdef"); printf(sprintf('%g', flag) + '\n'); // 2 find...
VEX

VEXの配列操作

配列を要素を加える:append() 配列に配列を加えることもできる。 float array1[] = {1.2, 3.4, 5.6}; float array2[] = {4.0, 5.2, 1.8}; append(array1, a...
VEX

エッジの凹凸

ハーフエッジを使った凹凸判定 山折りのエッジのみをグループする // Run Over: Points // 事前にプリミティブに法線を設定している必要あり // int neighbours[] = neighbours(0, @ptnu...
スポンサーリンク