Хорошо, я решил это.Fmod () была подсказкой.
Вместо:
glTexCoord1f(t.v[0][2]);
Мне нужно было нормализовать Z вдоль части от 0 до 1: (или от 0 до 1 * textureScaleFactor , действительно)
glTexCoord1f((t.v[0][2] - bounds.min[2]) / range);
Я применяю коэффициент масштабирования к диапазон , чтобы получить желаемую плотность текстуры.
fmod () был действительно неправ.Если у грани есть минимальная и максимальная точки вершин 0 и 1, то вы получите полную текстуру.Однако, если вы получаете 0 и 1,1, то это становится 0,1, и это масштабирует десятую часть текстуры по лицу.К сожалению.Я поражен, что это сработало на многих других лицах.Вот что я получаю за то, что не делаю перерыв и немного сплю.:)
По крайней мере, в какой-то момент (с удалением fmod () ) я получал эффект сглаживания, из-за которого казалось, что больше ошибочных, чем было на самом деле.Итак, я также переключил текстуру в MipMap.From:
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGB, _d->sideImage.width(), 0,
GL_BGRA_EXT, GL_UNSIGNED_BYTE, _d->sideImage.bits());
To:
gluBuild1DMipmaps(GL_TEXTURE_1D, GL_RGB, _d->sideImage.width(), GL_BGRA_EXT,
GL_UNSIGNED_BYTE, _d->sideImage.bits());
Даже при этом, это все еще наложение псевдонимов на расстоянии.Любые предложения о том, как справиться с этим?Я поиграю с уровнями mipmap и посмотрю, куда это меня приведет ...