3D制作の常識を覆す:UV座標から3D位置を逆引きする高度な技術
本記事は、3DCG制作におけるUV座標の一般的な使い方(3D表面から2Dテクスチャへのマッピング)とは異なる、「2D画像上の位置(UV座標)から、元の3Dモデル上の正確な位置(3D座標)を特定する」という逆引き技術について解説しています。この技術の核心は、絶対座標ではなく「住所」という概念を経由することにあります。
3Dモデル上の任意の点は、「どのポリゴンに属するか」と「そのポリゴン内での相対的な位置」という二つの情報、すなわち「住所」によって一意に指定できます。この住所は、ポリゴンが空間のどこに配置されていようと、どのような向きであっても変わりません。この性質を利用し、元のモデルと同じ構造を持つ「平面版」を作成することで、2D上の点(例:テクスチャ上の窓の中心)を、元の立体モデルの対応する3D座標にマッピングすることが可能になります。
具体的な手順として、Houdiniなどのツールを使用し、まず`xyzdist()`関数を用いて平面上の点から最も近い表面の「住所」(ポリゴン番号`prim`とポリゴン内位置`puv`)を取得します。次に、この住所を`primuv()`関数に渡すことで、元のモデルにおける正確な位置(P)や法線(N)といった属性値を取り出すことができます。この一連のプロセスにより、テクスチャ画像解析で得られた窓のポイント群を、建物モデルの適切な3D座標に自動で配置することが可能となり、手作業による配置の煩雑さを解消します。この「住所を経由する」発想は、テクスチャの汚れや模様など、2Dの情報を3Dジオメトリの生成や追従に利用できる汎用的な手法として、3DCGワークフローに大きな革新をもたらすと結論づけています。
背景
従来の3DCG制作では、テクスチャを3Dモデルに貼り付ける際、3Dの表面を2DのUV空間に展開する作業が主でした。しかし、本記事で紹介された技術は、この流れを逆転させ、2Dの画像情報(テクスチャ)を起点として、3Dモデルの特定の場所にジオメトリや属性を自動で配置する手法であり、より高度なデータ制御を可能にします。
重要用語解説
- UV座標: 3Dモデルの表面を2D平面に展開した際の座標系。テクスチャ画像を貼り付けるための参照位置であり、2Dの画像上の位置を指します。
- 住所(ポリゴン番号/パラメトリック座標): 3Dモデル上の特定の位置を指し、「どのポリゴンに属するか」と「そのポリゴン内での相対的な位置」という、絶対座標を含まない情報で定義される概念です。
- xyzdist() / primuv(): Houdiniなどの3Dソフトウェアにおける関数群。`xyzdist()`は2D点から最も近い3D表面の「住所」を特定し、`primuv()`はその住所を使って元のモデルの属性値(位置や法線など)を取り出す役割を果たします。
今後の影響
この「住所を経由する」逆引き技術は、テクスチャや画像解析によるデータ駆動型の3Dコンテンツ生成を可能にし、手作業による配置や調整の工数を大幅に削減します。今後は、単なる窓の配置に留まらず、テクスチャの汚れや模様を起点としたジオメトリの自動生成や、変形するサーフェスへのポイント追従など、広範な分野に応用されると予想されます。