Linkability Rules/ja
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
This article is out of date!
- 最大距離は2023年6月27日現在、54mから64mに引き上げられました。アップデートはこちらでアナウンスされました。Tech Updates Server Release 2023.06
プリム(オブジェクト)がリンク可能かどうか決定するのはいくらかの固定概念です。大抵の場合、より大きなプリムとオブジェクトは最小2mから最大54mのリンク間遠距離があるかもしれません。距離は各プリムの位置とX/Y/Xサイズによって決まり、形状、回転、切り込みや穴あけなどで変わったサイズで決まるわけではありません。
簡易概略
- 2つのプリムがリンク可能かどうかは、それらの形状と位置のみで決まります。(回転、穴、切り込みなどのような)他の性質は無視されます。リンク演算の手段は、プリムが形状変化していない(X、Y、Zのサイズが同じだけではなく、他の全てが'標準')長方形の箱として行なわれます。
- ヒュージプリムの例外: いずれかのサイズが10mを越える場合、それは10mのサイズとして扱います
- 極小時: 2つのタイニープリムはお互いが約2m以内の場合リンクされ得ます。
- 極大時: リンクされ得る最も大きなリンクされたオブジェクトは、直径54mの球体に収まらなければなりません。
比較的単純な解説
- 前述の箱の中に、変換する全オブジェクト内の全プリムを想像します。
- それぞれ存在している(結合された)オブジェクトを含んでいる箱を、完全に囲んでいる最小の球体を想像します。(個々のプリムを単一の箱で囲みます。)
- 各球体のサイズを3倍にして、それらの周囲にもう1m加えます(球体の中心は動かさない)
- それら球体が交わる場合、オブジェクトをリンクすることができます。このポイントのリンクされ得る全てをリンクします。
- それ以上リンクできなくなるまで、新しいリンクされたオブジェクトと、この手続きを繰り返します。
Kellyの簡易概略への試み:
- 2つの要素は、(ステルスツールを選ぶことで見れた)これらの境界となる箱が"リンク能力球体"内に完全に収まる場合リンクできます。
- リンク能力球体のサイズは直径2mから54mの間で、リンクされている2つの要素の大きさで決定します。
- 具体的な大きさは、両方のオブジェクトの境界となる箱の半径に2m足し、54mの限界へと上げた合計を3倍します。
- 2要素以上リンクする場合、上記の双方を包み込む大きさの1要素のルールにとってリンク可能な、いずれかの2要素として扱います。
- 全てがリンクされるまで繰り返します。
リンク能力の計算式の詳細は以下の項目を読みましょう。例と、全てをリンクできない場合に何がリンクされるのかを含んでいます。
詳細
2つのプリミティブをAとBとみなします。これらがリンク可能またはリンク不可能かどうかは、一方のオブジェクトの"境界となる球面"の端から、対角線上のほかの境界となる球面の距離計測によって決定して、2つの境界となる球面の半径が機能する最大リンク可能距離値を比較します:
(1) max_link_span = minimum( 3 * (radius_A + radius_B) + SMALLEST_MAX, LARGEST_MAX )
場所:
(3) SMALLEST_MAX = 1.0m (4) LARGEST_MAX = 54.0m (5) radius_X = プリミティブXの境界となる球体の範囲 (Figure A) (6) minimum(C, D) = CがDより少なければDで、それ以外はD
2つの境界となる球体の計測された長さが最大距離範囲以下の場合、相応するプリミティブはリンクされ得ます。数学的な説明を加えます:
(7) A_can_link_to_B = ( length(center_A - center_B) + radius_A + radius_B <= max_link_span )
境界となる球体はプリミティブのローカル境界となる箱を全て囲む最小の球体です。
ローカル境界となる箱はプリミティブの幾何学的中心に中心部があり、そのローカルフレーム側面はプリミティブの大きさと等しいです。
プリミティブの幾何学的中心はいくらかの切断、切り込み、ねじれ、傾きあるいは穴の操作に先立った、ローカルの左右対称の中心です。
プリミティブの境界となる球体は、単一の箱でもない限り、必ずしもシェイプの見込みで最もぎりぎりの球体であるわけではないことに注意しましょう。境界となる球体はプリミティブの位置と大きさでのみ決定し、いくらかの切断の切り込みと穴開けられたプリミティブは境界となる球体より著しく小さくなり、必ずしも中心近くではないでしょう。また、プリミティブのねじれと(または)切り込みは境界となる球体の外側に広がる隅になったかもしれません。リンク性能ルールが境界となる球体のみを当てにして以来、最終的にプリミティブの位置と形状でのみ決まるようになり、2つのプリムのリンク性能は外形と回転の変形とは無関係になりました。
TODO -- 私たちは直径の代わりに半径を表示する、新しいfigures_Aが必要です。また、2つのリンク可能プリムの新しいfigures_Bとfigures_Cと、2つのリンク可能なマルチプリムオブジェクトも必要です。
リンク性能アルゴリズム
マルチプリムオブジェクトのリンク性能を管理しているルールは2つのプリミティブのケースとよく似ています。同じ計算式の(1)と(7)は当てはまりますが、マルチプリムオブジェクトの境界となる球体は、相当するプリミティブの境界となる球体の全てを完全に包み込む最小の球体です。
3つ以上のオブジェクトのリンク時、アルゴニズムは、全てのリンク可能な要素を発見するまで、対象となるオブジェクト全体にわたって繰り返し適用します。最初のルートオブジェクトは各対象となるオブジェクトに対照してテストされ、より大きな境界となる球体は成功したリンクの後に再計算されます。まず、いくつかのリンクしていない要素は相対でテストされ、計算式に従ってより大きな集合体に結合します。ルートオブジェクトは、次に修正された対象に対照して再テストされ、全てのオブジェクトがリンクされる、もしくは新しいリンク要素が見つからなくなるまで続きます。
故障モード
分離可能なセットがリンク性能アルゴニズムによってテストされる場合、リンク可能なパーツの最後のサブセットは各対象が提出された順番によって決められます。これの些細な証拠は、他のプリミティブの無限格子の中央のルートプリムをみなすことです。全てをリンクはできませんが、最初に、初運転での、最後のリンク可能なサブセットの西側全プリムと対照してテストしたルートプリムは、(4)が要求するLARGEST_MAXのために、東側の幾つかのプリミティブへのリンクは出来ないでしょう。最初に東側でテストされたプリミティブの場合、最終結果は異なります。
リンク可能なセットがリンク能力アルゴリズムでテストされた場合、リンク可能な部分の最後のサブセットは各提示された対象の順番には影響されません。すなわち、故障モード以下のリンク可能なサブセットの場合は、常にリンクしているであろう、連続した全順列でテストされます。これの証拠はリーダーを用いるということで任せます。
例
2つのとても小さいプリム
radius_A = ~0.01
radius_B = ~0.01
SMALLEST_MAX = 1.0 メートル
LARGEST_MAX = 54.0 メートル
max_link_span = 1.06m
一つの大きいプリムと一つの小さいプリム
radius_A = 5m
radius_B = ~0.01m
SMALLEST_MAX = 1.0 m
LARGEST_MAX = 54.0 m
3 * (radius_A + radius_B) + SMALLEST_MAX = 15.03 m
15.03m は 54.0m より小さい
つまり、the max_link_span = 15.03m
2つのとても大きなプリム
境界となる球体の直径はx^2 + y^2 + z^2の平方根です。 つまり、10m x 10m x 10m プリムの直径は (100+100+100) = ~17.3m の平方根となります。 そして10m x 1m x 1m プリムの直径は(100+1+1) = ~10.1m の平方根です。 (プリムの型はこの計算において重要ではありません。私たちはサイズに関してのみ気にします) 2つの10m x 10m x 10m プリムのケースを試してみましょう。
radius_A = 8.66m
radius_B = 8.66m
SMALLEST_MAX = 1.0 m
LARGEST_MAX = 54.0 m
3 * (radius_A + radius_B) + SMALLEST_MAX = 52.96m
52.96mは54mより小さい
つまり max_link_span = 52.96m