Я рендеринг огромного трехмерного массива кубов, который иногда насчитывает тысячи кубов, расположенных рядом друг с другом.Я рендеринг текстуры jpg для кубов, это простой цвет с черной рамкой вокруг рамки.
Проблема: массив огромен, и, так сказать, отдаленные части массива смешиваются друг с другом.Другими словами, границы в дальних кубах иногда полностью исчезают, иногда они образуют произвольную волнистую линию вместе с другими соседними границами.В общем, сцена выглядит немного грязно, потому что все мелкие детали (жесткие границы между соседними кубами) теряются / расплавляются вместе.После поиска решения в Интернете я понимаю, что проблема может заключаться в выборе параметров фильтрации текстур.
Вот как на самом деле выглядит проблема в OpenGL:
Вот так выглядит текущий код для загрузки текстуры и настройки параметров текстуры:
glGenTextures(1, &texture3);
glBindTexture(GL_TEXTURE_2D, texture3);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
// set texture filtering parameters
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
//load image:
data = stbi_load("resources/textures/gray_border.jpg", &width, &height, &nrChannels, 0);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);
На данный момент я попыталсяиграя с изменением различных параметров в функции glGenerateMipmap () и изменяя параметры в функции glTexParameteri (), но пока ни один из них не работал.