iPhone: Создание игр для iOS (iPhone и iPad)
GameDev.ru / Сообщества / iPhone / Форум / WebKit + OpenGL ES в программе на iOS.

WebKit + OpenGL ES в программе на iOS.

watВедущийwww23 апр. 201320:31#0
Можно ли в приложении под iOS установить два слоя одновременно? Нижний слой — это стандартный рендер 3D под OpenGL ES, наверху HTML страница WebKit, у которой BODY прозрачный, виден рендер, а, например, кнопки, надписи выводить в HTML в верхнем слое.

WebKit_OpenGL_ES | WebKit + OpenGL ES в программе на iOS.

Если возможно, то есть ли проблемы с производительностью?

nightblazeПостоялецwww23 апр. 201320:37#1
Возможно ссылка будет полезной http://www.slideshare.net/llopis/the-best-of-both-worlds-mixing-u… t-with-opengl
watВедущийwww23 апр. 201320:49#2
NightBlaze
Не совсем, это немного не то, что мне нужно. Но всё равно спасибо.
КирюшыкЗабаненwww23 апр. 201320:54#3
>> Правка: не актуально
alcoSHoLiKПостоялецwww23 апр. 201321:03#4
Проверил на iOS 6 -- работает.
    UIWebView *wv = [[UIWebView alloc] initWithFrame:window.bounds];
    wv.backgroundColor = [UIColor clearColor];
    wv.opaque = NO;
   [window addSubview:wv];

В коде не показано, но я действительно загрузил сайт в этот веб вью. Возможно надо будет поставить для body стиль background-color: transparent, но только если это значение явно переопределяется сайтом, т.к. transparent стоит по умолчанию.

Производительность надо смотреть для конкретного случая. Если надо рендерить навороченную 3Д-графику при 60 ФПС, то отображение вебвью поверх скажется на производительности. Может немного, может и заметно.

Если же просто использовать UIKit элементы, то с этим проблем нет. На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для OpenGL игр. А еще год или два назад на WWDC рассказывали, как использовать стандартный UIScrollView для реализации нативного скроллинга в OpenGL.

CasDevПостоялецwww24 апр. 20131:36#5
alcoSHoLiK
> Если же просто использовать UIKit элементы, то с этим проблем нет. На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для OpenGL игр. А еще
> год или два назад на WWDC рассказывали, как использовать стандартный UIScrollView для реализации нативного скроллинга в OpenGL.
Действительно, зачем использовать более подходящие средства, когда можно воткнуть совершенно костыльное узкопрофильное решение и радоваться? Если исключить мазохистов, то огромное число нормальных людей будет использовать какой-либо движок, который РАЗУМЕЕТСЯ имеет свой тач-листенер, ориентированный на EAGLView приложения. Что мы имеем в таком случае?

Во-первых отлетает тач-приоритет, притом наглухо. То есть если в зависимости от нажатия на кнопку должен меняться z-order скролбара, решение уже не подходит.
Во-вторых поимеем совершенно ненужный геморрой с числом тачей более одного. Да-да, обработка двух тачей одновременно в openGL приложении встречается реже говна мамонта, я в курсе.
В-третьих просто порадуемся за таких ребят. Я подозреваю, что разрешение для iPhone5 рекомендовал подобного же уровня консультант.

// ЗЫ. Сорри за оффтоп, не удержался )))

nesПостоялецwww24 апр. 20132:06#6
Я когда-то, еще на 3 IOS-е через веб вьюшку выводил текст поверх GLView, работало нормально:
http://itunes.apple.com/us/app/im-good-in-sports/id329160686?mt=8
Т.к. игрушка была простенькая, то проблем не было, а так лучше конечно постараться обойтись средствами OpenGL )
alcoSHoLiKПостоялецwww24 апр. 20132:57#7
CasDev
Извини, я не понял критики. Безусловно, если используется некий кросс-платформенный движок, он будет предоставлять свою систему ввода. Но распознавание жестов тебе придется написать самому, скорей всего.

В любом случае, у кросс-платформенной обработки инпутов есть несколько минусов. Самый главный -- скроллинг в твоей игре не будет нативным. Следовательно, рефлексы игрока, которые выработались у него при использовании сотен других приложений, реализованных с нативным скролом, уже не будут применимы к твоей игре и игрок будет чувствовать дискомфорт.

Перечисленных тобой проблем с z-order и приоритетом я не понял. Не сталкивался.

watВедущийwww24 апр. 20135:09#8
alcoSHoLiK
nes
Спасибо, интересно, похоже работает хоть как-то, надо пробовать.
CasDevПостоялецwww24 апр. 20137:40#9
alcoSHoLiK
Пардон, никого не хотел обидеть. Сарказм был в отношении WWDC.
В качестве примера можно привести ряд кнопок на скроллбаре, при этом кнопка при наведении подсвечивается и слегка увеличивается в размерах. При захвате кнопочка может в виде объекта лечь на основной слой - встречается такое почти в любой детской аппликации.
FeoПостоялецwww24 апр. 201313:17#10
alcoSHoLiK
> На WWDC еще года 3 назад рекомендовали именно так и делать интерфейсы для
> OpenGL игр
не рекомендовали, а хвастались своим интерфейсом, что он мол даже на производительность OpenGL практически не влияет.

wat
недавно реализовывал такую схему на мак-приложении, не думаю, что на ios возникнут какие-либо проблемы.
правда без яваскрипта и прочих client-side динамических штучек, проблем с производительностью замечено не было.

/ Форум / iPhone: Создание игр / Программирование

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр