すべての出力ポイントがサーフェス上にあるという制約がある場合は、ポイントの 3d > サーフェス変換について心配するよりも、サーフェス自体を処理する一貫した方法が必要です。
これを行うハックタスティックな方法は、3D オブジェクトの UV マップを作成し、ポイントを 2 次元でランダムに散布することです (有効な UV シェル内にたまたま着地しなかったポイントを破棄します)。UV シェルが必要なだけ満たされたら、UV ポイントを重心座標 に変換して、それらの 2 次元ポイントを 3 次元ポイントに戻すことができます。効果的には、「私は 30% 頂点 A、30 です」と言うことができます。 % 頂点 B、40% 頂点 C なので、私の位置は (.3A + .3B + .4C) です。
簡単さ以外に、UV マップを使用するもう 1 つの利点は、メッシュのさまざまな部分の密度と相対的な重要性をカスタマイズできることです。UV 面が大きいほど多くの点が散らばり、小さいほど点が少なくなります。それが物理的なサイズまたは顔と一致しない場合。
2D に移行すると、いくつかのアーティファクトが導入されます。おそらく、ストレッチと継ぎ目のない UV マップを作成することができないためです。そのため、散乱の密度にばらつきが生じます。ただし、多くのアプリケーションでは、アルゴリズムが非常に単純で、結果を手動で簡単に調整できるため、これで問題ありません。
私はこれを使用していませんが、これはこの一般的なアプローチに基づいているようです: http://www.shanemarks.co.za/uncategorized/uv-scatter-script/
より数学的に厳密な方法が必要な場合は、メッシュのパラメーター化のより洗練された方法が必要になります。これは、三角形の 3 次元コレクションを一貫した空間に変換する方法です。その分野には興味深い仕事がたくさんありますが、アプリケーションを知らずに特定の道を選ぶのは難しいでしょう.