私はそれを単純にしておきます:この投稿の最後に記載されているコードは私のプロジェクトではトップからボトムの順です。 。。完全なテクスチャ以外のすべてをレンダリングする代わりに0フレームワーク単一のテクスチャをレンダリングするときに私が見るすべては正しい寸法のブラックボックスであるOpenGL ES 2.0:テクスチャは黒で何時間も解決されずにレンダリングされます:(
は、ここで私が確認したものだ:
が出力に組織を有しますバイト(それは
GL_ALPHA
のフォーマットです)、ゼロとゼロ以外の値があることがわかりますので、データは正しく表示されます(または少なくともすべて黒ではありません)。テクスチャIDが頂点シェーダで次の使用により確認、正しい:
(0,0)->(0,1)->(1,1)->(1,0)
から移動期待black->green->yellow->red
カラーフローを観察gl_FragColor=vec4(v_texCoord.xy,0.0,1.0);
..andが見られます。私のテクスチャは2次元の威力を持っています:
256 x 64
、データ配列に正しく反映されています。
グーグルと催促の数時間後、私は困惑して私は、間違っているものを決定する上で助けを大いに感謝されると思います!
glGenTextures(1, &_textureId);
GLint savedId;
glGetIntegerv(GL_TEXTURE_BINDING_2D, &savedId);
glBindTexture(GL_TEXTURE_2D, _textureId);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
GLenum datatype = -1;
GLenum format = -1;
switch([self pixelFormat]) {
case kGLTexturePixelFormat_RGBA8888:
format=GL_RGBA;
datatype=GL_UNSIGNED_BYTE;
break;
case kGLTexturePixelFormat_RGB565:
format=GL_RGB;
datatype=GL_UNSIGNED_SHORT_5_6_5;
break;
case kGLTexturePixelFormat_A8: // * This is current format, used for testing.
format=GL_ALPHA;
datatype=GL_UNSIGNED_BYTE;
break;
default:
[NSException raise:NSInternalInconsistencyException format:@""];
}
glTexImage2D(GL_TEXTURE_2D, 0, format, [self pixelsWide], [self pixelsHigh], 0, format, datatype, [self data]);
glBindTexture(GL_TEXTURE_2D, savedId);
//...
GLint s_textureId = glGetUniformLocation(program, "s_texture");
//...
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, [_textureAtlas textureId]);
glUniform1i(s_textureId, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
// In vertex shader:
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
uniform sampler2D s_texture;
void main() {
// ...
v_texCoord = a_texCoord;
}
// In fragment shader:
varying vec2 v_texCoord;
uniform sampler2D s_texture;
void main() {
// ...
gl_FragColor = texture2D(s_texture, v_texCoord);
}
はどうもありがとうございます、あなたは正確に正しいです!私は.aaaaを使用するように変更しました。私は今テキストを見ることができます:-)本当に、非常に感謝して、ビールを持っています。 – KomodoDave
@KomodoDaveようこそ、歓声;) – rotoglup