2016-10-22 3 views
0

いくつかのエフェクトのベースとしてv_texCoordsを使用するフラグメントシェーダがあります。 v_texCoordsは常に0〜1の範囲にあるため、これは単一テクスチャを使用するとうまくいきます。したがって、中心点は常に(0.5、0.5)です。 TextureRegionの一部から描画している場合、v_texCoordsの範囲が0〜1でなくなるため、シェーダが壊れてしまいます。私のフラグメントシェーダで一貫した0-1範囲を取得するために使用できるメソッドまたは変数はありますか?制服の設定を避けたいのです。これは、すべてのドローでバッチを洗い流す必要があることを意味します。GLESフラグメントシェーダ、TextureRegionを使用するときに0〜1の範囲を取得する - libGDX

ありがとうございます!

答えて

0

シェイダーレベルでは、このようなものはありません。TextureRegionsは、OpenGL ES APIレベルではまったく存在しないlibgdx構造体です。

正にあなたがしようとしているもの私は、2つの直交する目的のためにテクスチャ座標をオーバーロードせず、0対1の数を提供する別個の頂点属性を追加することを推奨します。

+0

回答いただきありがとうございます。頂点属性の例を教えてください。 – hamham

+0

これはあなたのモデルや、libgdxの使い方によって異なります。あなたが望むのは、スケーリングされた0対​​1の値を持つ 'texCoords'属性に対する並列属性です。 – solidpixel

関連する問題