メッシュ出力のみを用いて、Shade3D Legacy独自のフリーフォームサーフェスアルゴリズムを再構築する。

This is a multi-part series on how to recover the original proprietary math behind the Shade3D Curved Surface using only what the program outputs when converting to a polygon mesh object. No generative AI will be used for this task.

本シリーズは、Shade3Dの自由曲面に用いられている独自の数学的アルゴリズムを、プログラムが提供するポリゴンメッシュオブジェクトへの変換機能のみを用いて復元する方法について、複数回にわたり解説するものです。この作業には、生成型人工知能は一切使用しません。

Part 0 - Fundamentals:
第0部分:基础知识:

Before we begin, we will set some fundamentals with how a Bezier Surface is represented. Common Bezier surface functions beyond degree 1 will be represented in Bernstein notation, and the control points will be labeled as such in the following diagram:

本題に入る前に、ベジエ曲面の表現方法に関する基礎をいくつか整理しておきます。次数1を超える一般的なベジエ曲面関数はバーンスタイン表記で表され、以下の図では制御点にはそのようにラベルが付けられています:

The Bezier surface blending functions will be represented as such:
ベジェ曲面のブレンド関数は、次のように表されます:
01-Shade3D-Bernstein-Notation

Now that all the relevant notations have been determined, it is time to move on to Part 1.
関連する表記がすべて確定したところで、いよいよ第1部へと進みましょう。

Part 1: Shade3D Legacy - Calculating the 4 internal control points
第1部:Shade3D Legacy - 4つの内部制御点の計算

Shade3D Legacy (ver.17.0.1 and earlier) has a simple method of calculating the internal control points of any Bezier surface. This method used to be in a forum post by ToshiakiKatoh, which has since been deleted. It is being reposted here for archival’s sake.

Shade3D Legacy(ver.17.0.1 以前)には、任意のベジエ曲面の内部制御点を計算する簡単な方法があります。この方法は、かつてToshiakiKatoh氏によるフォーラムの投稿に掲載されていましたが、その投稿はすでに削除されています。ここでは、記録として再掲載します。

TODO: Illustrate Case 2 - Handle does not exist in the opposite row direction.
記入待ち: 事例 2 を図解する - 反対側の行方向 handle なし。

The following Python command obtains the mesh output of the Bezier surface:
以下の Python コマンドは、ベジエ曲面のメッシュ出力を取得します:

convert_to_polygon_mesh_with_divisions(n,m)

To get the polygon mesh output of the proprietary Curved Surface:
独自の「曲面」機能からポリゴンメッシュを出力するには:

convert_to_polygon_mesh_with_subdivision_level(s)

In the next part, we will discover significant properties of the mesh output given by convert_to_polygon_mesh_with_subdivision_level, and construct rudimentary functions that approximate the behavior of the freeform surface.
次のセクションでは、convert_to_polygon_mesh_with_subdivision_level によって生成されるメッシュ出力の重要な性質について考察し、自由曲面の挙動を近似する基本的な関数を構築します。