2012-04-09 16 views
0

私が現在持っているもの:テクスチャのスケールファクタとともに長方形の幅と高さを指定して、テクスチャ座標を生成します。これは罰金ウォーキングされていますGopenGLは、テクスチャ座標をワールド座標にアライメントします。

vertices = new float[] { 
        0,   0,    0, this.height/(this.texture.height * this.texScaleHeight), 
        this.width, 0,    this.width/(this.texture.width * this.texScaleWidth), height/(this.texture.height * this.texScaleHeight), 
        this.width, this.height, this.width/(this.texture.width * this.texScaleWidth), 0, 
        0,   this.height, 0, 0 }; 

私は今、何をしたいのか、異なる位置でのいくつかの長方形(。つまり、お互いの隣)はテクスチャのシームレスな卒業を持っているということです。私は次のことを試しましたが、良い結果はありませんでした。私は、テクスチャは、彼らが座る長方形に「世界に整列」とされていないことを達成することができますどのように

vertices = new float[] { 
        0,   0,    -this.getPosition().x * this.texScaleWidth, this.height/(this.texture.height * this.texScaleHeight) -this.getPosition().y * this.texScaleHeight, 
        this.width, 0,    this.width/(this.texture.width * this.texScaleWidth) -this.getPosition().x * this.texScaleWidth, height/(this.texture.height * this.texScaleHeight)-this.getPosition().y * this.texScaleHeight, 
        this.width, this.height, this.width/(this.texture.width * this.texScaleWidth) -this.getPosition().x * this.texScaleWidth, -this.getPosition().y * this.texScaleHeight, 
        0,   this.height, -this.getPosition().x * this.texScaleWidth, -this.getPosition().y * this.texScaleHeight }; 

答えて

0

この技術は、潜在的あまりにも一般的であるが、ここでは行く:あなたは、テクスチャはジオメトリ上に座標プロジェクトでした。

全体のワークフローはジオメトリ自体を処理するのと同じですが、ここではすべてのワールドポイントにテクスチャ座標が割り当てられています。ジオメトリ内のすべての点を別のMVP行列(プロジェクタを表す)でプッシュし、この非常にポイントのテクスチャ座標に対して(x, y)の結果を得ます(正投影を仮定します)。視点はその後wで除算する必要があります。

私はあなたがそのアイデアを得ることを願っています。それを検索すると、私はまともなの説明またはチュートリアルを見つけることができませんでした。 シャドーマッピングは、同じテクニックを使用しますが、その目的は、ポイントがシャドーされているかどうかを判断することです。ここでの目標は、一般的なプロジェクタのテクスチャ座標を見つけることです。

関連する問題