2

「膨らんだ」が正しい用語かどうかはわかりませんが、今思いつくのはそれだけです。レーザーをシミュレートするために、三角形のストリップに沿って幅 1 ピクセル (技術的にはすべてのテクスチャにこの問題があります) の画像をマッピングしようとしています。完全に均一で正方形になると、次のようになります。

ここに画像の説明を入力

そしてそのワイヤーフレーム:

ここに画像の説明を入力

しかし、ポイントを内側にスライドさせると問題が発生します。UV は、三角形が完全に水平であるかのようにマッピングしようとするため、間違っています。

ここに画像の説明を入力

そしてそのワイヤーフレーム:

ここに画像の説明を入力

今のところ、どのようにマッピングするかを調べるために検索する用語さえ思いつきません。正面のマッピングだけでなく、ストライプがストリップ自体と一緒に縮小するようにマッピングしたい。任意のヒント?きっと今は考えられない、とても簡単なことだと思います。

4

1 に答える 1

3

パースペクティブの正しいテクスチャ マッピングが必要です。表示されるのはアフィン変換であり、深さは考慮されていません。

このリンクでは、問題について説明し、解決方法を提案しています。

http://www.reedbeta.com/blog/2012/05/26/quadrilateral-interpolation-part-1/

私はこれを自分で行いましたが、覚えている限りでは、UV 座標に加えて 3 番目の属性を渡すことで、頂点シェーダーからフラグメント シェーダーに均一なテクスチャ ベクトルが渡されます。フラグメント シェーダーでは、UV をこの 3 番目の引数で割り、それを使用してテクスチャをサンプリングします。

悲しいことに、私はそのコードを目の前に持っていないので、これが私ができる最善の方法です. しかし、私がリンクしたページはあなたを解決策に導くはずです.

于 2013-10-06T17:18:05.570 に答える