0

ここに記載されているように、テクスチャをピクセルの中心に移動しようとしていますピクセル空間のOpenGLテクスチャ座標しかし、そうするのに苦労しています。中央に配置しようとしているピクセルは、テクスチャまたは画面上にありますか? それらにどのようにアクセスしますか?ここに私の頂点シェーダーがあります:

"uniform mat4 " + ShaderProgramConstants.UNIFORM_MODELVIEWPROJECTIONMATRIX + ";\n" +
"attribute vec4 " + ShaderProgramConstants.ATTRIBUTE_POSITION + ";\n" +
"attribute vec4 " + ShaderProgramConstants.ATTRIBUTE_COLOR + ";\n" +
"attribute vec2 " + ShaderProgramConstants.ATTRIBUTE_TEXTURECOORDINATES + ";\n" +
"varying vec4 " + ShaderProgramConstants.VARYING_COLOR + ";\n" +
"varying vec2 " + ShaderProgramConstants.VARYING_TEXTURECOORDINATES + ";\n" +

"void main() {\n" +
"   " + ShaderProgramConstants.VARYING_COLOR + " = " + ShaderProgramConstants.ATTRIBUTE_COLOR + ";\n" +
"   " + ShaderProgramConstants.VARYING_TEXTURECOORDINATES + " = " + ShaderProgramConstants.ATTRIBUTE_TEXTURECOORDINATES + ";\n" +
    "   gl_Position = " + ShaderProgramConstants.UNIFORM_MODELVIEWPROJECTIONMATRIX + " * " + ShaderProgramConstants.ATTRIBUTE_POSITION + ";\n" +
"}"

私はGLを開くのが初めてで、頂点シェーダーの研究を始めたばかりなので、提案やヒントをいただければ幸いです。

編集:私が経験する問題は、スケーリングするとテクスチャのピクセルが変形することです。通常のテクスチャはきれいに見えますが、4x4 マトリックス (モデル ビュー マトリックス) で scaleM コマンドを使用してスケーリングすると、ランダムな行と列に同じピクセルの 2 つの列または 2 つの行があるように見えます。

4

1 に答える 1

0

スケール係数が歪みの原因であることがわかりました。私がしなければならなかったのは、テクスチャの各ピクセルがディスプレイ上で同じ量のピクセルを持っていることを確認することだけで、歪みが消えました。

于 2012-09-12T22:27:21.047 に答える