Большой шаг вперед: графика на iPhone 3GS

|
FavoriteLoading В закладки

iphonegame

Две недели назад все только и гадали – какие новые возможности iPhone анонсирует Apple на WWDC? Бурные обсуждения, множество догадок. Согласно одной из версий, новинкой должен был стать улучшенный графический чип, хотя лично я в это совершенно не верил. В конце концов, iPhone и так впереди многих по скорости и качеству графики.

Поверьте, когда Apple сообщила подробности, это стало для меня полнейшим сюрпризом. В телефоне действительно появился новый графический чип – и это была не просто более быстрая модель; это был PowerVR SGX, что эквивалентно смене поколения в мире консольных игровых приставок. Чувство удивления быстро сменилось большим энтузиазмом по поводу моря возможностей, открываемых новым чипом.

Шейдеры. Наконец-то!

Фрагментные (Пиксельные) шейдеры (Pixel Shader)
Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксель, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения [Википедия]

Занимаясь разработкой игр для приставок, я считал наличие вершинных и пиксельных шейдеров чем-то очевидным. Подобно тому, как большинство разработчиков не задумывается о том, поддерживает ли их процессор числа с плавающей точкой, я привык к тому, что шейдеры всегда находятся в моем наборе инструментов. Программируя графику на “обычном” iPhone, без шейдеров я всегда чувствовал себя скованным и неловким. Теперь об этом можно забыть: iPhone 3Gs предлагает нам полностью программируемый конвейер (pipeline) с поддержкой шейдеров.

Наконец-то мы сможем реализовать различные модели освещения, легко добавлять отражения и преломления, использовать карты рельефа, выполнять нефотореалистичный рендер и использовать кучу других современных возможностей, к которым все привыкли в современных играх. Безусловно, в итоге все это означает более богатую и детализированную игровую графику.

Помимо того, что вершинные шейдеры помогут сделать полигоны менее угловатыми, их можно также использовать, чтобы описать поведение каждой отдельной вершины (что было слишком большой нагрузкой на CPU в предыдущей инкарнации iPhone). Теперь гораздо проще реализовать всевозможные эффекты вроде расплющивания, растягивания или скручивания.

Не только шейдеры

iPhone 3Gs предлагает куда больше, чем просто поддержка шейдеров. Новое железо поддерживают кучу возможностей, которые, может, не такие уж “крутые” и не так часто будут упоминаться, но все они – огромный подарок для программиста:

1. Stencil-буфер (или трафаретный буфер). Стенсил-буфер – очень гибкая вещь, которая пригодится любому программисту, занимающемуся графикой. Эта штука может быть использована для того, чтобы пометить какую-то часть картинки, как скрытую (представьте, что мы взяли трафарет и наложили его на фотографию), хотя есть и другие интересные технологии его использования (например, наложение теней).

2. Настоящие VBO, т.е. Vertex Buffer Objects (массивы вершин). Если вы пробовали использовать VBO на оригинальном iPhone, то скорее всего, результаты вас расстроили. API-то есть, а вот производительность так себе. Судя по всему, OpenGL драйвер был реализован так, что данные о вершинах обновлялись и копировались при выводе каждого фрейма, что полностью обессмысливало само понятие VBO. Хорошая новость: iPhone 3Gs предлагает истинные VBO, так что вы лишь один раз загружаете в графический чип данные о ваших объектах, а затем они используются железом каждый раз, когда объект необходимо вывести на экран.

3. Общая память (Unified memory). Apple любит говорить о деталях своего аппаратного обеспечения очень и очень размыто – возможно, для того, чтобы иметь возможность позже обновить его, не создавая никому проблем. Вместе с тем, это препятствует тому, чтобы использовать железо “по-максимуму”. Одним из малоизвестных фактов является то, что графическая память iPhone 3G составляет 24 MB – и в этот объем нужно уместить все текстуры, вершины и т.д. Теперь iPhone 3Gs использует для графики обычную память – и это означает, что графические объекты могут располагаться в любом месте без каких-либо ограничений. А если вспомнить, что память у нас увеличилась до 256MB, то становится ясно: все это неизбежно приведет к весьма заметному улучшению графики в новых играх.

4. Текстурные блоки (texture units). У iPhone 3G было всего два текстурных блока, что ограничивало нас довольно базовой функциональностью: базовая текстура плюс карта освещенности. Все остальное требовало использования нескольких проходов, что приводило к повторному рендерингу геометрии и здорово замедляло процесс. Новое железо поддерживает 8 текстурных блоков, так что при реализации всевозможных эффектов ограничений больше нет (выше только звезды!). При этом, безусловно, не стоит забывать, чем больше текстур – тем больше затраты на их обработку.

С точки зрения разработчика…

..нет сомнения, что iPhone 3Gs – нечто совершенно новое: он быстрее, имеет больше памяти и кучу новых возможностей. Давайте скажем честно: это совершенно новая платформа. До этого мы еще могли игнорировать различия между iPhone 3G и iPod Touch 2nd gen, но больше это не так. И это первый шаг к фрагментации рынка iPhone-приложений.

И мы говорим не о том, что ситуацию можно поправить парочкой #ifdef (т.е. условной компиляцией). Это в самой основе своей иная платформа, для которой все графические объекты создаются иначе; это новый конвейер, для которого будут делаться шейдеры; это куда больше программирования и оптимизации.. Иными словами, если вы планируете использовать новое железо, то затраты на разработку возрастут. Никаких сомнений в этом нет.

С другой стороны, разработчики просто не могут игнорировать рынок из более чем 40 миллионов iPod Touch’ей и iPhone’ов предыдущего поколения, поэтому нам придется довольно долгое время одновременно поддерживать две платформы. Полагаю, довольно большое количество разработчиков продолжат ориентироваться исключительно на предыдущий iPhone 3G, не используя продвинутые возможности нового железа. Остается только надеяться, что Apple не будет представлять абсолютно новую платформу каждый год и убережет разработчиков от тех кошмаров, что они имеют на PC.

Взгляд пользователя

Каким образом от нового железа выиграют пользователи? iPhone 3G можно описать как нечто очень похожее на игровую консоль Sega Dreamcast. Но тогда iPhone 3Gs напоминает “навороченный” Microsoft Xbox и сидит где-то между оригинальным Xbox и Xbox 360.

Очень скоро разница между старыми играми, и новыми (использующими новые возможности), станет очевидной для всех пользователей, хотя небольшой форм-фактор и разрешение экрана несколько смягчают разницу в восприятии (разница будет куда заметнее, если Apple официально реализует возможность “video out”, так что iPhone можно будет подключить к TV).

Выводы

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

Оригинал: http://www.mobileorchard.com/a-huge-leap-forward-graphics-on-the-iphone-3gs/
Об авторе: Ноэль Лопис (Noel Llopis) является создателем независимой компании Snappy Touch и разработчиком iPhone-приложения Flower Garden.
Перевод: vk

Оставайся в теме. Подпишись на наш Telegram 👏
FavoriteLoading В закладки
undefined
iPhones.ru
Две недели назад все только и гадали – какие новые возможности iPhone анонсирует Apple на WWDC? Бурные обсуждения, множество догадок. Согласно одной из версий, новинкой должен был стать улучшенный графический чип, хотя лично я в это совершенно не верил. В конце концов, iPhone и так впереди многих по скорости и качеству графики. Поверьте, когда Apple...
Прокомментировать

🙈 Комментарии 45

  1. b00b1ik avatar
    b00b1ik20 июня 2009
    0

    Как только будет возможность купить его , так сразу))) Круто! А кто то на форуме вечно орал что нету смысла его менять с 2g (или даже с 3G), но мне все равно , у меня не одного IPhone нету :D

  2. Cangl avatar
    Cangl20 июня 2009
    0

    Ну вот, теперь после появления новых игр постоянно будет надпись – “только для 3ГС”. (((

  3. 1010 avatar
    101020 июня 2009
    0

    Мощная статья, спасибо. Информация стала более-менее упорядочиваться. Побольше бы материала от специалистов своего дела.

  4. SantaCL avatar
    SantaCL20 июня 2009
    0

    А помоему мало нововведений касаемо АйФона 3GS в целом =( Не знаю стоит ли переходить с 3G – Кажется нет. Ничего инновационного не вижу =( А камеру если получится с разборки выну надеюсь входы выходы теже =0))

  5. Tresh avatar
    Tresh20 июня 2009
    0

    может apple и на этот реализовало маленькую революцию , просто этого пока не очент заметно .. неужели 3gs покупать прийдётся:(

  6. mirhost avatar
    mirhost20 июня 2009
    0

    То ест произойдет разделение App store на два лагеря?

  7. bakeev20 июня 2009
    0

    Ну, если кто-то маньячит в игры на айфон, то пусть приобретает 3гс.

  8. sanches avatar
    sanches20 июня 2009
    0

    все больше хочу его

  9. Spuner avatar
    Spuner20 июня 2009
    0

    Я что-то не понял: это видео память увеличилась до 256МБ или это про оперативную память??? И вообще, скоко у видеоускорителя памяти???

  10. mirhost avatar
    mirhost20 июня 2009
    0

    буфер графической памяти

  11. ZZzzzzZZZZzzz avatar
    ZZzzzzZZZZzzz20 июня 2009
    0

    это бессмысленно, никакая графика не заставит меня всерьез играться на этом лилипутском экранчике, тем более что управление с тачскрина в неказуальных играх sucks…

  12. Spuner avatar
    Spuner20 июня 2009
    0

    ZZzzzzZZZZzzz, простите, но пока 17″ для телефонов не изобрели. Может в скором будущем???

  13. k214-raZor avatar
    k214-raZor20 июня 2009
    0

    да там не только игры, теперь и более мощный софт появится, для бизнес целей и не очень, так что мощности растут, и скорее скоро будут разделения в аппсторе, для 3ГС и для старых

    Spuner, написано что общая память, как на интегрированных видюхах на ПК

  14. Casiopea20 июня 2009
    0

    Не, на самом деле, более менее серьезные игры — аналоги РС-платформы с подобным управлением немного не серьезно. ИМХО iFighter, Bejeweled, Knights, карай iDracula — вот оптимальные игровые жанры для этого мультимедийного устройства.

  15. iUser avatar
    iUser20 июня 2009
    0

    ZZzzzzZZZZzzz если подключать к внешнему монитору/телевизору а сам телефон в качестве джойстика, почему бы и нет…

    Spuner – оперативная память увеличилась, и если до сих пор видео память 24 была отдельна от оперативной, то сейчас оперативная стала общей, романтика

  16. N1NT3NDO avatar
    N1NT3NDO20 июня 2009
    0

    С прошивкой 3.0 должны появиться появиться подобия геймпадов для айфона от сторонних производителей…
    Но а насчет графики – PS3 тоже самая продвинутая приставка 7 поколения, но и самая низкая по продажам, во многом из-за цены…цена нового айфона тоже не радует =(

  17. Obre3 avatar
    Obre320 июня 2009
    0

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

  18. abraxas avatar
    abraxas20 июня 2009
    0

    Какой в жопу монитор, железо хорошее да ! ДЛЯ ТЕЛЕФОНА ! Вы представляете эту графика дюймах так на 20 ?! Шутите ? Я зомбированый идиот собираюсь покупать 3гс не для игр, просто хочу.

  19. nezlobnyj avatar
    nezlobnyj20 июня 2009
    0

    не, я конечно не пишу игры под айфон (да и вообще не пишу их под что-либо, ибо музыкант), но что-то мне подсказывает, что с “где-то между ИКСящиком и ИКСшариком” явно перегнули палку… или же это трактуется так “по шкале ящик 0% – шарик 100% находится на полочке 0,5%”… если не ошибаюсь сейчас многие компьютеры до сих пор не радуют такой графикой как старшие консоли мелкомягких и японцев. а эппл такие рррраз – и запихнули всё это в девайс размером с пульт от телека… революционеры)) не, пока не увижу, что ни говорите, а не поверю… вот кричали графика на 3г уделывает псп и тд… да в каком же месте интересно. возьмите хотя бы бога войны с последней и этого, как его, ну, похож тоже на бегающего малополигонального молчаливого кратоса, режущего на пиксели непонятную затекстурированную кашу. имхо, удел айфона – казуальные игры, квесты и гонки, ибо акселерометр это круто, но с его помощью далеко в рпг, ртс, фпс, тпс и тд не завалишься

  20. Maxim Xolod avatar
    Maxim Xolod20 июня 2009
    0

    я очень жду 3gs в России

  21. smacorp avatar
    smacorp20 июня 2009
    0

    Ишь ты, хорошая статья.

  22. Spuner avatar
    Spuner20 июня 2009
    0

    Ладно, подожду пока возникнет возможность, привезти его из Италии…..

  23. Spuner avatar
    Spuner20 июня 2009
    0

    iUser, это на подобие видео карт Nvidia, с функциями Turbo Cash. Но оперативной памяти (256МБ), не будет маловато??? А вообще, это хорошая идея. Только бы, реализация была нормальной…..

  24. Garkes avatar
    Garkes20 июня 2009
    0

    Супер-супер!о чем я вчера и спрашивал!)

  25. Barmoglot avatar
    Barmoglot20 июня 2009
    0

    Я удивлен оценкам нового 3GS с нашей стороны! Вот ничего нового и т.д. и бла-бла-бла!!! А что еще нам в телефоне надо?! Разве что некоторым Bluetooth именно от производителя, а не сторонняя прога. И то, только некоторым! Я больше чем уверен, что если бы 3GS вышел в совершенно новом корпусе, то все бы восторгались и писали кипятком! А так, дизайн мы уже видели, а значит ничего нового!!! Я думаю, что будет новый корпус и будет еще что-то новенькое. Ведь не даром в прошивке нашли упоминания о 2.1, а 3GS таковым не является! Вопрос лишь только во времени!

  26. k214-raZor avatar
    k214-raZor20 июня 2009
    0

    Barmoglot, 3ГС это и есть 2.1

    первое поколение было 1.1 и 1.2, 3ГС это второе поколение фонов – 2.1.

  27. djtim avatar
    djtim20 июня 2009
    0

    Ну не все же покупают сей девайся для игр!!! а если так, то преимущества 3G S уже не такие резонные))

  28. b00b1ik avatar
    b00b1ik20 июня 2009
    0

    Смотрите
    Первое поколение IPhone:
    IPhone Original(2G) – 1.1
    IPhone 3G – 1.2
    Вывод: Смена корпуса GPS и еще всякая фигня.

    Второе поколение IPhone:
    IPhone 3G Speed – 2.1
    IPhone ——– – 2.2 (Будет)
    Вывод: Как и с первым поколением 2.2 будет с новым дизайном!

    Первая цифра означает поколение , а вторая внешний вид.

    Только это приходит в голову! Как думаете правдоподобно?

  29. nezlobnyj avatar
    nezlobnyj20 июня 2009
    0

    http://www.youtube.com/watch?v=cuikXR_y7Ok&feature=fvhl – зацените. и это при том, что говорит человек, с детства разговаривающий на англ., произношение замечательное. “no music” – просто убило))))))

  30. bakeev20 июня 2009
    0

    call – no music
    ха-ха-ха

  31. Vertigo avatar
    Vertigo20 июня 2009
    0

    Говорю с коммерческой точки зрения от лица разработчиков:

    Это все круто! Безусловно, многие игры будут использовать новые возможности на всю катушку, но создавать свои игры только по 3гс как минимум глупо! Обязательно должны быть версии для старых платформ! Иначе будут значительные потери при продаже. Не все пользователи и игроманы могут позволить себе купить обновленную версию iPhone.

    Не волнуйтесь, все будет и на ваших айфонах первых двух поколений, пусть не так быстро и красиво. ;)

  32. kosoi avatar
    kosoi20 июня 2009
    0

    да как мне кажется просто будет игра автоматически распознавать устройство и в случае если это не 3джиэс то отключать всякие навороты графики … именно так ведь можно играть во всякие нфски на каком нибудь старом пне со старой видяхой … а так я жду 3джиэс в России буду делать первым предзаказ и ваще очень хочу айфон =)

  33. ZZzzzzZZZZzzz avatar
    ZZzzzzZZZZzzz20 июня 2009
    0

    iUser, ага, iPhone подключим к телевизору, а PS3 будем как сотовым пользоваться. iPhone еще можно гвозди забивать, если не жалко. Всему свое применение, пусть iPhone хотя бы до PSP дорастет сначала. Ни одной конкурирующей с PSP игры на iPhone пока нет, так что мы тогда обсуждаем…

  34. yes.rus avatar
    yes.rus20 июня 2009
    0

    Модеры не задолбались комменты тереть ? Или вы и тут 24\7 =) ? Get a life…

  35. koldun avatar
    koldun20 июня 2009
    0

    Блин, ну и пиарчик организовали. да не ушел никуда ваш новый и никчемный афоня от того же 2г. а про псп даже и думать стыдно… и рядом с ней не стоит. пока не будет нового экрана, увеличенного времени работы и нового дизайна устройства – не будет и нового iPhone от Apple. деньги лучше поберегите для чего-нить полезного.

  36. bakeev20 июня 2009
    0

    играть на телефоне – примерно тоже самое что звонить по игровой приставке.
    Можно конечно, но зачем?

  37. vk avatar
    vk21 июня 2009
    0

    bakeev, так приятно же.
    зачем отказываться от приятного? :)

  38. vk avatar
    vk21 июня 2009
    0

    koldun, тем не менее, по мнению многих разработчиков, 3Gs скоро легко обгонит PSP по качеству игр – особенно если учесть, что 3Gs позволяет подключить внешнее управление.

    Ну да посмотрим, конечно.

  39. vk avatar
    vk21 июня 2009
    0

    “да как мне кажется просто будет игра автоматически распознавать устройство и в случае если это не 3джиэс то отключать всякие навороты графики …”

    kosoi, проблема как раз в том, что тут не обойтись “выключением в зависимости от условия” – о чем и написано в статье. Фактически игра должна быть написана два раза – для iPhone 2G/3G и для 3Gs. Они слишком разные. Если это сделано – конечно, не вопрос, можно распознавать устройство и выполнять наиболее подходящий для него вариант.

    Обратная совместимость, безусловно, есть (игра для 3G будет работать на 3Gs), но не наоборот.

  40. mirhost avatar
    mirhost21 июня 2009
    0

    test

  41. mirhost avatar
    mirhost21 июня 2009
    0

    test1

  42. Kirbase avatar
    Kirbase21 июня 2009
    0

    vk
    есть такая вещ, как опции. Просто они будут либо включены, либо выключены. Автоматически или пользователем без разницы.

  43. ifreeman avatar
    ifreeman21 июня 2009
    0

    Думаю, что лучше бы Apple, вместо наворота видео, минимизировала толщину и вес аппарата. А для игр есть прекрасная PSP.

  44. vk avatar
    vk22 июня 2009
    0

    Kirbase, прочитайте определение шейдеров и поймите, что можно делать либо с ними, а что без них них. Это не опция-вкл-выкл, это реально двойная разработка.

    Представьте, что игру надо разработать одновременно для матричного принтера и для плазменного дисплея. Это что, так, “опция вкл/выкл”? ну да, вкл-выкл – но при условии, что сначала написаны два полноценных и абсолютно разных по реализации варианта.

  45. RPGM avatar
    RPGM13 августа 2009
    0

    я могу сказать так! те кто говорят, что разницы между iPhone 3GS и 3G нету-это люди которые просто напросто завидуют или они недавно купили себе 3G и у них нет в данный момент возможности перейти на новую модель! и не нужно говорить что там есть из нового только компас!!! а процессор, больше памяти, возможность снимать на видео, лучше камера и это только основное!!!

Вы должны авторизоваться или зарегистрироваться для комментирования.

Нашли орфографическую ошибку в новости?

Выделите ее мышью и нажмите Ctrl+Enter.

Как установить аватар в комментариях?

Ответ вот здесь