つまりは
ジオメトリの境界ボックスを基準に、指定したポイントの相対位置を返します。
ということらしい。基本的には
vector relbbox(<geometry>geometry, vector position)
この構文。
geometryは何番目のインプット?のgeometryかって指定だから最初のうちは0とかせいぜい1しか使わない。そのgeometry内でのpositionの相対位置(つまり0~1)を返す。 ちなみにgeometryの指定は飛ばすことができるみたいで
vector relbbox(vector position)
って書くこともできる。(ただしこの形式は今後消される可能性あり。)
ちなみにExpression記法?として
$BBX = relbbox(@P).x $BBY = relbbox(@P).y $BBZ = relbbox(@P).z
と同義らしい。
ex1) Y座標の相対的な大きさに比例してX座標をずらす。(→加算)
@P.x = @P.x + relbbox(0, @P).y * ch("strength");
ex2) Y方向の相対的な大きさに比例してXZが広げる/細める。(→乗算)
@P.x = @P.x * pow(ch("strength"), relbbox(0, @P).y); @P.z = @P.z * pow(ch("strength"), relbbox(0, @P).y);
※strengthの値を1以下にすれば先端はとがる。
ex3) Y座標の相対的な大きさに比例してXY平面を曲げる。
float bby = relbbox(@P).y; @P.x = @P.x * cos(radians(bby * ch("strength"))) - @P.y * sin(radians(bby * ch("strength"))); @P.y = @P.x * sin(radians(bby * ch("strength"))) + @P.y * cos(radians(bby * ch("strength")));
ただ結局
relative + box ?
rel +b? + box ?
わからないままである。