2012-03-20 1 views
1

Я использую GLKit (OpenGL ES2) в Objective-C, чтобы сделать игру для iPhone.Некоторые (случайные) текстуры, перевернутые вверх ногами в OpenGL?

У меня не было большого опыта с этим, поэтому меня не удивило бы, если бы я делал что-то неправильно, но я создаю кучу объектов, которые все в основном одинаковы. На самом деле я использую для них класс и просто делаю больше экземпляров класса для создания большего количества объектов, но каким-то образом некоторые объекты имеют текстуры, перевернутые вверх ногами.

Я не вижу, как это вообще возможно, поскольку это тот же код, который используется для всех объектов, а некоторые из них правильные, а некоторые нет.

Любая помощь/идеи были бы весьма признательны.

+0

Откуда вы получаете изображения? Некоторые форматы имеют начало в левом верхнем углу, некоторые в левом нижнем углу. Это зависит только от изображения. – user1118321

+0

Изображение - это tif, сгенерированный из [UIImage imageNamed:]. Это не может быть так, потому что некоторые объекты отображаются правильно, а некоторые нет, поэтому я не могу просто перевернуть его, так как это повлияет на все из них, и у меня все еще будет эта проблема. Или я чего-то не хватает? –

+0

Некоторые форматы, такие как TGA (например), поддерживают как исходный формат. Это означает, что простое расширение изображений не исключает рекомендаций, предоставленных user1118321. –

ответ

0

Оказывается, это было вызвано не повторно использовать текстуру снова и снова, но восстанавливающий его каждый раз, когда я нуждался в этом.

В целом, лучше всего создавать текстуру только один раз и повторно использовать ее, поэтому решение просто для этого.

0

Проверьте недвижимость [UIImage imageOrientation], чтобы увидеть, будет ли изображение переворачиваться. Это может быть one of these values:

UIImageOrientationUp 
UIImageOrientationDown 
UIImageOrientationLeft 
UIImageOrientationRight 
UIImageOrientationUpMirrored 
UIImageOrientationDownMirrored 
UIImageOrientationLeftMirrored 
UIImageOrientationRightMirrored 
+0

Я ввел вход в систему, и он возвращает 0 для всех (Up, я предполагаю). Но не все они в правильном направлении ... Спасибо за вашу помощь, но это тоже не должно быть. –

+0

Все ваши квадратики определены в том же порядке намотки (по часовой стрелке против против часовой стрелки)? И все ли лица квадратиков, которые обращены к передним лицам камеры? – user1118321

+0

Да, эти же координаты используются для всех из них, поэтому все они ориентированы одинаково. –