OpenGL текстурированное изображение размыто - PullRequest
3 голосов
/ 13 июня 2011

Я пытаюсь создать mipmapped текстурированное изображение, представляющее высоту. Изображение должно быть 940 x 618. Я понимаю, что моя текстура должна иметь ширину и высоту степени 2. На данный момент я пытался постепенно выполнять все мои текстуры в квадратах (например, 64 x 64 или 128 x 128, даже 512 x 512), но изображение все равно получается размытым. Есть идеи, как лучше текстурировать изображение такого размера?

Ответы [ 4 ]

3 голосов
/ 14 июня 2011

Используйте текстуру 1024x1024 и поместите ваше изображение только в часть изображения, 940x618.Затем используйте значения 940.0 / 1024.0 и 618.0 / 1024.0 для максимальных координат текстуры или масштабируйте TEXTURE_MATRIX.Это сделает отображение 1: 1 для ваших пикселей.Вам также может понадобиться сдвинуть модель на полпикселя, чтобы получить идеальную посадку , это зависит от настроек и вида вашей модели.

Это техника, которую я использовал в этой заставке, которую я сделал дляMac.http://memention.com/void/ Он захватывает содержимое экрана и использует его в качестве текстуры для некоторых 3D эффектов , и я действительно хотел идеальную подгонку пикселей.

2 голосов
/ 13 июня 2011

Насколько я знаю, современные технологии не требуют использования степени 2 для ваших измерений.Просто знайте, однако, что если этот код запускается на более старой машине, у вас будут некоторые проблемыСколько лет вашей машине?

1 голос
/ 14 июня 2011

Текстура, вероятно, не отображается 1: 1, и у вас есть фильтрация GL_LINEAR или GL_NEAREST.Попробуйте текстуру с более высоким разрешением, отображение и отображение экрана 1: 1.

0 голосов
/ 14 июня 2011

Используйте текстуру размером 940x618 (если это действительно размер поверхности, к которой она применяется) и установите для уменьшения / увеличения текстуры использование GL_LINEAR. Это должно дать вам результаты, к которым вы стремитесь.

...