Это, вероятно, связано с еще одной моей неразгаданной загадкой .
Я рисую Orthographic 2d на iPhone, используя реальное устройство и симулятор.Я пытаюсь раскрасить пиксели заданным цветом в зависимости от того, как далеко они находятся от произвольной точки в пиксельном пространстве 'A', которую я передаю (жесткий код).Я делаю все в разрешении Retina 960x640.Я вычисляю расстояние от A до gl_FragCoord
, и я цвет на основе скачка между 2 цветами с максимальным расстоянием 300px.
Когда на симуляторе (с дисплеем сетчатки) мне нужно дать центральную точку«460» пикселей для середины экрана X .. Y даю 160px, и я ищу расстояние «300'px .., чтобы получить тот же эффект на устройстве, мне нужен центр 960X и расстояние 150, чтобы получитьте же результаты (интересно, что px 80 не дает таких же результатов, как я хочу, но 160 может быть перерасходом оригинала ...)
Очевидно, что проблема сетчатки находится в игре.Но где и как, и как мне найти и исправить это?
Я использую:
glViewport(0, 0, 960.0f, 640.0f);
и:
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &framebufferWidth);
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &framebufferHeight);
А:
[self setView:[[EAGLView alloc] initWithFrame:[UIScreen mainScreen].bounds]];
[(EAGLView *)[self view] setContentScaleFactor:2.0f];