I 설정 내 텍스처 매개 변수 : 텍스처에 대한OpenGL에서 텍스처의 모든 색상의 평균을 구하고 있습니까? 이 같은 OpenGL을에서
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);`
//glGenerateMipmap(GL_TEXTURE_2D);
glActiveTexture(GL_TEXTURE0);
내 데이터는 이것이다 :
checker[0] = checker[1] = checker[2] = 255;
checker[3] = checker[4] = checker[5] = 0;
checker[6] = checker[7] = checker[8] = 255;
checker[9] = checker[10] = checker[11] = 0;
내 텍스처 GL_RGB에 있으며 GL_UNSIGNED_BYTE 걸립니다. 텍스처의 너비와 높이를 2로 설정하고 텍스처를 배치 할 좌표를 사각형으로 만들고 전체 화면을 채우는 두 개의 삼각형으로 구성합니다.
그러나 두 개의 검정색과 두 개의 흰색 픽셀 대신 회색 색상이 표시됩니다. 그레이 색상은 128,127,127 (RGB)입니다. 나는 모든 색상에 대해 검사기에 1 바이트의 패딩을 추가해야한다는 것을 알았지 만 복숭아 색을주었습니다.
편집 :
버그가 발견되었지만 흰색 화면이 나타납니다.
그래서 나는glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
을 제거하고 지금은 검은 화면을 얻을.
이 내 그리기 기능입니다 : 당신의 텍스처에서 오는 좌표 어디 언급하지 않는
glUseProgram(gfx->shaderProgramTexture);
glBindTexture(GL_TEXTURE_2D, tex);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0,
2, 2, GL_RGB, GL_UNSIGNED_BYTE, data);
glBindBuffer(GL_ARRAY_BUFFER,
gfx->vertexBufferTexture);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
gfx->clearScreen();
glDrawArrays(GL_TRIANGLES, 0, 6);
glBindTexture(GL_TEXTURE_2D, 0);
glfwSwapBuffers(gfx->getWindow());
매개 변수를 설정할 때 텍스처가 바인딩되어 있습니까? 이것을 디버그하려면 더 많은 코드가 필요합니다. –
@ColonelThirtyTwo done – user2893243
무엇을'GL_UNPACK_ALIGNMENT'에 설정 했습니까? – genpfault