2010-12-28 3 views

答えて

2

簡単な方法(電話機をターゲットにしている場合は、考慮する必要があります)は、グリッドの変形を使用することです。正方形/三角形のグリッドを変形し、画像をテクスチャにマップします。これは、OpenGL ESを使用するとハードウェアアクセラレーションが容易になります。ジオメトリは必要に応じてきめ細かくメッシュにすることができますが、アプリケーションによってはテクスチャサンプリングの品質が制限されることがあります。

+0

はい、完全にOpenGL ESで行うことができます。 3GS以降をターゲットにしている場合は、GPUで変形計算を行うこともできます。チュートリアルは便利ではありませんが、ポリゴンの規則的なグリッドを描画し、画像をテクスチャにマップし、次にテクスチャの座標を変更せずにポイントを移動するという単純なコンセプトです。 [この画像](http://www.eyeonline.com/Web/EyeonWeb/Products/digital_fusion/screenshots/df_gridwarp.jpg)は基本的なコンセプトを示しています(ポリゴンを使用していません)。 「グリッドワープ」と「メッシュワープ」を検索します。 –

+0

はい、私が知っている限り、実際の仕事をする必要があります。 –

+0

Actionscript 3を使用して[ここでは実装を見つけることができます](http://www.neuroproductions.be/experiments/envelope-distort-with-actionscript/)いくつかのテストに使用しました。彼はそれを「エンベロープ歪み」と呼ぶ。 – yuri

2

実装が単純でなくても、コンセプトは単純です。

  1. 出力画像内の位置から入力画像内の位置までの数学的なマッピングを定義します。これはおそらく難しい部分です。なぜなら、入力から出力に向かう数式を持つ可能性が高いからです。
  2. 出力イメージの各ピクセルについて、入力の座標を決定します。これらは多少の小数成分を有する可能性が高い、すなわち入力と正確に並ばない。
  3. 選択した補間アルゴリズムを使用して、選択した入力ポイントにどのような値を設定するかを決定します。
  4. リンスして繰り返します。
+0

@Joe Blow、実際に私はこのようなことをかなりやってきました。 1つの仕事では、私がレンズ歪みを補正してくれました。これはここで説明するようにほぼ正確に曲げが必要でした。 –