Новые решения от ATI

Первый взгляд на Rage6, Charisma Engine и Pixel Tapestry архитектуру от ATI


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

Не секрет, что одним из ключевых терминов последнего времени является "фотореалистичная 3D-графика", под которым подразумевают, что новые компьютерные игры будут выглядеть, как хороший голливудский фильм. Это значит, что, например, на лицах персонажей будут отражаться эмоции и изменяться мимика, что ландшафты будут содержать буйную растительность, как в реальной жизни, что герои игры будут естественно двигаться, объекты в сцене будут иметь правильную форму и отбрасывать натуральные тени. Высокая детализация всех объектов в сцене, как на переднем, так и на заднем плане, точное моделирование отражений света и окружающей среды, динамично изменяемые тени от всех источников света в сцене, настоящее небо, туман и облака и многое другое. При этом все это будет интерактивно изменяться под воздействием и управлением игрока в режиме реального времени. Сегодня такие обещания звучат как сказка. Любой разработчик игры или обычный любитель игр скажет в ответ, что пока на рынке нет соответствующего аппаратного обеспечения. Мощности даже самых наисовременнейших CPU не хватит для моделирования 3D-графики подобной сложности. Тем не менее, разработчики 3D-графических процессоров не сидят сложа руки. Достаточно вспомнить GeForce 256 от NVIDIA, первый графический процессор с аппаратной поддержкой T&L, ориентированный на массовый рынок. Большинство разработчиков игр с воодушевлением восприняли новые возможности, которые появляются при использовании HW T&L. Правда, нас пока не завалило огромным количеством игр, использующих преимущества HW T&L, но надо отдать NVIDIA должное, она стала локомотивом прогресса. Теперь в массовой продаже есть карты с GPU на борту, и при использовании HW T&L у разработчиков появляется больше возможностей по существенному улучшению AI в играх (хватит тупых монстров!), уделению большего внимания игровому сюжету и реализации действия реальных физических законов в игре (не нужно тратить время на создание собственного программного движка преобразования координат вершин полигонов). В общем, как и положено, улучшение аппаратных возможностей графических процессоров позволяет разработчикам игр уделять больше внимания качеству графики и реализации сюжета игры, т.е. заниматься действительно творчеством. Ничего удивительного в том, что новые графические процессоры по сложности архитектуры, как минимум, сравнимы с CPU.

В основе любого графического процессора лежит архитектура и ряд технологических решений. Компания ATI основательно подготовилась к завоеванию верхней ступеньки пьедестала на мейнстрим-рынке игровых решений. Итак, в скором времени нам будет предложен новый графический процессор с кодовым именем Rage6. Сердцем Rage6 станет движок рендеринга Charisma Engine, разработанный инженерами ATI. В чипе Rage6 будет использоваться новая архтектура рендеринга с именем Pixel Tapestry, созданная в лабораториях ATI.

Сразу сделаем два небольших замечания.

1. Не так давно компания ATI поглотила компанию ArtX, которая разработала графический процессор с интегрированным блоком HW T&L. Так вот, разработки ArtX никакого отношения к Rage6 не имеют. Совсем. Разработки ArtX будут использоваться в другом проекте, ориентированном на интегрированные решения.

2. В данном превью мы будем называть новый графический процессор от ATI его кодовым именем — Rage6. По имеющейся у нас информации, в официальном названии нового чипа слово "Rage" использовано не будет. Сделано это с целью четко отделить новый чип от предыдущих поколений чипов от ATI. Решение абсолютно оправданное. Остается надеяться, что название для нового GPU будет выбрано очень хорошее.

Итак, посмотрим на характеристики GPU Rage6:

Общие характеристики:

  • 256-разрядное графическое ядро
  • Технологический процесс: 0.18 мкм, позднее ожидается переход на 0.15 мкм и менее
  • Площадь чипа: 100 мм2
  • Количество транзисторов: 25 млн.
  • Число конвейеров рендеринга: два с тремя блоками текстурирования на каждом
  • Частота ядра: от 200 МГц до 400 МГц
  • Частота работы шины памяти: от 200 Мгц
  • Pixel Fillrate: от 400 млн. пикселей в секунду до 800 млн. пикселей в секунду
  • Texel Fillrate:
    • 1 texel per 1 Pixel от 400 млн. текселей до 800 млн. текселей в секунду
    • 2 texel per 1 Pixel от 800 млн. текселей до 1600 млн. текселей в секунду
    • 3 texel per 1 Pixel от 1200 млн. текселей до 2400 млн. текселей в секунду
  • В чипе имеются кэши: текстурный, пиксельный и Z-координат
  • Поддерживаемые типы памяти: SDR SDRAM/SGRAM и DDR SGRAM, а также более прогрессивный тип памяти DDR FCDRAM, или нечто в этом роде
  • Объем локальной видеопамяти: от 8 Мб до 128 Мб
  • Ширина полосы пропускания памяти: до 6.4 Гб в сек (пиковая) при использовании 200 МГц DDR SGRAM
  • В чипе реализована поддержка двух независимых видеоканалов и имеется два CRT-контроллера (CRTC)
  • RAMDAC: от 350 МГц до 400 МГц, интегрирован в графическое ядро
  • Максимальное разрешение: 2048x1536@75Hz (на самом деле, это не предел)
  • Интегрированный в чип TMDS трансмиттер позволяет подключать DFP мониторы и поддерживает разрешение вплоть до 2048x1536
  • Поддерживается технология MAXX, т.е. допускается установка двух и более чипов Rage6 на одной карте
  • Интерфейс внешней шины: полная поддержка AGP x2/x4 (включая SBA, DME и Fast Writes) и PCI 2.2 (включая Bus mastering). Режим AGP x4 Fast Writes позволяет использовать метод прямого обмена данными CPU и GPU, минуя системную память компьютера, со скоростью до 1 Гб/сек, что должно положительно сказываться на общей производительности и разгружать шину системной памяти.

3D-графика:

  • Движок Charisma Engine — аппаратная реализация преобразования координат, установка освещения,clipping (отсечение частей сцены, не входящих в конечный кадр), vertex skinning, keyframe interpolATIon, perspective devide, triangle setup
  • Архитектура рендеринга Pixel Tapestry, позволяющая использовать три блока текстурирования на каждом конвейере рендеринга пикселей
  • Поддержка до четырех skinning матриц, применяемых для интерполяции вершин полигонов (vertex blending)
  • Производительность HW TCL: около 20 млн. текстурированных полигонов в секунду
  • Аппаратная установка 8 источников света для всей сцены
  • Полная поддержка OpenGL и DX7 — Tranform & Lighting, Cube environment mapping (кубического текстурирования картами окружения), projective textures (проекция текстур) и компрессия текстур
  • Поддерживаются следующие методы наложения текстур: Сubic, Spherical и Dual-Paraboloid
  • Рендеринг при 16- и 32-битной глубине представления цвета
  • Аппаратная поддержка рельефного текстурирования следующих типов: Embosing, Dot Product, EMBM
  • Поддерживаются текстуры вплоть до 2048x2048 @ 32 bit
  • Программируемые режимы смешивания нескольких текстур
  • Поддерживаются 3D-текстуры, это позволяет воспроизводить специальные объемные эффекты, например, туман или динамичный источник света
  • Буфер шаблонов (стенсель): 8 бит
  • Z/W-буфер: 16/24/32 бит
  • Color/Depth Mixed mode 16/32 — возможность выбора разрядности буфера глубины независимо от глубины представления цвета, например, при 32-битном цвете можно использовать 16 бит Z-буфер. Способствует увеличению производительности.
  • Поддержка:
    • компрессии текстур: DXTC, S3TC программным образом
    • однопроходного мультитекстурирования
    • однопроходной трилинейной фильтрации
    • однопроходной анизотропной фильтрации с использованием 24 текстурных семплов
    • сглаживания всей сцены (FSAA)
    • попиксельного мипмаппинга
    • затенения по методу Гуро и зеркальных поверхностей
    • отраженного света и размытых теней
  • Наложение теней для каждого индивидуального источника света, для этого в чипе реализован специальный Priority Buffer
  • Наложение текстур с коррекцией перспективы и различными уровнями детализации с поддержкой коррекции насыщенности цвета
  • Полная поддержка Direct3D модели освещения
  • Поддержка табличного и вершинного тумана
  • Имеется встроенный интерфейс для подключения внешнего TV-кодера
  • Поддержка ICD OGL

2D-графика:

  • Аппаратное ускорение Bitblt (поблочная передача данных), прорисовка линий, заполнение полигонов/прямоугольников, побитовое перекрывание, одноцветное расширение, панорамирование и прокрутка, отсечение, полная поддержка растровых операций и аппаратного курсора с размером до 64х64х2
  • Ускорение работы в играх, включая поддержку MS DirectDraw: двойная буферизация, виртуальные спрайты, прозрачные и перекрываемые массивы
  • Акселерация при 8/16/24/32-битном представлении цвета

Прочее:

  • Поддержка HDTV
  • Декодирование данных в формате 720p HDTV
  • Аппаратная поддержка декодирования MPEG2 видео (DVD), включая Motion
  • CompensATIon и iDCT
  • Реализованный на аппаратном уровне предварительный декодер изображений с интерпретатором масштабирования и наложения полупрозрачных изображений (для он-скрин меню) обеспечивает высокое качество видео
  • Масштабирование и фильтрация видео
  • Управление яркостью, насыщенностью и контрастностью цвета
  • Поддержка стереоочков

Теперь поговорим более подробно о некоторых деталях нового чипа и новых решений от ATI.

Charisma Engine

Новый графический движок Charisma Engine от ATI действительно производит впечатление божьего дара. Достаточно посмотреть на список его возможностей.

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

Затем происходит аппаратное преобразование координат вершин полигонов из 3D-координат моделируемой сцены в 2D-координаты экрана монитора. Такая операция необходима из-за того, что нельзя напрямую использовать трехмерные координаты объектов при их отображении в 2D-пространстве. Процесс преобразования координат происходит в два этапа. Сначала исходные координаты объектов 3D-сцены (называемые координатами объектного пространства, "object space") преобразуются в координаты объектов (называемые координатами пространства отображения, "view space"), которые после рендеринга отображаются на экране монитора. В пространстве отображения каждая точка может быть освещена на основе хранящихся данных об освещении, которые были накоплены в процессе работы блока аппаратной установки освещения.

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

Vertex Skinning. Это метод натяжения текстур на полигоны при использовании скелетной анимации. На самом деле, под этим термином скрывается процесс интерполяции вершин полигонов (vertex blending). Применяется Vertex Skinning для того, чтобы на стыках текстур были плавные, естественные переходы, особенно во время движения. Интерполяция вершин осуществляется с помощью матриц, называемых Skinning Matrices for Vertex Blending.

В D3D есть поддержка для 2-, 3- и 4-матричной интерполяции вершин. В большинстве случаев хватает 2-матричной интерполяции. Однако на стыке туловища, шеи и двух рук предпочтительнее использовать 4-матричную интерполяцию, а на стыке туловища и двух ног — 3-матричную интерполяцию. Тем не менее, улучшения от 3- и 4-матричной интерполяции вершин видны только при долгом рассмотрении персонажа размером во весь экран. В GeForce 256 поддерживается на аппаратном уровне только 2-матричная интерполяция, а в Rage6 реализована аппаратная поддержка 4- и 3-матричной интерполяции. Пример 2-матричной интерполяции — это вся живность в демо DMZG, там этот эффект используется по полной программе.

Keyframe InterpolATIon. Интерполяция кадров позволяет реализовать на аппаратном уровне изменение внешнего вида объекта сцены за счет задания только начального и конечного изображения, все остальные преобразования выполняются автоматически. Иными словами, Charisma Engine вставляет необходимое число интерполированных кадров между "ключевыми", и в результате можно довольно просто реализовать изменение мимики на лице персонажа игры. Вот пример:

После использования специальных эффектов или их не использования начинается операция Clipping. Под Clipping подразумевается операция отсечения части сцены по четырем поверхностям, определяемым пользователем (viewing frustrum + user defined clip planes). При этом вся работа ведется на уровне полигонов, а не объектов. Именно этот тип отсечения чаще всего применяется на практике, т.к. позволяет существенно сократить нагрузку на шину памяти при последующем рендеринге.

Сейчас все чаще блок геометрических операций и установки вершинного освещения называют сокращенно HW TCL, подчеркивая наличие аппаратного Clipping, хотя и старое сокращение "HW T&L" ничем не хуже. Эта операция также выполняется на аппаратном уровне, и она необходима для того, чтобы избежать ненужной работы при последующем рендеринге конечной сцены.

Теперь настало время второго этапа преобразования вершинных координат. Координаты преобразуются с целью правильного расположения относительно угла зрения пользователя, т.н. правильной точки наблюдения в пространстве, известном как зрительное пространство ("eye space"). Для этого координаты вершин преобразуются в 2D-вид, т.е. в координаты экрана, и происходит коррекция расстояний, т.н. операция трансформации перспективы.

После этого вершины полигона располагаются в пространстве, формируя полигоны, которые текстурируются. После этого сформированные пиксели с определенным цветом и координатами выводятся на экран монитора.

Понятно, что выполнение операций TCL, а также Vertex Skinning и Keyframe InterpolATIon, требуют очень мощных вычислительных ресурсов. Rage6 должен легко справляться с поставленной задачей, не загружая CPU системы. В результате, разработчики игр смогут использовать большее число полигонов при тесселяции, что сделает внешний вид, например, монстров более реалистичным.

Высвободившиеся ресурсы CPU разработчики игр могут использовать, например, для обсчёта AI. Для сравнения: в играх, не ориентированных на использование HW TCL, на обсчет AI обычно отводится до 5% ресурсов CPU, зато в новых играх, ориентированных на использование возможностей HW TCL, на обсчет AI можно уже будет отвести до 30-40% ресурсов CPU, а это значит, что ваши виртуальные противники станут коварнее и хитрее. Кроме того, высвобождаемые ресурсы CPU можно использовать для расчёта физических эффектов повышенной сложности, например, гравитации, атмосферных эффектов. Стоит заметить, что если в игре используются возможности HW TCL, но не используются высвобождаемые ресурсы CPU, то пользователь все равно получит великолепную по качеству и очень быструю графику, хотя не заметит никаких других плюсов.

Второй ключевой особенностью Rage6, после Charisma Engine, является архитектура рендеринга пикселей под названием Pixel Tapestry. Ключевой особенностью этой архитектуры является наличие трех текстурных блоков на конвейере рендеринга. Для сравнения: в GeForce 256 и VSA-100 только один текстурный блок, в Savage2000 и NV15/NV11 — два текстурных блока на каждом конвейере. Правда, Savage2000 может накладывать сразу четыре текстуры на пиксель, что пока не применяется на практике.

В Rage6 имеется два конвейера рендеринга и по три блока текстурирования на каждом, что позволяет:

  • смешивать и фильтровать до трех текстур на пиксель без потерь в скорости
  • аппаратно реализовать различные методы трансформации текстур (cubic environment mapping, projective texturing и т.д)
  • реализовать однопроходное наложение рельефных текстур с помощью методов: Emboss, Dot Product 3 и Environment Mapped Bump Mapping (EMBM)
  • точно моделировать отражающие свойства материалов (вода, металл, дерево и т.д)

Кроме того, архитектура Pixel Tapestry реализует аппаратную поддержку:

  • Priority Buffer, который используется для наложения реалистичных теней shadow mapping от индивидуальных источников света
  • трехмерные текстуры, что позволяет создавать сложные, динамические источники освещения, а также объемный туман, дым, жидкости и упрощает обращение с объектами с изменяемой геометрией

Не секрет, что чем больше текстур можно наложить на пиксель за такт, тем реалистичнее и детальнее получается конечное изображение без потерь в общей производительности. Текстуры применяются для наложения карт освещенности, карт теней, моделирования отражений и зеркальных поверхностей, рельефа (bump maps) и т.д.

Особо стоит отметить поддержку рельефного текстурирования EMBM, который пока поддерживается только чипами серии G400 от Matrox, но зато используется в нескольких десятках игр.

Положительным моментом является поддержка Rage6 метода кубического наложения карт среды, поддерживаемого в D3D 7.0. В этом методе нет зависимости от точки обзора, но зато используется 6 текстур. Кроме этого метода Rage6 поддерживает еще и сферический метод (1 текстура, есть зависимость от точки обзора), двойной параболоидный метод (2 текстуры, зависимость от точки обзора).

Чтобы сцена в игре выглядела реалистично и имела глубину, применяют моделирование теней. Для наложения естественных теней, отбрасываемых объектами сцены, в Rage6 реализована поддержка специального Priority Buffer (приоритетный буфер). Этот буфер позволяет хранить информацию о том, насколько близко объекты сцены расположены по отношению к точке обзора. В итоге, каждый объект сцены получает весовой коэффициент или приоритет, отсюда и название буфера. При изменении положения объекта относительно точки обзора его весовой коэффициент в буфере приоритета также изменяется. Так вот, для наложения реалистичных теней используется аппаратный priority buffer в паре с проецируемыми текстурами (Projective Textures). Чтобы сформировать тень, за точку обзора (viewpoint) принимается источник света, и вся сцена рендерится с учетом весовых коэффициентов из буфера приоритета, т.е. самый близкий к источнику света объект рендерится в первую очередь, т.к. имеет наивысший приоритет. Теневая текстура формируется путем рендеринга силуэта каждого объекта, а затем осуществляется проецирование сформированной текстуры, и в сцене получается тень. Этот метод проще и эффективнее, чем использование традиционного буфера шаблонов.

Rage6 имеет поддержку Range-Based Fog, т.е. наложения тумана, плотность которого зависит от удаленности объектов от игрока.

Одна из новых функциональных особенностей Rage6 — это поддержка 3D textures (трехмерные текстуры). 3D Texture — это текстура, представляющая собой 3D-массив пикселей, а не 2D, как в обычном случае. Это нововведение в OpenGL1.2. До недавнего времени поддержка трехмерных текстур имелась только в Permedia3 от 3Dlabs. Этот тип текстур можно использовать для работы с вокселями (объемные пиксели), наложения сферических текстур для моделирования объемных источников света. Трехмерные текстуры упрощают использование деформируемой геометрии, например, можно отрезать или отщипнуть часть объекта без необходимости обновления текстуры.

Вернемся к чипу Rage6, тем более, что он уже существует. Причем, начиная с ревизии чипа A0, т.е. с альфа-силикона, чип полностью работоспособен, и в нем не обнаружено грубых ошибок в аппаратной части. В качестве примера работоспособности чипа, карты на его основе, драйверов и биоса можно привести то, что уже на альфа-силиконе без каких-либо проблем работает игра Quake3. Такой результат свидетельствует о высоком качестве дизайна и слаженной работе команды инженеров, а ведь архитектура Rage6 очень сложна. К слову, с чипом Rage128 такого не было, с самого начала этот чип имел ошибки в дизайне, на исправление которых ушло очень много сил и времени. Разумеется, тестовые версии карт на базе Rage6 работают на сниженных частотах, и говорить о скоростных показателях еще рано, тем не менее, если судить по архитектуре чипа, есть все основания предполагать, что выигрыш по скорости над картами на базе GeForce 256 будет измеряться не в процентах, а в разах. Понятно, что с будущими конкурентами — прежде всего это будут карты на базе NV11/NV15 — будет очень жесткое соперничество, как по скорости, так и по богатству возможностей.

Откуда такая уверенность? Возьмем для примера главных сегодняшних конкурентов Rage6 — карты на базе GeForce 256. Дело в том, что 256-битность ядра GeForce 256, если говорить очень упрощенно, достигается за счет того, что NVIDIA использует четыре 64-битных блока, работающих параллельно и подключенных к одной общей внутренней шине. В результате, из-за взаимовлияния (электромагнитного, а точнее, взаимовлияния фронтов сигналов) рабочая частота и производительность, в целом, снижается. В итоге, NVIDIA вынуждена была снизить частоту графического ядра GeForce 256 до 120 Мгц, чтобы обеспечить стабильную работу. Даже использование 0.22 мкм технологического процесса не так сильно влияет на общую производительность, нежели архитектурные особенности.Это, конечно же, упрощенное объяснение, т.к. есть и другие факторы, но для общей картины этого достаточно.

В Rage6 все реализовано более изящно: если говорить очень грубо и упрощеннно, то вместо четырех 64-битных блоков вычисления используется два 128-битных блока вычислений, подключенных параллельно к внутренней шине через специальный буфер, что существенно все упрощает и положительно сказывается на производительности. В результате, даже при работе на равных тактовых частотах, производительность Rage6 будет примерно в 1.5 раза выше, чем у GeForce 256. Тем не менее, на наш взгляд, такой потенциал производительности возможен из-за того, что внутренняя архитектура Rage6 расчитана на более высокие тактовые частоты. Достигается это применением конвейера рендеринга с большим числом более простых (по сравнению с GeForce 256) ступеней. Ситуация очень похожа на Williamete, но, ввиду большей регулярности алгоритмов трехмерной графики, большое число ступеней конвейера не штрафуется существенными задержками в случае необходимости перезапустить конвейер (например, если нужно совершить переход на следующую строку в треугольнике и т.д., для процессоров общего назначения — это не предсказанный переход). Так ли все обстоит на практике, мы сможем проверить после того, как получим работающую плату на базе Rage6. Пока же всю информацию следует воспринимать, как информацию, и не более.

На фото справа изображена альфа-плата на базе Rage6, которая демонстрировалась на GDC в Сан-Хозе 12 марта 2000 года. Фотографию сделал James Yu с сайта Thresh's FiringSquad (http://www.firingsquad.com/), которому посчатливилось присутствовать на закрытой презентации. Зато нам известны почти все детали о будущем продукте ATI :-) Эта карта имеет на борту обычную память типа SDRAM, работающую на частоте 143 МГц, на этой же частоте работал и сам чип Rage6.

Ожидается, что, возможно, уже в мае карты на базе Rage6 поступят в продажу. Следует ожидать, что стоимость карты на базе одного чипа Rage6 и 32 Мб локальной памяти типа DDR SGRAM будет в районе $250. При этом чип, скорее всего, будет работать на частоте 250 Мгц, а память — на частоте 200 МГц.

Тех пользователей, в чьих компьютерах нет AGP-интерфейса (например, у тех, у кого в компьютере используется системная плата на базе чипсета i810), волнует вопрос о том, будут ли карты на базе Rage6 с интерфейсом PCI. Ответ неоднозначен. Технических препятствий к производтству карт на базе Rage6 с интерфейсом PCI нет. Тем не менее, все будет зависеть от спроса и конъюнктуры рынка.

Разумеется, есть основания ожидать несколько позднее и появления карт на базе двух чипов Rage6 (а может, и большего количества), работающих параллельно и использующих технологию MAXX. Хотя массовым продуктом эти карты, конечно, не будут, а вот hardcore gamers будут довольны.

Выводы

Если посмотреть на требования к аппаратному обеспечению 3D-графических акселераторов нового поколения, которые выдвинула компания Microsoft, то мы обнаружим, среди прочего, необходимость наличия следующего:

  • Full scene anti-aliasing (FSAA)
  • HW T&L
  • Блок преобразования координат должен обрабатывать 40 млн. вершин в секунду
  • Необходимо наличие поддержки DXTC (DXT1-DXT5)
  • Величина пиксельного fillrate должна соответствовать 600 млн. пикселей в секунду в режиме мультитекстурирования

Нетрудно заметить, что Rage6 полностью соответствует этим требованиям Microsoft. ATI имеет все шансы стать если не главным, то одним из основных партнеров Microsoft в комплектации приставки X-Box графической подсистемой. Тем более, что до выхода X-Box в продажу еще масса времени, а на наш взгляд Rage6 выглядит очень сильно на фоне того же NV15.

Итак, можно констатировать, что ATI Rage6 — это GPU второго поколения, обладающий массой инноваций в архитектуре и большим потенциалом на будущее.

Главное, чтобы платы на базе Rage6 появились в продаже во втором квартале 2000 года, и не просто появились где-то, а начались массовые поставки в достаточном количестве и по оправданной цене. Пока нам остается лишь набраться терпения и верить, что ATI извлекла соответствующие уроки из опыта продаж карт на базе Rage128Pro и плат Rage Fury MAXX.




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.