3

基本的に私はこれを達成しようとしていました:事前定義された凹凸のある表面に任意の画像を押し付けます。(以下の例を参照してください)。

任意の画像->ここに画像の説明を入力してください

私は画像処理や3Dアルゴリズムの経験があまりないので、これまでに考えられる最良の方法は次のとおりです。

  1. 座標のセットを事前定義します(たとえば、10x10グリッドがある場合、(0,0)、(0,10)、(0,20)などで始まる100の座標があります。9x9=81になります。グリッド。
  2. Tシャツの画像に個々の座標の変換を記録します。たとえば、(0,0)は(51,31)になり、(0、10)は(51、35)になります。
  3. 元の画像を81x2=162の三角形に三角形分割します(グリッドごとに2つの三角形があります)。手順2で取得した座標変換に基づいて画像の各三角形を変換し、Tシャツ画像に描画します。

私が持っている問題/質問:

  1. Tシャツの画像がぼろぼろに見えないように各三角形を滑らかにする方法がわかりません。
  2. それを行うためのより良い方法はありますか?実装を進める前に、ここで車輪の再発明をしていないことを確認したいと思います。

ありがとう!

4

2 に答える 2

4

これはデジタル画像ワーピングと呼ばれます。1990 年代には人気のあるグラフィック テキストがありました (おそらく誰かの論文から)。Dr. Dobb's Journal からも記事を見つけることができます。

あなたのプロセスは本質的に正しいです。三角形を使用するのではなく、ピクセルごとに作業すると、直面している問題のいくつかを回避できます。ターゲット ビットマップ内のピクセルをスキャンし、現在のセルに基づいてローカル変換を適用して、ソース ビットマップ内の対応するピクセルの座標を決定します。そのピクセルをコピーします。

よりスムーズな結果を得るには、浮動小数点で座標変換を行い、双一次補間などを使用してソース イメージからピクセル値を補間します。

于 2012-12-19T17:10:33.430 に答える
3

これは実際には問題の解決策ではなく、単なる回避策です:

T シャツを表す 3D モデルがある場合。directX\OpenGL を使用して、画像を T シャツのテクスチャとして配置できます。次に、任意の視点から必要な画像をレンダリングするように依頼できます。

于 2012-12-19T15:31:51.063 に答える