Две недели назад все только и гадали – какие новые возможности 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
45 комментариев
Форум →Как только будет возможность купить его , так сразу))) Круто! А кто то на форуме вечно орал что нету смысла его менять с 2g (или даже с 3G), но мне все равно , у меня не одного IPhone нету :D
Ну вот, теперь после появления новых игр постоянно будет надпись – “только для 3ГС”. (((
Мощная статья, спасибо. Информация стала более-менее упорядочиваться. Побольше бы материала от специалистов своего дела.
А помоему мало нововведений касаемо АйФона 3GS в целом =( Не знаю стоит ли переходить с 3G – Кажется нет. Ничего инновационного не вижу =( А камеру если получится с разборки выну надеюсь входы выходы теже =0))
может apple и на этот реализовало маленькую революцию , просто этого пока не очент заметно .. неужели 3gs покупать прийдётся:(
То ест произойдет разделение App store на два лагеря?
Ну, если кто-то маньячит в игры на айфон, то пусть приобретает 3гс.
все больше хочу его
Я что-то не понял: это видео память увеличилась до 256МБ или это про оперативную память??? И вообще, скоко у видеоускорителя памяти???
буфер графической памяти
это бессмысленно, никакая графика не заставит меня всерьез играться на этом лилипутском экранчике, тем более что управление с тачскрина в неказуальных играх sucks…
ZZzzzzZZZZzzz, простите, но пока 17″ для телефонов не изобрели. Может в скором будущем???
да там не только игры, теперь и более мощный софт появится, для бизнес целей и не очень, так что мощности растут, и скорее скоро будут разделения в аппсторе, для 3ГС и для старых
Spuner, написано что общая память, как на интегрированных видюхах на ПК
Не, на самом деле, более менее серьезные игры — аналоги РС-платформы с подобным управлением немного не серьезно. ИМХО iFighter, Bejeweled, Knights, карай iDracula — вот оптимальные игровые жанры для этого мультимедийного устройства.
ZZzzzzZZZZzzz если подключать к внешнему монитору/телевизору а сам телефон в качестве джойстика, почему бы и нет…
Spuner – оперативная память увеличилась, и если до сих пор видео память 24 была отдельна от оперативной, то сейчас оперативная стала общей, романтика
С прошивкой 3.0 должны появиться появиться подобия геймпадов для айфона от сторонних производителей…
Но а насчет графики – PS3 тоже самая продвинутая приставка 7 поколения, но и самая низкая по продажам, во многом из-за цены…цена нового айфона тоже не радует =(
Извините за оффтоп. есть такая проблема, я зарегился на форуме. но не имеею возможость оставлять сообщения ни в темах для новичков ни в каких либо. и нет возможности набрать эти 20 сообщиений что бы был доступ ко всем темам. может кто в курсе
Какой в жопу монитор, железо хорошее да ! ДЛЯ ТЕЛЕФОНА ! Вы представляете эту графика дюймах так на 20 ?! Шутите ? Я зомбированый идиот собираюсь покупать 3гс не для игр, просто хочу.
не, я конечно не пишу игры под айфон (да и вообще не пишу их под что-либо, ибо музыкант), но что-то мне подсказывает, что с “где-то между ИКСящиком и ИКСшариком” явно перегнули палку… или же это трактуется так “по шкале ящик 0% – шарик 100% находится на полочке 0,5%”… если не ошибаюсь сейчас многие компьютеры до сих пор не радуют такой графикой как старшие консоли мелкомягких и японцев. а эппл такие рррраз – и запихнули всё это в девайс размером с пульт от телека… революционеры)) не, пока не увижу, что ни говорите, а не поверю… вот кричали графика на 3г уделывает псп и тд… да в каком же месте интересно. возьмите хотя бы бога войны с последней и этого, как его, ну, похож тоже на бегающего малополигонального молчаливого кратоса, режущего на пиксели непонятную затекстурированную кашу. имхо, удел айфона – казуальные игры, квесты и гонки, ибо акселерометр это круто, но с его помощью далеко в рпг, ртс, фпс, тпс и тд не завалишься
я очень жду 3gs в России
Ишь ты, хорошая статья.
Ладно, подожду пока возникнет возможность, привезти его из Италии…..
iUser, это на подобие видео карт Nvidia, с функциями Turbo Cash. Но оперативной памяти (256МБ), не будет маловато??? А вообще, это хорошая идея. Только бы, реализация была нормальной…..
Супер-супер!о чем я вчера и спрашивал!)
Я удивлен оценкам нового 3GS с нашей стороны! Вот ничего нового и т.д. и бла-бла-бла!!! А что еще нам в телефоне надо?! Разве что некоторым Bluetooth именно от производителя, а не сторонняя прога. И то, только некоторым! Я больше чем уверен, что если бы 3GS вышел в совершенно новом корпусе, то все бы восторгались и писали кипятком! А так, дизайн мы уже видели, а значит ничего нового!!! Я думаю, что будет новый корпус и будет еще что-то новенькое. Ведь не даром в прошивке нашли упоминания о 2.1, а 3GS таковым не является! Вопрос лишь только во времени!
Barmoglot, 3ГС это и есть 2.1
первое поколение было 1.1 и 1.2, 3ГС это второе поколение фонов – 2.1.
Ну не все же покупают сей девайся для игр!!! а если так, то преимущества 3G S уже не такие резонные))
Смотрите
Первое поколение IPhone:
IPhone Original(2G) – 1.1
IPhone 3G – 1.2
Вывод: Смена корпуса GPS и еще всякая фигня.
Второе поколение IPhone:
IPhone 3G Speed – 2.1
IPhone ——– – 2.2 (Будет)
Вывод: Как и с первым поколением 2.2 будет с новым дизайном!
Первая цифра означает поколение , а вторая внешний вид.
Только это приходит в голову! Как думаете правдоподобно?
http://www.youtube.com/watch?v=cuikXR_y7Ok&feature=fvhl – зацените. и это при том, что говорит человек, с детства разговаривающий на англ., произношение замечательное. “no music” – просто убило))))))
call – no music
ха-ха-ха
Говорю с коммерческой точки зрения от лица разработчиков:
Это все круто! Безусловно, многие игры будут использовать новые возможности на всю катушку, но создавать свои игры только по 3гс как минимум глупо! Обязательно должны быть версии для старых платформ! Иначе будут значительные потери при продаже. Не все пользователи и игроманы могут позволить себе купить обновленную версию iPhone.
Не волнуйтесь, все будет и на ваших айфонах первых двух поколений, пусть не так быстро и красиво. ;)
да как мне кажется просто будет игра автоматически распознавать устройство и в случае если это не 3джиэс то отключать всякие навороты графики … именно так ведь можно играть во всякие нфски на каком нибудь старом пне со старой видяхой … а так я жду 3джиэс в России буду делать первым предзаказ и ваще очень хочу айфон =)
iUser, ага, iPhone подключим к телевизору, а PS3 будем как сотовым пользоваться. iPhone еще можно гвозди забивать, если не жалко. Всему свое применение, пусть iPhone хотя бы до PSP дорастет сначала. Ни одной конкурирующей с PSP игры на iPhone пока нет, так что мы тогда обсуждаем…
Модеры не задолбались комменты тереть ? Или вы и тут 24\7 =) ? Get a life…
Блин, ну и пиарчик организовали. да не ушел никуда ваш новый и никчемный афоня от того же 2г. а про псп даже и думать стыдно… и рядом с ней не стоит. пока не будет нового экрана, увеличенного времени работы и нового дизайна устройства – не будет и нового iPhone от Apple. деньги лучше поберегите для чего-нить полезного.
играть на телефоне – примерно тоже самое что звонить по игровой приставке.
Можно конечно, но зачем?
bakeev, так приятно же.
зачем отказываться от приятного? :)
koldun, тем не менее, по мнению многих разработчиков, 3Gs скоро легко обгонит PSP по качеству игр – особенно если учесть, что 3Gs позволяет подключить внешнее управление.
Ну да посмотрим, конечно.
“да как мне кажется просто будет игра автоматически распознавать устройство и в случае если это не 3джиэс то отключать всякие навороты графики …”
kosoi, проблема как раз в том, что тут не обойтись “выключением в зависимости от условия” – о чем и написано в статье. Фактически игра должна быть написана два раза – для iPhone 2G/3G и для 3Gs. Они слишком разные. Если это сделано – конечно, не вопрос, можно распознавать устройство и выполнять наиболее подходящий для него вариант.
Обратная совместимость, безусловно, есть (игра для 3G будет работать на 3Gs), но не наоборот.
test
test1
vk
есть такая вещ, как опции. Просто они будут либо включены, либо выключены. Автоматически или пользователем без разницы.
Думаю, что лучше бы Apple, вместо наворота видео, минимизировала толщину и вес аппарата. А для игр есть прекрасная PSP.
Kirbase, прочитайте определение шейдеров и поймите, что можно делать либо с ними, а что без них них. Это не опция-вкл-выкл, это реально двойная разработка.
Представьте, что игру надо разработать одновременно для матричного принтера и для плазменного дисплея. Это что, так, “опция вкл/выкл”? ну да, вкл-выкл – но при условии, что сначала написаны два полноценных и абсолютно разных по реализации варианта.
я могу сказать так! те кто говорят, что разницы между iPhone 3GS и 3G нету-это люди которые просто напросто завидуют или они недавно купили себе 3G и у них нет в данный момент возможности перейти на новую модель! и не нужно говорить что там есть из нового только компас!!! а процессор, больше памяти, возможность снимать на видео, лучше камера и это только основное!!!
Нашли орфографическую ошибку в новости?
Выделите ее мышью и нажмите Ctrl+Enter.Как увеличить масштаб экрана на Apple Watch
Почему не получается удалять приложения на iPhone
Сервисный центр завышает стоимость ремонта iPhone, как быть?
Какой блок питания нужен для быстрой зарядки iPad
Как перенести фото со старого iPhone в Google?
Как настроить внешний вид папок на Mac
Как обнаружить сердечную аритмию при помощи Apple Watch
Почему камера iPhone не может сфокусироваться