EDIT
ОК, этот вопрос старый.
Что я узнал после изучения OpenGL ES и тестирования, так это то, что мой iPhone 4 фактически использовал изображение с двойным разрешением. Если я правильно помню, мне пришлось установить точку шкалы контекста OpenGL равной 2.
Затем изображение выглядит резким.
Надеюсь, это поможет кому-то еще с той же проблемой.
ОРИГИНАЛЬНЫЙ ВОПРОС
Я пытался удержаться от фактической публикации вопроса и продолжаю искать в Интернете любые дальнейшие подсказки о том, почему мое отображение пикселей на пиксели не работает, но OpenGL оказывается чудовищем, чтобы получить право .
Среда разработки OpenGL:
iPhone 4
OpenGL ES 1.1
Ширина экрана в портретном режиме = 320 пикселей (ширина экрана UIScreen)
Высота экрана в портретном режиме = 480 пикселей (высота экрана UIScreen)
Ширина изображения текстуры = 480 пикселей (пиксель файла изображения)
Высота изображения текстуры = 320 пикселей (пиксель файла изображения)
Ресурсы, которые вы можете скачать:
Проект Xcode: http://www.chewedon.com/OGL.zip
Используемое изображение текстуры: http://img.photobucket.com/albums/v639/Ryu_Kaiser/serah.png
Вопрос:
Я исследовал проблему отображения текселей в пиксели, чтобы окончательно нарисованная текстура была четкой, как в Photoshop, т. Е. Идеальное отображение пикселей между текселями пикселей и текстур.
Я понимаю, что проблема заключается в том, что центры текселей не располагаются поверх центров пикселей. Я также понимаю, что решение этой проблемы заключается в перемещении текселей на половину текселя (или это был пиксель?), Так что тексель будет располагаться прямо сверху.
Я попытался установить свой массив текстурных координат следующим образом:
const GLfloat texCoords[] =
{
0.0 + (0.5 / 480.0), 1.0 + (0.5 / 320.0),
1.0 + (0.5 / 480.0), 1.0 + (0.5 / 320.0),
0.0 + (0.5 / 480.0), 0.0 + (0.5 / 320.0),
1.0 + (0.5 / 480.0), 0.0 + (0.5 / 320.0)
};
(Точно так же я также пытался установить координаты вершин. Согласно некоторым из прочитанных примеров, они говорят, что вы можете изменить координату текстуры или координату вершин)
Если я запускаю свое приложение, используя координаты текстуры от 0,0 до 1,0, текстура выглядит идеально в симуляторе iPhone, но если я запускаю приложение на моем iPhone, текстура имеет очень небольшое размытие.
Что я делаю не так?
Нужно ли умножать координаты моей текстуры на коэффициент соотношения сторон ширины и высоты экрана?
Я загрузил свой проект Xcode, который использовал для рисования сцены OpenGL и изображения текстуры, которое я использовал (ссылка выше).
Приветствие.