Я использую Cheetah3D для экспорта файла COLLADA ( .dae ), а затем COLLADAViewer2 Эрика Бака ( https://github.com/erikbuck/COLLADAViewer2/tree/master/COLLADAViewer2) для экспорта формата списка моделей, как описано в его книге.
Мой файл COLLADA представляет собой простую сферу, на которую я пытаюсь нанести текстуру земли.
В программе COLLADAViewer мой экспортированный файл .dae выглядит нормально, вот скриншот:
Часть моего кода, используемая для рендеринга текстуры на сфере, находится здесь:
// Setup texture
CGImageRef imageRef =
[[UIImage imageNamed:@"Earth.jpg"] CGImage];
GLKTextureInfo *textureInfoEarth = [GLKTextureLoader
textureWithCGImage:imageRef
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
GLKTextureLoaderOriginBottomLeft, nil]
error:NULL];
self.baseEffect.texture2d0.name = textureInfoEarth.name;
self.baseEffect.texture2d0.target = textureInfoEarth.target;
// Enable fragment blending with Frame Buffer contents
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
К сожалению, в XCode, когда я создаю и запускаю свою сферу, она выглядит на Симуляторе так:
Я не знаю, как объяснить странный рисунок на сфере, как будто текстура есть, но повторяется. Может ли кто-нибудь помочь мне понять это? Спасибо -
Я загрузил проект xcode, с которым экспериментирую, на Github. Он использует множество примеров кода из книги г-на Бака по OpenGL.
Вот ссылка: https://github.com/phishstang65/renderer