ここに記載されているように、テクスチャをピクセルの中心に移動しようとしていますピクセル空間の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 つの行があるように見えます。