プロジェクションの例 - Pixel-perfect マッピング
Pixel-perfect mapping は、複数の角度の付いたサーフェスで構成された壁など、1 つの軸にわたって屈曲するプロジェクションサーフェスに適しています。
UV マップの生成方法
Section titled “UV マップの生成方法”スプラインを押し出すことで、UV マップが自動的に生成されながらサーフェスを再現できます。UV 座標は押し出しによって生成されるため、UV マップは UV 座標を完璧に均等に分布します。
![]()
ステップ 1 - UV マップの生成 (3ds Max)
Section titled “ステップ 1 - UV マップの生成 (3ds Max)”- サーフェスの下端をなぞる spline を描画します。
- Extrude モディファイアを適用して、スプラインをサーフェスの高さに合わせて押し出します。
- スプラインを押し出す際に、generate mapping coordinates というボックスがチェックされていることを確認してください。これにより、押し出しによって正規化された UV マップが自動的に生成されます。
- Unwrap UVW モディファイアを選択します。
- Edit UVWs ウィンドウを開いて UV マップを表示します。
- サーフェスの頂点の位置を UV マップのテクスチャ座標と比較して、UV 座標が正しく反転されていることを確認します。確認する前に、サーフェスが南北(前後)方向に向けられ、その方向から見られていることを確認してください。下の画像は、サーフェスの左上の頂点が UV マップの左上のテクスチャ座標に対応していることを示しています。これは正しい状態です。UV 座標が誤って反転されていた場合、Designer で Direct マッピングされたときに、ビデオコンテンツが screen 全体でミラーリングされます。例えば、Radar レイヤーは screen を逆方向にスキャンします。
下の画像は、サーフェスにレンダリングされた均一なチェッカーパターンを示しており、UV マップが UV 座標を均等に分布していることを示しています。チェッカーパターンが不均一に見える、つまりチェッカーのサイズが異なる場合、これは UV マップが UV 座標を不均等に分布していることを示します。
![]()
3ds Max での pixel-perfect な UV マッピングされたサーフェス。
ステップ 2 - UV マップをコンテンツテンプレートにレンダリングする
Section titled “ステップ 2 - UV マップをコンテンツテンプレートにレンダリングする”下の画像は、UV マップからレンダリングされたコンテンツテンプレートを示しています。テンプレートの解像度は、以下によって計算されました。
-
プロジェクターが生成するピクセルのうち、水平軸または垂直軸のいずれかにわたって、いくつがプロジェクションサーフェスに当たるかを正確に把握する。
-
この値を、選択した軸にわたるプロジェクションサーフェスの寸法で割って、ピクセル密度を計算する。
-
ピクセル密度に残りの軸の寸法を掛けて、その解像度を計算する。
![]()
コンテンツテンプレートにレンダリングされた UV マップ
Section titled “コンテンツテンプレートにレンダリングされた UV マップ”プロジェクションサーフェスの寸法は UV マップに基づいて測定することが重要です。この場合、押し出されたスプラインの全長を測定する必要があります。これは、押し出しによって正規化された UV マップが自動的に生成されたためです。
![]()
テンプレートの水平・垂直の両方の解像度を単一のピクセル密度値から計算することで、コンテンツは正方形のピクセルを実現できるはずです。これは重要なことで、解像度が正しく計算されないと、コンテンツがプロジェクションサーフェス全体で引き伸ばされて表示されることがあるためです。テンプレートの解像度は 3698x1080 ピクセルです。これは以下によって計算されました。
-
約 1080 ピクセルが垂直方向にプロジェクションサーフェスに当たることを把握する。
-
1080 ピクセル / 5 メートル(プロジェクションサーフェスの高さ)= 1 メートルあたり 216 ピクセル(垂直方向にプロジェクションサーフェスに当たる)。
-
216 ピクセル x 17.12 メートル(プロジェクションサーフェスの長さ)= 3698 ピクセル(水平解像度)。
その結果、テンプレートの解像度のアスペクトはサーフェスの寸法のアスペクトと一致するはずです。これは以下によって確認できます。
-
テンプレートの水平解像度を垂直解像度で割る。
-
サーフェスの長さを物理的な高さで割る(前述のとおり、測定値は UV マップに基づくことを忘れないでください)。
この場合:
-
3698 / 1080 = 3.424
-
17.2 / 5 = 3.424
両方の値が一致しており、テンプレートの解像度が正しいことを示しています。これを再確認するには、テンプレートを Designer にエクスポートする前に、Adobe Illustrator などの画像編集アプリケーションで、テンプレート上に均一な正方形と円を描画します。テンプレートの解像度が正しければ、正方形と円が screen 全体で均一に表示されます。
ステップ 3 - スクリーンへのコンテンツのマッピング
Section titled “ステップ 3 - スクリーンへのコンテンツのマッピング”下の画像は、3ds Max から .obj ファイルとしてエクスポートされた screen に、Disguise でコンテンツテンプレートを直接マッピングしたものを示しています。Designer では、3 台の HD 仮想プロジェクターが screen からコンテンツをサンプリングするように構成されています。各仮想プロジェクターは screen の異なる部分をサンプリングし、サンプリングされたコンテンツはリアルタイムで 3 つの固有のフィードによって物理プロジェクターに出力されます。
Screen editor を開いて、Designer で screen の解像度をコンテンツテンプレートに合わせて設定することを忘れないでください。
![]()
Disguise で screen に再適用されたテンプレート。
ステップ 4 - プロジェクターへのコンテンツの出力
Section titled “ステップ 4 - プロジェクターへのコンテンツの出力”下の画像は、物理プロジェクターに出力される 3 つの固有のフィードを示しています。仮想プロジェクターが位置を変更すると、対応する出力は、その仮想プロジェクターの更新された視点を示すようにリアルタイムで自動的に更新されます。したがって、現場で仮想プロジェクターの位置が変更されても、出力はコンテンツから独立しているため、コンテンツを再レンダリングする必要はありません。Disguise のプロジェクターシミュレーションツールキットについて詳しくは、Disguise を使用して クイックキャリブレーション、ワーピング、ブレンディング を行う方法を説明している Projector simulation の章を参照してください。
![]()
3 台の仮想プロジェクターから自動的に生成された出力。