DirectX и консоли
Познавательно
Читал тут недавно статью о DirectX 10 и прочитав понял на сколько он крут. Так же в статье были упоминания о консолях. Всё что их касается можете прочитать ниже.
DirectX и консоли
Существует определенная путаница, когда речь заходит о том, «какая версия DirectX на консолях». Помимо PC, DirectX используется как API (то есть средство взаимодействия игры с графическим «железом») в приставках Microsoft: Xbox и Xbox 360. Версия DirectX в первой Xbox примерно соответствовала DX8 – в качестве видеочипа там использовался аналог GeForce 3/4, соответствующий спецификациям этого API. В Xbox 360 применяется специальная версия DirectX, которая по архитектуре и возможностям занимает промежуточное положение между DX9 и DX10, – можно сказать, что при разработке DX10 инженеры Microsoft активно использовали опыт Xbox 360. Соответственно, и «железо» этой консоли поддерживает промежуточную шейдерную модель 3.5 (в DX9 была 3.0 максимум), в которой много от DX10 и SM 4.0, но нет геометрических шейдеров.
С консолями Sony все сложнее. В PS2 графическая подсистема была разработана самим производителем и никаким сторонним стандартам и спецификациям не соответствовала. В PS3 Sony была вынуждена использовать PC-чип Nvidia G70 (GeForce 7800/7900), изначально созданный для соответствия требованиям DirectX 9.0c и SM 3.0. Таким образом, можно сказать, что «железо» PS3 находится на уровне DX9, хотя сам этот API в консоли Sony по понятным причинам не применяется – вместо этого там используется модифицированная версия OpenGL.
Как движки работают теперь? Во-первых, центральный процессор сейчас уже очень редко изменяет геометрию – он лишь двигает «кости», а за то, чтобы «плоть» объектов двигалась вслед за костями, отвечает исключительно видеокарта, запрограммированная с помощью соответствующих вершинных шейдеров (vertex shaders). Это позволяет не только разгрузить CPU от этой несвойственной ему «глупой» работы, но и передавать геометрию персонажей в память видеокарты всего один раз при загрузке уровня, что очень благотворно влияет на производительность.
Во-вторых, разработчики все активнее стараются использовать механизм instancing, позволяющий отрисовывать множество идентичных объектов всего за один вызов драйвера. Именно благодаря instancing мы можем любоваться травой и густыми лесами, которые созданы путем тысячекратного повторения нескольких шаблонных деревьев или кустиков травы, причем для отображения этих тысяч зеленых насаждений необходимо всего несколько (а иногда даже один) вызовов рендеринга. Ясное дело, при этом мы рискуем отправить на отрисовку несколько десятков лишних кустов, которые будут заведомо не видны, но это не скажется отрицательно на производительности – тем более что современные GPU обладают развитыми средствами удаления невидимой геометрии и до «дорогостоящего» этапа растеризации лишние объекты, скорее всего, даже не дойдут.
В теории все звучит замечательно, но если применять такой подход на практике под DirectX 9, то быстро обнаружится несколько подводных камней. Главная проблема в том, что все эти идентичные объекты, которые мы выводим на экран «одним махом», – они такие… идентичные. Возможности придания им индивидуальности крайне ограничены.
Само собой, о том, чтобы выводить таким способом сложно анимированные объекты – каждый со своим скелетом и со своей фазой анимации в данном кадре, – не может быть и речи.
DirectX 10 хорош тем, что дает программистам такие широкие возможности в применении instancing, о которых раньше можно было только мечтать. Фактически, теперь движок может всего один раз загрузить в память GPU множество вариантов формы, массив текстур для объектов и соответствующий вершинный шейдер. После этого в каждом кадре нужно лишь передавать видеокарте через бутылочное горлышко драйвера отмашку «Давай!» со списком положений и желаемых особенностей объектов – в результате одним вызовом можно рисовать тысячи не похожих друг на друга камней или деревьев.
Известно, что игровые PC, как правило, производительнее, чем приставки, но раньше превосходство достигалось «грубой силой», через все более мощные процессоры и видеокарты. Теперь PC сможет воспользоваться всей этой мощью гораздо эффективнее, не давая львиной ее доле «вылетать в трубу». Это значит, что топовые процессоры в комбинации с топовыми DX10-видеокартами смогут выводить в кадре просто умопомрачительное количество деталей, не достижимое в ближайшие 5 лет на других платформах.
Еще одна новая возможность DirectX 10, которую можно использовать как с геометрическими шейдерами, так и с вершинными, называется «потоковый вывод». Этот термин означает, что теперь, вместо того чтобы передавать данные о графических примитивах (вершинах, ребрах, треугольниках) дальше по конвейеру рендеринга для визуализации, их можно сохранять в памяти видеокарты и использовать много раз. Это полезно, к примеру, если нужно нарисовать персонажа со сложными тенями и сложным освещением, – в этом случае может понадобиться несколько проходов. Раньше, в DirectX 9, при каждом проходе нужно было заново прогонять вершинные шейдеры и заново вычислять координаты всех вершин персонажа. Теперь это можно сделать всего один раз, сохранив результаты в буфере, а затем сделать столько проходов, сколько нужно, серьезно экономя ресурсы GPU.
Кроме того, в G80 Nvidia представила новый, более эффективный и качественный тип антиалиасинга – CSAA, который призван со временем заменить ныне используемые методы.
От себя добавлю:
Из всего прочитанного я понял как морально всё же устарел чип nVidia G70 и спецификация DirectX 9 ..........и как много ограничений наложено сейчас на нашу сони пс3, а так же сколько , по сути, ненужной работы выполняет процессор Cell. Да мы имеем супер продвинутую архитектуру, ЭТО действительно то к чему сейчас стремятся и Intel и ATI (всё же Японцы просто красавцы в этом плане), но есть одно большое НО.............и это ограничение, которое накладывается чипом G70. Не нужно было использовать его, а нужно было идти путём пс2 и делать свою видеосистему под стать процессору Cell........
Оригинал статьи находится по адресу : http://www.gameland.ru/spec/39635/default.asp
Sten:
2 S-kan в том-то и дело..из всех разговоров я так толком и не понял, че там за оператива стоит...поэтому так и говорю...частота крутая...а чего тогда говорят, что у бокса лучше? о_О 3,2 гига оперативы-это усраццаУ бокса не лучше а проще...вернее она такая же как и на компе, поэтому программерам проще под нее программировать...вот и все...а так если до конца научатся то Соньковской оперативке нет равных...)
SonyCorp:
Читал тут недавно статью о DirectX 10 и прочитав понял на сколько он крут. Так же в статье были упоминания о консолях. Всё что их касается можете прочитать ниже.
DirectX и консоли
Существует определенная путаница, когда речь заходит о том, «какая версия DirectX на консолях». Помимо PC, DirectX используется как API (то есть средство взаимодействия игры с графическим «железом») в приставках Microsoft: Xbox и Xbox 360. Версия DirectX в первой Xbox примерно соответствовала DX8 – в качестве видеочипа там использовался аналог GeForce 3/4, соответствующий спецификациям этого API. В Xbox 360 применяется специальная версия DirectX, которая по архитектуре и возможностям занимает промежуточное положение между DX9 и DX10, – можно сказать, что при разработке DX10 инженеры Microsoft активно использовали опыт Xbox 360. Соответственно, и «железо» этой консоли поддерживает промежуточную шейдерную модель 3.5 (в DX9 была 3.0 максимум), в которой много от DX10 и SM 4.0, но нет геометрических шейдеров.
С консолями Sony все сложнее. В PS2 графическая подсистема была разработана самим производителем и никаким сторонним стандартам и спецификациям не соответствовала. В PS3 Sony была вынуждена использовать PC-чип Nvidia G70 (GeForce 7800/7900), изначально созданный для соответствия требованиям DirectX 9.0c и SM 3.0. Таким образом, можно сказать, что «железо» PS3 находится на уровне DX9, хотя сам этот API в консоли Sony по понятным причинам не применяется – вместо этого там используется модифицированная версия OpenGL.
Как движки работают теперь? Во-первых, центральный процессор сейчас уже очень редко изменяет геометрию – он лишь двигает «кости», а за то, чтобы «плоть» объектов двигалась вслед за костями, отвечает исключительно видеокарта, запрограммированная с помощью соответствующих вершинных шейдеров (vertex shaders). Это позволяет не только разгрузить CPU от этой несвойственной ему «глупой» работы, но и передавать геометрию персонажей в память видеокарты всего один раз при загрузке уровня, что очень благотворно влияет на производительность.
Во-вторых, разработчики все активнее стараются использовать механизм instancing, позволяющий отрисовывать множество идентичных объектов всего за один вызов драйвера. Именно благодаря instancing мы можем любоваться травой и густыми лесами, которые созданы путем тысячекратного повторения нескольких шаблонных деревьев или кустиков травы, причем для отображения этих тысяч зеленых насаждений необходимо всего несколько (а иногда даже один) вызовов рендеринга. Ясное дело, при этом мы рискуем отправить на отрисовку несколько десятков лишних кустов, которые будут заведомо не видны, но это не скажется отрицательно на производительности – тем более что современные GPU обладают развитыми средствами удаления невидимой геометрии и до «дорогостоящего» этапа растеризации лишние объекты, скорее всего, даже не дойдут.
В теории все звучит замечательно, но если применять такой подход на практике под DirectX 9, то быстро обнаружится несколько подводных камней. Главная проблема в том, что все эти идентичные объекты, которые мы выводим на экран «одним махом», – они такие… идентичные. Возможности придания им индивидуальности крайне ограничены.
Само собой, о том, чтобы выводить таким способом сложно анимированные объекты – каждый со своим скелетом и со своей фазой анимации в данном кадре, – не может быть и речи.
DirectX 10 хорош тем, что дает программистам такие широкие возможности в применении instancing, о которых раньше можно было только мечтать. Фактически, теперь движок может всего один раз загрузить в память GPU множество вариантов формы, массив текстур для объектов и соответствующий вершинный шейдер. После этого в каждом кадре нужно лишь передавать видеокарте через бутылочное горлышко драйвера отмашку «Давай!» со списком положений и желаемых особенностей объектов – в результате одним вызовом можно рисовать тысячи не похожих друг на друга камней или деревьев.
Известно, что игровые PC, как правило, производительнее, чем приставки, но раньше превосходство достигалось «грубой силой», через все более мощные процессоры и видеокарты. Теперь PC сможет воспользоваться всей этой мощью гораздо эффективнее, не давая львиной ее доле «вылетать в трубу». Это значит, что топовые процессоры в комбинации с топовыми DX10-видеокартами смогут выводить в кадре просто умопомрачительное количество деталей, не достижимое в ближайшие 5 лет на других платформах.
Еще одна новая возможность DirectX 10, которую можно использовать как с геометрическими шейдерами, так и с вершинными, называется «потоковый вывод». Этот термин означает, что теперь, вместо того чтобы передавать данные о графических примитивах (вершинах, ребрах, треугольниках) дальше по конвейеру рендеринга для визуализации, их можно сохранять в памяти видеокарты и использовать много раз. Это полезно, к примеру, если нужно нарисовать персонажа со сложными тенями и сложным освещением, – в этом случае может понадобиться несколько проходов. Раньше, в DirectX 9, при каждом проходе нужно было заново прогонять вершинные шейдеры и заново вычислять координаты всех вершин персонажа. Теперь это можно сделать всего один раз, сохранив результаты в буфере, а затем сделать столько проходов, сколько нужно, серьезно экономя ресурсы GPU.
Кроме того, в G80 Nvidia представила новый, более эффективный и качественный тип антиалиасинга – CSAA, который призван со временем заменить ныне используемые методы.
От себя добавлю:
Из всего прочитанного я понял как морально всё же устарел чип nVidia G70 и спецификация DirectX 9 ..........и как много ограничений наложено сейчас на нашу сони пс3, а так же сколько , по сути, ненужной работы выполняет процессор Cell. Да мы имеем супер продвинутую архитектуру, ЭТО действительно то к чему сейчас стремятся и Intel и ATI (всё же Японцы просто красавцы в этом плане), но есть одно большое НО.............и это ограничение, которое накладывается чипом G70. Не нужно было использовать его, а нужно было идти путём пс2 и делать свою видеосистему под стать процессору Cell........
Оригинал статьи находится по адресу : http://www.gameland.ru/spec/39635/default.asp
пиар...
как тормозили игры,так и будут тормозить, и никакое железо спасать не будет,т.к. про понятие оптимизация вспоминать сегодня не модно.
теория это все,на практике все мягко говоря иначе...это все в контексте разговоров о ДХ10.с каждой новой версией этого апи нам обещают золотые горы,а реально мы получаем дулю с маком. опять же,очень ловко обставили ситуацию с шм4 и преподнесли её как фичу дх10,я над этим просто офигеваю. ШМ4 это общая модель шейдеров независимо от вида апи(ДХ или ОпенЖЛ) и как раз под очередную версию ШМ подгоняют версии АПИ.
Вы только вдумайтесь.....ПС2 когда она вышла и нам показали что у нее память ПАМЯТЬ!!!!!!32 мега, я думаю все смеялись....Но когда выходис нфс или гта новый на нее и комп, и у меня с моими 512 мегами нфс подтормаживать начинает.
Еслиб все что было написано выше в статье было бы так просто и легко, там обрабатывает сдесь быстрее идет и так далее то мы бы не успевали бы пройти игру как выходилабы новая с графой что глаза пухнут!
Комп: 10 дирет полностью идет на висте, для нормальной рабоы висты нужно 2 гига оперативы и это только на операционку, вы думаете когда вы начинаете играть то ваша виста испаряется, а затем необычным образом снова всплывает, конечно она в памяте висит, еслиб она там не висела, то из игры бы вы выходили столькоже сколько и ззагружается комп! Поэтому и пишут что нужно для нормальной игры 3 гига эт минимум, не учитывая что когда вы игаете виста там еще свои всякие дела делает.
Видюха о чем собственно и речь!
Вы заываете ребятам! Япония эт вам не россия где технологии покупают с большого бодуна и то только по праздникам. Там все 2000 раз взвесили и продумали. И я думаю, что у SONY есть свой джокер в колоде. Не зря они на процессор столько денег угрохали. Давно известно что каждое ядро отвечает за свои дела. Мне кажется и видюха без внимания не останеться ей тоже ядро полагается и оперативке.
П,С,
Все говорят, что комп стремительнее развивается чем сонька, эт пока до определенного момента. Все развитие связано с новой операционкой. Ее выпускают не чаще чем раз в пять лет. ХП тянул максимум 2-х ядерники, я думаю что виста тоже только да 8-ми ядер максимум дотянет и то сомневаюсь, не будут же вам операционки штамповать как игры правильно?
Это было ИМХО.
А директ это вообще исключительно мелкософтовская хня, на сколько знаю... Так, что на "это" равняться точно не стоит...
про DireсtX.
на счет оперативки малость ошибся: видео оперативка 700МГц, общая оперативка 3,2ГГц.
Воопще вопрос можно поставить по другому: Директ обновляется также как и прошивка, директ нужен для обеспечения связи между прогой и драйверами железа, прошивка меняется, следовательно в PS3 можно в результате смены прошивки сменить "директ", который будет улучшен, т.е в PS3 есть нечто похожее Директу, что должно быть подвержено улучшению. Меня больше интересует вопрос: на PSP при смене прошивки на 3,5 (если не ошибаюсь) произошел разгон ее проца с 200 до 333 МГц (поправте, если что не так); возможен ли такой фокус с PS3 при условии, что известно, что Cell может нормально работать при частоте 4,0ГГц (было заявленно перед запуском консоли в Японии), одно SPE ядро в PS3 отключено для того, "...чтобы повысить выход годных процессоров", оперативку на видюхе я тоже всегда разгоняю в среднем на 10% без особых трудностей.
Если ответ "ДА" и все это железо можно разогнать, то PS станет актуальна не на 5 лет, а на ... 6-7 :)
С другой стороны может быть это все мечты
