Качество текстур плохое при уменьшении - PullRequest
0 голосов
/ 06 января 2012

Я портирую свое приложение на iOS, и, несмотря на то, что оно вызывает те же вызовы gl, что и при связывании текстур, качество становится очень плохим при уменьшении масштаба (включены mipmaps). Что-то не так с этим кодом загрузки текстуры?

РЕДАКТИРОВАТЬ: я начинаю думать, что это на самом деле проблема отображения сетчатки.

NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:@"jpg"];
    NSData *texData = [[NSData alloc] initWithContentsOfFile:path];
UIImage *image = [[UIImage alloc] initWithData:texData];

if (image == nil)
    NSLog(@"Do real error checking here");

GLuint width = CGImageGetWidth(image.CGImage);
GLuint height = CGImageGetHeight(image.CGImage);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
void *imageData = malloc( height * width * 4 );
CGContextRef context = CGBitmapContextCreate( imageData, width, height, 8, 4 * width, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big );

// Flip the Y-axis
CGContextTranslateCTM (context, 0, height);
CGContextScaleCTM (context, 1.0, -1.0);

CGColorSpaceRelease( colorSpace );
CGContextClearRect( context, CGRectMake( 0, 0, width, height ) );
CGContextDrawImage( context, CGRectMake( 0, 0, width, height ), image.CGImage );

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, imageData);

CGContextRelease(context);

free(imageData);

1 Ответ

0 голосов
/ 06 января 2012

Это была проблема с отображением сетчатки.После некоторого поиска в Google я пришел к этой статье, в которой объясняется, что по умолчанию scaleFactor равен 1, поэтому текстуры на моем устройстве выглядели плохо.

http://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...