Hallo alle zusammen!
Ich habe ein Problem. ICh bin mir auch gerade nicht so sicher ob das hier rein passt, aber ich wusste nicht wo sonst.
Meine selbst erstellte Textur:
Auf die Grafikkarte geladen mit:
angezeigt mit
und dem Quadrat, was so aussieht:
Wir nicht richtig angezeigt.
Aus irgendeinem Grund seh ich das Quadrat weiss anstatt. 4 Pixel (2x2, s,w,s,w).
Der Shader ignoriert die Normalen (beabsichtigt!), deswegen werden die nicht mit in den Shader gegeben. Die brauch ich aber noch gar nicht.
Was mach ich falsch?
[Edit:]
Hier noch die Shader:
Ja, ich weiß, v_color tut noch nichts![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
Ich habe ein Problem. ICh bin mir auch gerade nicht so sicher ob das hier rein passt, aber ich wusste nicht wo sonst.
Meine selbst erstellte Textur:
Code:
GLubyte texture[] = {
255,255,255,
0,0,0,
255,255,255,
0,0,0
};
Auf die Grafikkarte geladen mit:
Code:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_UNSIGNED_BYTE, texture);
angezeigt mit
Code:
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, _texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
// load texture
glUniform1i(_shaderStruct.samplerHandle, 0);
// update vertex information
glEnableVertexAttribArray(_shaderStruct.positionHandle);
glEnableVertexAttribArray(_shaderStruct.texCoordHandle);
glVertexAttribPointer(_shaderStruct.positionHandle, 3, GL_FLOAT, GL_FALSE, 0, _quad.getVertices());
glVertexAttribPointer(_shaderStruct.texCoordHandle, 3, GL_FLOAT, GL_FALSE, 0, _quad.getTexCoords());
// draw mesh
glDrawElements(GL_TRIANGLES, _quad.getIndiceCount(), GL_UNSIGNED_SHORT, _quad.getIndices());
Code:
float verts[] = {
-1.f, -1.f, 0.f,
1.f, -1.f,0.f,
1.f,1.f,0.f,
-1.f,1.f,0.f
};
float normals[] = {
0.f, 0.f, 1.f,
0.f, 0.f, 1.f,
0.f, 0.f, 1.f,
0.f, 0.f, 1.f,
};
float texCoords[] = {
0.f,0.f,
1.f,0.f,
1.f,1.f,
0.f,1.f
};
unsigned short indices[] = {
0,1,3,1,3,2
};
Wir nicht richtig angezeigt.
Aus irgendeinem Grund seh ich das Quadrat weiss anstatt. 4 Pixel (2x2, s,w,s,w).
Der Shader ignoriert die Normalen (beabsichtigt!), deswegen werden die nicht mit in den Shader gegeben. Die brauch ich aber noch gar nicht.
Was mach ich falsch?
[Edit:]
Hier noch die Shader:
Code:
static const char *vertexShaderSource =
"attribute vec4 a_position; \n"
"attribute vec3 a_normal; \n"
"attribute vec2 a_texCoords; \n"
"attribute vec4 a_color; \n"
"varying vec4 v_color; \n"
"varying vec2 v_texCoords; \n"
"uniform mat4 u_mvp; \n"
"void main() { \n"
" v_color = a_color; \n"
" v_texCoords = a_texCoords; \n"
" gl_Position = u_mvp*a_position;\n"
"}";
static const char *fragmentShaderSource =
"precision mediump float; \n"
"varying vec4 v_color; \n"
"varying vec2 v_texCoords; \n"
"uniform sampler2D s_texture; \n"
"void main() { \n"
" gl_FragColor = texture2D(s_texture, v_texCoords); \n"
"}";
Ja, ich weiß, v_color tut noch nichts
![Wink ;) ;)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f609.png)
Anhänge
Zuletzt bearbeitet: