Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Все о вашем железном друге История развития и технология шейдеров (shaders)


Для начала новости современных технологий

    Asus тоже предложит Radeon HD 2900 XT с жидкостным охлаждением

Набирающую актуальность в условиях приближающегося календарного лета тему жидкостного охлаждения новейших флагманских видеокарт продолжает новость, опубликованная на страницах сайта TweakTown. Как известно, видеочип R600 любит хорошее охлаждение ещё больше, чем словно созданная специально для разгона видеокарта GeForce 8800 Ultra. По этой причине было бы вполне естественно ожидать анонса версий Radeon HD 2900 XT с предустановленными системами жидкостного охлаждения. Мы уже могли убедиться, что подобные видеокарты готовят компании Sapphire и MSI. Кстати, для Sapphire систему охлаждения будет делать компания Thermaltake, так что у желающих "повторить этот трюк дома" наверняка будет возможность купить соответствующую систему охлаждения отдельно от видеокарты. Компания MSI тоже подтвердила свои планы по выпуску охлаждаемого при помощи жидкости Radeon HD 2900 XT.

Оказывается, готовит версию Radeon HD 2900 XT с собственной системой водяного охлаждения и компания Asus. Об этом продукте известно очень мало, пока производитель только обещает снизить температуру на 10% по сравнению с эталонным воздушным кулером. На самой видеокарте размещён водоблок, охватывающий все горячие компоненты. С оборотной стороны видеокарты тоже имеется вспомогательное устройство охлаждения.

Помпа установлена непосредственно на водоблок, из-за чего пространство соседнего слота расширения видеокарта всё равно занимает. Резервуар и радиатор объединены в один блок. Система охлаждения также имеет индикатор потока и функцию звукового оповещения о критических неисправностях. Asus планирует показать эту видеокарту на выставке Computex 2007, открывающейся в начале следующего месяца.
    Характеристики интегрированных чипсетов GeForce 7xxx (MCP73) для платформы Intel

Компания Intel занимает первое место на рынке графических решений благодаря своим интегрированным чипсетам, поэтому попытку потеснить гиганта в этом сегменте можно считать смелым поступком. NVIDIA уже давно помышляет о выпуске интегрированных чипсетов с поддержкой DirectX 9.0c для платформы Intel - они известным нам под кодовым обозначением MCP73. До сих пор считалось, что эти чипсеты появятся в июне, однако теперь нам известно, что массовое производство чипсетов этой серии начнётся только в сентябре.

Перечислим основные характеристики чипсетов семейства MCP73:

GeForce 7050/nForce 630i (MCP73PV) -> графическое ядро с поддержкой DirectX 9.0c, поддержка 1333 МГц шины и одноканальной памяти типа DDR2-800, один слот PCI Express x16, две линии PCI Express x1, HDMI и HDCP, один гигабитный сетевой порт, четыре порта SATA-300 с поддержкой RAID 5, один порт PATA, десять портов USB 2.0;
GeForce 7025/nForce 630i (MCP73S) -> графическое ядро с поддержкой DirectX 9.0c, поддержка 1333 МГц шины и одноканальной памяти типа DDR2-667, один слот PCI Express x16, две линии PCI Express x1, HDCP, один гигабитный сетевой порт, четыре порта SATA-300 с поддержкой RAID 5, один порт PATA, десять портов USB 2.0;
GeForce 7025/nForce 610i (MCP73V) -> графическое ядро с поддержкой DirectX 9.0c, поддержка 1066 МГц шины и одноканальной памяти типа DDR2-667, один слот PCI Express x16, две линии PCI Express x1, один сетевой порт 10/100 Мбит/с, четыре порта SATA-300 с поддержкой RAID 0 и 1, один порт PATA, восемь портов USB 2.0.

Конкурировать с интегрированными чипсетами Intel компания NVIDIA собирается за счёт более привлекательного сочетания цены и функциональности. Чипсеты MCP73 должны втиснутся в зазор между Intel G33 и Intel G31. Судя по всему, цена чипсетов NVIDIA этой серии будет лежать в диапазоне $30-38.

Дополнительным оружием чипсетов MCP73 в борьбе с конкурентами из стана Intel должна стать лучшая совместимость с играми, но главным средством поражения противника станет всё же более низкая цена.

В сегменте дискретных чипсетов NVIDIA тоже собирается соперничать с Intel. Чипсеты семейства nForce 6xxi уже поддерживают 1333 МГц шину и готовы к работе с 45 нм процессорами поколения Penryn. Лояльность пользователей по отношению к видеокартам NVIDIA этот производитель планирует поощрять при помощи технологии LinkBoost, поддержка которой недавно прописалась в свойствах материнских плат на базе чипсета nForce 650i Ultra. Драйвер позволит автоматически разгонять видеокарту, быстродействие в играх должно подрасти на несколько процентов. Поддержка LinkBoost для Windows Vista появится в сентябре.

Чипсет nForce 650i Ultra также поддерживает технологию FirstPacket, это тоже позволит ему соперничать с Intel P35. Поскольку чипсеты NVIDIA сейчас встречаются преимущественно на материнских платах эталонного дизайна, все такие платы будут обладать повторяющимися характеристиками. Хотелось бы верить, что они будут радовать энтузиастов и оверклокеров.

В качестве дополнительного стимула для продвижения собственных продуктов NVIDIA будет предлагать дистрибьюторам комплекты из материнских плат на базе nForce 650i Ultra и видеокарт серии GeForce 8600 по льготным ценам.
    Стив Баллмер говорит о будущем Microsoft Office

Недавно генеральный директор Microsoft Стив Баллмер (Steve Ballmer) в здании Washington State Convention открывал конференцию по вопросам бизнеса и интеллектуальных разработок в промышленности.

Руководитель Microsoft Стив Баллмер в своей речи на конференции по вопросам бизнеса и интеллектуальных разработок, прошедшей в Сиэтле 11 мая, сказал несколько слов относительно будущего Microsoft Office. Отвечая на вопросы аудитории, он сказал, что при рассмотрении будущего Microsoft Office, его внедрении в инфраструктуру информационных технологий и интеллектуальных разработок в сфере бизнеса, люди должны строить свои размышления приблизительно в трех основных направлениях:

  • "Office должен переместиться в мир программного обеспечения + сервисов. Это не означает, что Office должен быть полностью переписан как AJAX приложение" - сказал он, рассказывая о основной технологии, обычно используемой для web-программ. Он назвал такую точку зрения "ошибочными мыслями некоторых ученых". При этом он не вдавался в подробности о том, как Office может проделать такую миграцию, чтобы активнее работать с online-сервисами.
  • Пользовательский интерфейс: "Мы проделали большую работу по созданию интерфейса в существующей версии Office для конечного пользователя" - сказал Баллмер. "Вы можете видеть, что мы продолжаем работать в этом направлении и добавлять новые функциональные возможности, потенциально новые модули, а также продолжаем делать основной пользовательский интерфейс еще более доступным".
  • "Office как участник процессов построения бизнеса". Здесь он отметил такие области, как интеллектуальные бизнес-разработки, потоковую работу, управление документами и интеграцию с бизнес-приложениями. Он также упомянул о потребности в интеграции с большим количеством серверов и функциональных возможностей сферы бизнеса.
Во время основной части своего выступления Баллмер особо выделил работу Microsoft с интеллектуальной технологией бизнеса в различных областях. "Мы действительно пытаемся демократизировать целую категорию" - сказал Баллмер, рассказывая о усилиях компании над тем, чтобы сделать ключевые данные более доступными для изготовителей бизнес-решений.


История развития и технология шейдеров (shaders)

С каждым годом 3D-графика становится все более реалистичной. Это достигается за счет внедрения новых технологий, как аппаратных, так и программных. В последние годы широкое применение получила технология шейдеров. Шейдер представляет собой программу, выполняющуюся на графическом процессоре и используемую в трёхмерной графике для определения окончательных параметров объекта или изображения. Это может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и прочие эффекты. Шейдер может использоваться для визуализации сложных с виду поверхностей при помощи простых геометрических форм, рисования объемных объектов на плоской поверхности. Для создания различных графических эффектов шейдер использует определенные программируемые регистры видеокарты. Шейдер может быть написан как на ассемблере, там и на шейдерном языке. Шейдерные языки являются специализированными C-подобными языками высокого уровня.

История и развитие шейдеров

Впервые технология шейдеров была представлена компанией Pixar в проекте RenderMan. RenderMan подразделяет процесс рендера на шесть частей, каждая из которых использует свой отдельный тип шейдеров. Это шейдеры источников света (light shader), шейдеры поверхностей(surface shader), деформирующие шейдеры(displacement shader), шейдеры объёма(volume shader), шейдеры трансформаций(tramsformation shader), и шейдеры отображения(imager shader).Соответственно первым шейдерным языком Pixar Shading Language. Эти шейдеры чаще всего программно выполняются универсальными процессорами и не имеют полной аппаратной реализации. В дальнейшем, многие исследователи описывали похожие на RenderMan языки, но они уже были предназначены для аппаратного ускорения. Peercy разработали технику для того, чтобы программы с циклами и условиями выполнять на традиционных аппаратных архитектурах при помощи нескольких проходов рендеринга. Шейдеры RenderMan разбивались на несколько проходов, которые комбинировались в буфере кадра. Позднее появились языки, которые мы видим аппаратно ускоренными в DirectX и OpenGL. Так шейдеры были адаптированы для графических приложений реального времени. Впервые шейдеры были применены именно в OpenGL. А в Direct3D шейдеры начали применяться в DirectX 8, но это уже был официальный стандарт 1.0.

Видеочипы раннего времени не были программируемы и исполняли только заранее запрограммированные действия. Алгоритм освещения был жестко зафиксирован в железе, и нельзя было ничего изменить. Производители видеочипов постепенно вводили в свои чипы элементы программируемости, сначала это были очень слабые возможности, которые не получили программной поддержки в Microsoft DirectX API, но со временем возможности постоянно расширялись. Впервые шейдеры появились в видеочипе NVidia GeForce 2 GTS , но они не произвели прорыва. Это связано с тем, что в то время шейдеры не были специфицированы и не поддерживались производителями игр. Версия Shader Model 1.0/1.1, появившаяся в DirectX 8, была сильно ограничена. Каждый шейдер мог быть сравнительно малой длины и сочетать весьма ограниченный набор команд. В дальнейшем, Shader Model 1 была улучшена с пиксельными шейдерами версии 1.4, которые предлагали большую гибкость, но также имели слишком ограниченные возможности.

Версия Shader Model 2.0 , появившись в DirectX 9, серьезно расширила возможности шейдеров реального времени, предложив более длинные и сложные шейдеры и заметно расширившийся набор команд. Была добавлена возможность расчетов с плавающей запятой в пиксельных шейдерах, что также стало важнейшим улучшением. После этого выходили чипы от NVIDIA которые улучшили возможности аппаратных шейдеров еще на шаг.

В Shader Model 3.0 были добавлены еще более длинные шейдеры, возможности динамических переходов в вершинных и пиксельных шейдерах, возможность выборки текстур из вершинных шейдеров и др. Появилась функция доступа к текстурам в вершинных шейдерах (Vertex Texture Fetch) - ключевая функция, используемая во многих появляющихся сегодня играх. На графических процессорах, которые не поддерживают данную функцию, такие игры либо не будут работать, либо будут использовать Shader Model 2.0, что приведет к потере эффектов и деталей, реализуемых с помощью Shader Model 3.0. На этом этапе появляется возможность создавать невероятные и сложные спецэффекты.

В Shader Model 4.0 получило широкое распространение механизма предикатов, и оптимизация их работы в железе, для реализации гибких условий без особого падения производительности. Здесь число констант и длина шейдеров практически не лимитированы, существенно выросло число временных регистров. Вложенность выборок текстур не ограничивается, как в базовой модели 2.0. Фактически, все это напоминает скорее сильно улучшенную модель 3.0, чем что-то принципиально новое, но этого и не надо, единственный возможный архитектурный шаг - произвольный доступ к памяти данных и команд еще не готов случиться. Поддержка Shader Model 4.0 планируется в DirectX 10.

На сегодняшний день применяются три поколения шейдеров: 1.x, 2.x и 3.x. Последняя программная спецификация от Microsoft называется DirectX 9.0c, она включает в себя поддержку всех существующих версий шейдеров.

Технология шейдеров

По своим функциям шейдеры делятся на три группы: вершинные (vertex shaders), пиксельные (pixel shaders) и геометрические (geometry shader) .

Вершинные шейдеры

Вершинный шейдеры являются программами, выполняемыми видеочипами, которые производят математические операции с вершинами (vertex), иначе говоря, они предоставляют возможность выполнять программируемые алгоритмы по изменению параметров вершин и их освещению. Вершинные шейдеры представляют собой естественное развитие идей "геометрического сопроцессора" T&L. Программист получает полный контроль и возможность гибко управлять ядром T&L, и может использовать вершинные шейдеры для расчета специфической геометрической информации, которую потом будут использовать пиксельные шейдеры, получает широкие возможности по аппаратному ускорению обработки вершин полигонов.

Каждая вершина определяется несколькими переменными, например, положение вершины в 3D пространстве определяется координатами: x, y и z. Вершины также могут быть описаны характеристиками цвета, текстурными координатами и т.п. Вершинные шейдеры, в зависимости от алгоритмов, изменяют эти данные в процессе своей работы, например, вычисляя и записывая новые координаты и/или цвет. То есть, входные данные вершинного шейдера - данные об одной вершине геометрической модели, которая в данный момент обрабатывается. Соответственно вершинные шейдеры можно использовать разными способами. В первом способе программист пишет относительно небольшую программу и указывает, что ее следует использовать для определенных вершин треугольников. Для каждого кадра ускоритель исполняет эту программу.

Примером может служить листочек на дереве, который поворачивается на определенный угол и уже в таком виде отображается на экране,или создание волн при помощи динамической деформации:

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

Пиксельные шейдеры

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

С вычислительной точки зрения пиксельный шейдер обычно задает модель расчета освещения отдельно взятой точки Например, в модели Гуро, используемой видеокартами поколения DirectX 7, и представляющей из себя расчет освещенности сначала в вершинах треугольника и в зависимости от этих значений рассчет уже для всей грани, практически невозможно было задать "металлический" компонент освещения в формуле Фонга, определяющей количество света, отраженного в сторону наблюдателя, потому что возникающие при этом "блики" на поверхности объекта по размерам существенно меньше полигона. Пиксельные шейдеры сделали возможным освещение любых поверхностей попиксельно, используя запрограммированные разработчиками материалы.

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

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

Помимо арифметических инструкций присутствуют и специализированные "текстурные", осуществляющие выборки цвета и арифметические вычисления сданными текстур. Различия между версиями пиксельных шейдеров заключаются в следующем. Пиксельный шейдер версии 1.0 - не более восьми арифметических инструкций и не более четырех текстурных. Шейдер 1.4 - это те же восемь арифметических, но уже шесть текстурных инструкций. Никаких условных переходов нет. Впрочем, для создания правдоподобных металлических или, скажем, неровных поверхностей этого вполне достаточно.

Главная особенность шейдеров второй версии - поддержка чисел с плавающей точкой. В задачах освещения это очень важно: динамического диапазона стандартного 8-битного цвета для передачи всего богатства оттенков может и не хватить. В пиксельные шейдеры третьей версии включена поддержка условных переходов для задания формул освещения - функция почти бесполезная, но позволяющая в некоторых случаях оптимизировать производительность шейдера (например, не проводить вычислений над заведомо бесперспективными пикселями).

Первый рисунок илюстрирует полное отсутствие шейдеров, второй илюстрирует работу шейдеров версии 1.4, а третий илюстрирует работу шейдеров версии 2.0:

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

Геометрические шейдеры

Геометрический шейдер - это шейдер, которому доступны уже собранные из вершин треугольники перед отрисовкой, как целостные объекты. Он может производить какие-либо операции над треугольниками целиком. В том числе, учитывая какие-то контрольные или дополнительные параметры вершин. Можно изменить параметры, можно рассчитать новые, специфичные для всего треугольника, и передать их затем в пиксельный шедер. Можно пометить треугольник предикатом (чтобы затем обработать его по разному, в зависимости от значения предиката), или выбросить его из кандидатов на отрисовку. К сожалению этот шейдер не может, как ожидалось ранее, произвольно создавать новую геометрию и новые треугольники на выходе, но сразу за ним следует еще одна новая стадия - вывод потока.

Можно вернуть обратно в буфер данные, прошедшие обработку в вершинной части конвейера, до передачи и отрисовки их в пиксельной части. Затем их можно снова использовать по своему усмотрению. Таким образом можно реализовать множество различных вещей, ранее невозможных или возможных но очень неудобным образом. Например, можно плодить новую геометрию, в том числе реализовать тесселяцию поверхностей на большее кратное число треугольников по тому или иному алгоритму. Для этого надо воспользоваться двумя проходами вершинной части, где первый экспортирует поток данных и коэффицентами деления у потоков между ними (еще в DX 9с появилась возможность устанавливать коэффициент, на который будут делиться индексы вершин при собирании их из нескольких независимых потоков, отдельный для каждого потока). Это несколько менее естественно, чем просто генерация новых вершин и новой геометрии в вершинном шейдере, но теперь это есть и, наконец, то это стало возможным. Можно даже сразу зациклить данные по маршруту выход-вход и воспользовавшись предикатами осуществить циклический отбор и деградирование геометрии, например, упростив модель. Эта технология может создавать очень привлекательные эффекты в реальном времени, такие как карта смещения, выдавливание трафарета тени, точка-спрайт, размытость изображения движущегося объекта и много других, которые будут доступны на оборудовании с поддержкой DirectX 10.


    Автор:  Grim

Cоветую Вам посетить лутший сайт онлайн тестов www.infog.testsbox.ru если хотите как можно больше узнать о себе и окружающем мире, занять достойное место под солнцем. Удобная система навигации, регистрация не занимающая много времени, легкое и удобное тестирование (вам записывать ничего не нужно).

И сайт торговой площадки www.infog.vsemp.ru на котором вы можете приобрести от канцелярской скрепки до недвижимости, от таракана и до космодрома.

В избранное