У меня возникли некоторые проблемы при попытке загрузить текстуры меньшего размера для моей пиксельной игры с использованием SOIL. Вот результат при загрузке изображения 40 x 40:
Но когда я переключаюсь на 30 x 40:
Я проверил свой код, есть ли проблемы, когда ширина меньше высоты, и для 40 х 50 все в порядке. Я проверил это 30 x 40 с помощью средства просмотра изображений Windows, и там тоже все в порядке. Единственная вещь, которая может каким-либо образом повлиять на загрузчик, - это использование оси координат для установки положения, но это работает правильно. Это код для загрузки текстуры:
glGenTextures(1, &actor.texture);
glBindTexture(GL_TEXTURE_2D, actor.texture);
unsigned char* image = SOIL_load_image(("App/Textures/" + name + ".png").c_str(), &width, &height, 0, SOIL_LOAD_RGB);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
SOIL_free_image_data(image);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
SOIL_save_image
и откроете его в Windows, это правильно? Что происходит с маленькими квадратными изображениями и большими прямоугольными изображениями? - person Quimby   schedule 17.03.2019glError
и если пока все в порядке, то как вы это нарисуете? - person Quimby   schedule 17.03.2019unsigned char* image = SOIL_load_image(("App/Textures/" + name + ".png").c_str(), &width, &height, 0, SOIL_LOAD_RGB); SOIL_save_image("test.bmp", SOIL_SAVE_TYPE_BMP, width, height, 0, image);
- person Popescu Flaviu   schedule 17.03.2019