ПОЧВА, проблемы с текстурами NPOT

Я могу загрузить 725×483 JPG текстуры, но не 725×544

код:

texId = SOIL_load_OGL_texture(fileName, SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID, 0);

Я получил ошибку:
Access violation reading location 0x06851002 — VS2012 экспресс

Я немного отладил SOIL, и похоже, что ошибка возникает сразу после того, как мы вызываем glTexImage2D (в библиотеке SOIL).

Когда я добавлю SOIL_FLAG_MIPMAP к коду загрузки все работает нормально.

Эта ошибка была также на AMD (5570) и Intel (HD 4000).

1

Решение

Решено, но думаю стоит упомянуть о решении:

  • правильно использовать GL_UNPACK_ALIGNMENTпо умолчанию это 4, но когда я изменил его на 1, это сработало!
  • или измените формат данных с SOIL_LOAD_AUTO в SOIL_RGBA, AUTO означает оригинальный формат текстуры и для изображений jpg это RGB, поэтому это может быть проблематично, когда выравнивание при распаковке равно 4.

с SOIL_FLAG_MIPMAP Почва на самом деле изменяет изображение в POT, и поэтому нет проблем с размером распаковки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]