Привычные нам техника и устройства в стиле стимпанк
3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»?
Друзья! Многие ли из вас застали такую легендарную видеокарту, как S3 ViRGE? Когда-то этот GPU стоял чуть ли не в каждом втором офисном компьютере: благодаря дешевизне и заявленной поддержке 3D-ускорения, эту видеокарту просто сметали с полок магазинов. Далеко не все могли себе позволить ATI Rage, Riva TNT и уж тем более 3dfx Voodoo и очень разочаровывались в свежекупленной видеокарте, когда пытались поиграть в новомодные игры тех лет. На момент написания статьи, в сети слишком мало материала о том, как работали видеокарты 90-х «под капотом», однако мне удалось найти даташит на видеочип, SDK для программирования 3D-графики специально под него и некоторую документацию. Я решил исправить это недоразумение и начать развивать отдельную рубрику о работе старых видеочипов: начиная от S3 ViRGE и заканчивая GPU PS2 и PSP. Сегодня мы с вами: вспомним о S3 ViRGE, узнаем о том, как работали видеокарты в 90-х годах, затронем 2D и 3D режим и почему они тесно связаны между собой, посмотрим на проприетарное графическое API S3 ViRGE и раскроем причину, почему же этот GPU был таким медленным!
❯ 3D графика на ПК: начало
В начале 90-х годов 3D-графика на обычных домашних компьютерах была редкостью. Профессиональные GPU применялись только на дорогущих графических станциях, которые использовались в кинематографе или различных симуляциях, а также на дорогих японских игровых автоматах. У простого обывателя не было доступа к аппаратным средствам рендеринга 3D-графики.
SGI Indigo
Однако это не значит, что 3D-графики не было вообще. Прогресс развития домашних процессоров шёл семимильными шагами и гиганты рынка —Intel,AMDи в некоторой степени Cyrix, выпускали всё новые и новые процессоры с повышенными тактовыми частотами, а ближе к середине 90-х — и с SIMD (MMX). Поскольку многие техники для отрисовки трехмерного изображения были разработаны ещё в 60-х — 70-х годах, игроделы к началу-середине 90-х во всю использовали некоторые наработанные техники из кинематографа для растеризации 3D-графики прямо на процессоре — так называемыйсофтварный рендеринг.
Одной из самых известных техник 90-х являлась 2.5D графика с использованием рейкастинга — когда картинка на экране выглядит как трёхмерная, однако по факту весь мир представлен в виде 2D-координат, а эффект «пола и потолка» был как бы фейковым. Принцип его работы довольно прост: от глаз игрока для каждого горизонтального пикселя (т. е. при разрешении 240х320, у нас будет 240 проходов) пускаются «лучи» и ищется пересечение с ближайшей стеной относительно угла обзор из глаз игрока. Из этого пересечения берется дистанция до этой стены (на основе дистанции и угла считается «высота» данной строчки стены) и считается какую строчку текстуры необходимо вывести в этой точке. Одними из первых игр с применением этой технологии стал Hovertank и Wolfenstein 3D, а технология применялась практически до конца 90-х. Одной из самых лучших реализаций рейкастинга — движок Duke Nukem 3D, Build Engine, написанный Кеном Сильверманом.
Однако не одним 2.5D мы были едины. Шли годы, в СНГ многие люди продолжали наслаждаться 8-битными и 16-битными играми на клонахNESи SMD. У некоторых уже появлялась PS1, которая позволяла играть в игры с довольно хорошей 3D-графикой, однако на ПК 3D-игры были доступны не всем. Но в 1996 году выходитQuake— новейший шутер от первого лица от id Software с настоящей, трушной 3D-графикой и переворачивает всю индустриюFPSс ног на голову. Посудите сами: Джон Кармак умудрился реализовать достаточно быстрый софтварный рендерер, который мог вполне сносно работать на Pentium 75Мгц в разрешении 320x240. А ведь помимо отрисовки кадра, игре нужно было просчитывать логику монстров (довольно примитивную, к слову), обрабатывать столкновения, просчитывать видимую геометрию с помощью BSP-дерева и обрабатывать клиент-серверную логику самой игры. Это была самая настоящая революция в мире 3D игр на ПК.
В 1997 году, id Software выпустили glQuake — порт Quake с софтрендера на OpenGL, плюс своеобразную прослойку для совместимости с API 3dfx Glide (на видеокартах Voodoo) и подмножества OpenGL, используемым в игре. Порт на OpenGL позволял разгрузить ЦПУ, перенеся всю отрисовку графики с процессора на 3D-ускоритель. Сам по себе, OGL как графическое API, представлял из себя лишь набор спецификаций, который мог быть реализован как в программном виде, так и в аппаратном производителем видеокарты (на примере Windows — OpenGL32.dll это программная реализация, которая при необходимости обращается к atioglxx.dll/nvoglvxx.dll — аппаратной реализации OpenGL от вендора видеочипа). Однако, OpenGL корнями уходил именно в отрисовку промышленной графики, а DirectX всё ещё находился в зачаточной форме, из-за чего многие производители разрабатывали собственное графическое API: из известных мне, могу подчеркнуть ATI CIF (C Interface), 3dfx Glide и проприетарное SDK S3 ViRGE. Некоторые вендоры поддерживали целые игровые движки — например, BRender и RenderWare.
Отдельные 3D-акселлераторы потихоньку начали завоевывать сердца геймеров и создавать новый сегмент рынка. Серьезные видеокарты от известных производителей, такие как 3dfx Voodoo, ATI Rage и Riva TNT стоили достаточно дорого и многим были не по карману. Зато существовало множество видеокарт с 3D-ускорителями от других производителей, про некоторые из них вы могли даже не слышать: отдельные дискретные видеокарты Intel (i740), видеокарты от производителя чипсетов SiS и конечно же, видеокарты от S3 с сериями ViRGE и Savage. Видеочипы от Intel и SiS делали упор на D3D 7.
Intel i740
S3 ViRGE была весьма неплохой видеокартой с точки зрения 2D-ускорения. Сейчас 2D принято считать частным случаем 3D (по факту, 2D-спрайты — это 3D-квады, состоящие из двух треугольников), однако в то время для работы с памятью видеокарты и аппаратного ускорения некоторых операций, таких как блиттинг (BitBlt) существовало отдельное графическое API — DirectDraw. С этим у ViRGE было всё хорошо — он поддерживал довольно высокое разрешение экрана (при желании, объём видеопамяти можно было нарастить и установить разрешение ещё выше) и умел ускорять часть операций как DDraw, так и GDI.
Однако, ViRGE разочаровывал многих геймеров 90х своей производительностью в 3D-графике. На коробке с бюджетной видеокартой красовались красивые надписи о 3D-графике следующего поколения, а на фотографии можно было увидеть некую игру про мехов с невиданной графикой!
По факту, ViRGE подходил для 3D-игр не особо хорошо. Конечно в те годы никто особо не плевался от FPS и при желании, игру могли пройти и в 15, и в 20 FPS. Однако производительность софтварного рендерера иногда была даже выше, чем у растеризатора ViRGE, а игры должны были быть специально адаптированы под неё (т. е. портированы для использования S3DTK). Тайтлов с адаптацией по этот GPU было немало: как минимум, Tomb Raider и MechWarrior 2 (который шел в комплекте с игрой). Польские ребята из известной многим Techland даже написали прослойку S3D -> OpenGL, позволявшей запускать Quake на ViRGE. Производительность была не ахти…
Видеокарт от S3 нашлись и у меня, причём сразу несколько — ViRGE в PCI-исполнении и Trio в AGP-исполнении! Иногда я их использую для проверки старых материнских плат, которых у меня не так уж и много — рабочих на PGA370 и ниже у меня совсем нет. Однако остаётся вопрос, как эти видеокарты работали под капотом? Давайте узнаем!
❯ «Под капотом»
Исторически сложилось так, что 3D и 2D акселераторы могли быть отдельными и формально не зависящими друг от друга устройствами. Архитектура IBM PC в зависимости от «поколения», предполагала сразу несколько типов видеоадаптеров, которые были стандартизированы под определенный тип мониторов. Один из таких адаптеров, VGA, стал стандартом на долгие годы, в то время как два других использовались в совсем ранних машинах. Их ключевое отличие было в организации видеопамяти и цветности — CGA/EGA предполагал разбитие пространства экрана на т. н. битплейны (один байт содержал информацию о нескольких пикселях и если не ошибаюсь, для сохранения адресного пространства сегменты экрана необходимо было переключать аля банки памяти) и былпалитровым, в то время как VGA предполагал как палитровый режим, так и полноценный RGB и мог отразить весь фреймбуфер в линейную область адресного пространства. Кроме того, долгое время VGA использовался для обозначения разрешения дисплея: QVGA — половина VGA (320x240), VGA (640x480), широкоформатный WVGA (800x480) и т. п.
EGA-монитор
Другой особенностью была полная (насколько мне известно) обратная совместимостью друг с другом. Например, GeForce 7xx, как один из последних GPU, который поддерживал Legacy BIOS, теоретически вполне мог работать и с EGA режимами, и с CGA через соответствующие видеорежимы int 10h!
3D-режимы же никак не были стандартизированы и каждый производитель реализовывал работу с ними по разному — как уже говорилось ранее, кто-то реализовывал поддержку совсем молодого D3D и OpenGL (насколько мне известно, лучше всего с OpenGL было у NVidia. Остальные вендоры поддерживали OGL, но были свои болячки — у ATI они тянулись чуть ли не до середины-конца нулевых), а кто-то делал собственное графическое API и работал с видеочипом почти напрямую. Первые 3D GPU использовали шину PCI, которую почти сразу заменила более скоростная, но интерфейсно и софтварно почти идентичная шина AGP, а затем уже появился PCI-E, который оставался тем же PCI в софтовом плане, но был дифференциальным и последовательным, а не параллельным как интерфейсы-предшественники.
Дабы понять, как работают первые видеокарты, необходимо узнать о том, как происходит процесс отрисовки 3D-графики в общем случае. В мире программирования графики это называетсяконвейероми состоит он как минимум из нескольких этапов:
Установка состояний: Программа задаёт источники света на сцене, параметры Z-буфера и Stencil-буфера, какую текстуру(ы) следует наложить на рисуемую геометрию и с какой фильтрацией, какой тип аппаратного сглаживания использовать и т. п.
Ранее, каждый стейт необходимо было устанавливать отдельно, при необходимости — для каждого DrawCall'а. После подготовки состояния, программа вызывает соответствующую функцию отрисовки.
Обработка геометрии: Геометрия не поступает в растеризатор «как есть», в мировых координатах. Растеризатор оперирует вершинами в нормализованныхClip Spaceкоординатах — обычно, это [-1, -1… 1, 1], где 0.5 — центр экрана по каждой оси. Именно поэтому сначала необходимо провести этап трансформации геометрии для перевода из некой глобальной системы координат (которая может выражаться в метрах или, например, в пикселях) в Clip Space. Для этого чаще всего координаты (корректнее — трансформации) представляются в виде трех перемноженных матриц — model (мировые координаты геометрии), view (положение «глаз» в мире, или по простому камера. Умножая model на неё, мы получаем координаты объекта в пространстве камеры) и projection (матрица проекции, которая преобразовывает координаты из пространства глаз в тот самый Clip Space. Именно в этой матрице задается FOV для перспективной проекции и виртуальные размеры экрана для ортографической матрицы). После этого, координаты каждой вершины трансформируются полученной ModelViewProjection матрицей и получается финальная позиция для Clip Space. Звучит как сложный учебник матану, по факту всё очень просто. :)
Детали реализации низкоуровневого матана, в том числе перемножения матриц и построения матриц трансформаций и проекции знать желательно, но необязательно. Сейчас этим занимаются очень удобные математические библиотеки — например, glm, dxmath или d3dx.
Кроме того, ранее именно на вершинном этапе считалось освещение для уровня. В некоторых видеочипах была возможность аппаратного расчета источников света, в некоторых — только программная на ЦПУ.
На видеокартах тех лет, в том числе и S3 Virge, трансформацией вершин занимался центральный процессор, из-за чего было довольно серьёзное ограничение на количество вызовов отрисовки и число треугольников в одной модели. Видеокарты с аппаратной, но всё ещё не программируемой трансформацией вершин появились лишь к GeForce 2 — называлась эта технология T&L (Transform and Lightning) и её преимущество было в том, что у видеокарты были специализированные векторные сопроцессоры, способны быстро пересчитывать векторные операции (а у ЦПУ, в свою очередь, развивались SIMD наборы инструкций, позволяющие выполнять несколько операций над float одновременно). В некоторых случаях, был даже отдельный программируемый векторный сопроцессор как, например, в PlayStation 2, что позволяло реализовать вершинные шейдеры ещё в 2000 году! На современных видеокартах, этапом трансформации в самом простом случае управляют вершинные шейдеры. Помимо этого, есть возможность создания геометрии «на лету» с использованием тесселяции и геометрических шейдеров, а совсем недавно появились Mesh-шейдеры, которые объединили несколько подэтапов конвейера в один.
Растеризация: Сам процесс отрисовки геометрии на дисплей с данными, полученными с прошлого этапа. Именно на этом этапе треугольники (или иные геометрические примитивы) закрашиваются определенным цветом или на них накладывается текстура. В процессе растеризации есть такое понятие, как интерполятор — специальный модуль, который интерполирует несколько значений в барицентрических координатах растеризуемого треугольника, дабы текстурный юнит мог наложить определенный участок текстуры на фрагмент треугольника.
В современных видеокартах этот этап конвейера программируется пиксельными (или фрагментными) шейдерами. В старых видеочипах (исключение — вроде-бы частично программируемый GPU Nintendo 64, поправьте в комментариях, если не прав) этот процесс строго определен в каждом GPU и не программировался. Именно поэтому такой подход к рисованию графики назывался Fixed function pipeline. Были ещё комбайнеры, но они появились заметно позже — когда в видеокартах появилось уже несколько текстурных юнитов, способных смешивать несколько текстур одновременно.
Делая вывод, мы можем понять, что S3 Virge и другие видеочипы были устройствами, которые умели рисовать лишь тот уровень графики, который был заложен производителем с завода. Такой подход называется фиксированным конвейером — Fixed Function Pipeline. Сейчас разработчики видеочипов перешли с фиксированного конвейера на программируемый (шейдерный). Уже начиная с SM2.0-SM3.0, на современных видеокартах появилась возможность создавать крутое и достаточно сложное освещение и различные эффекты, которые стали неотъемлемыми в современных играх.
Кроме того, важно понимать, что в видеопамяти ранних видеочипов хранился только фреймбуфер, а немного позже — текстуры, именно поэтому VRAM в старой документации называют «текстурной памятью». Вообще, некоторые нюансы первых версий OpenGL тянуться именно из особенностей работы первых видеокарт. Вспомнить хотя бы первые функции для старта отрисовки геометрии и загрузке вершин на видеокарту — это были связки glBegin/glVertex/glEnd:
glBegin(GL_TRIANGLES);
glVertex3f(0, 0, 0);
glVertex3f(1, 0, 0);
glVertex3f(1, 1, 0);
glEnd(); // Для одного треугольника
glBegin(GL_TRIANGLES);
for(int i = 0; i < numTriangles; i++) { glVertex glVertex glVertex }
glEnd(); // Для меша
Даже сам glBegin/glVertex/glEnd появились не спроста. Геометрию на видеокарте начали хранить только в начале нулевых (и то не везде — привет встройкам Intel и S3).
Но перейдем к особенностям работы S3 ViRGE. Даташит лежит в свободном доступе, благодаря чему мы можем более подробно ознакомиться с характеристиками этого видеочипа и о том, как он работал под капотом.
В основе у нас лежит 64-х битное ядро, которое могло обрабатывать как 2D-графику с аппаратным ускорением, так и 3D-графику. Ядро работало на частоте 135МГц с встроенным RAMDAC (модуль, отвечающий за вывод картинки на аналоговые разъемы — VGA и DVI, однако выводом на TV-тюльпаны занимался отдельный чип TV-энкодер). Современные видеочипы перешагнули планку 1ГГц, однако сравнение исключительно по частоте некорректны — архитектуры очень сильно отличаются. Помимо этого, видеочип умел декодировать видео с интерполяцией и аппаратно «помогать» процессору с скейлингом видео (например, когда вы разворачиваете плеер на весь экран) и даже рендерить видео в текстуру (что позволяло реализовать, например, телевизоры в играх)!
3D движок поддерживал следующие возможности:
Затенение по Гур.о
Маппинг текстур с перспективной коррекцией и билинейной/трилинейной фильтрацией, а также мипмаппингом.
Depth-буфер, сэмплинг тумана и поддержка альфа-блендинга (прозрачной геометрии).
Чип поддерживал две шины — PCI и менее известную VLB (Vesa Local Bus, очень условно ISA)
Помимо этого, у чипа не было встроенной памяти — к нему необходимо было подключать внешнюю DRAM-память 2/4/8Мб. От её количества зависело максимально-поддерживаемое разрешение экрана. Текстуры при необходимости хранились в ОЗУ.
Видеопамять когда-то расширялась за счёт дополнительных модулей! Эту видеокарту можно расширить аж до 8МБ!
Поддерживаемые разрешения экрана:
Для DirectDraw и ускорения 2D-графики в Windows была реализация аппаратного BitBLT — копирования пикселей в точку на экране. Она поддерживала все режимы, которые были в реализации этой функции в Windows — от монохромных, до 24-х битных. Без альфа-блендинга, само собой. Но тут нет ничего необычного — многие видеочипы тех лет предоставляли простое 2D-ускорение.
Интереснее реализация отрисовки 3D-графики. Каждый треугольник описывался 3-мя регистрами на каждый параметр — координата X, Y для каждой точки, текстурные координаты и т. п. Всего для отрисовки одного треугольника могло потребоваться до 43 регистров! Весьма немало. И именно из-за этого в свое время появились glBegin/glVertex/glEnd!
Параметры сэмплера (текстурного юнита) задавались регистрами, которые определяли формат пикселя текстуры и сам тип фильтрации. Как я уже говорил выше — поддерживалась билинейная и трилинейная фильтрация и проприетарный формат сжатия текстур, который стал стандартом: S3TC или DXT.
Для программирования S3 ViRGE было разработано собственное C SDK — S3DTK, которое состояло из сэмплов и заголовочных файлов для общения с GAPI видеочипа (или видеочипом напрямую, если игра предназначена для DOS). При этом вполне не исключено, что GAPI для Windows работало с видеокартой напрямую, предоставляя PCI-драйвер лишь как прослойку для обмена данными. Поскольку это не D3D, для игр с поддержкой видеоускорения требовалось качать специфические версии. Некоторые игры (как Quake 2) поддерживали мультирендер, но не поддерживали S3 ViRGE.
Весь графический API помещался в один заголовочный файл. API было не простым, а очень простым и понятным — думаю, даже разработчикам-новичкам было легко начать программировать под ViRGE!
Формат вершин был фиксированным и зависел от того, как вы рисовали геометрию на экране:
GAPI поддерживало различные типы треугольных списков, а также точки (POINT для спрайтов и систем частиц) и линии:
#define S3DTK_TRILIST 0
#define S3DTK_TRISTRIP 1
#define S3DTK_TRIFAN 2
#define S3DTK_LINE 3
#define S3DTK_POINT 4
Фактическое API для рисования умещалось в 9 функций и ещё несколько функций для инициализации библиотеки, преобразования адресного пространства и работы с Windows.
Для работы с состоянием видеочипа служили две функции — SetState и GetState. Именно они отвечали за то, как рисовалась геометрия на экране:
А для фактического рисования примитивов служили функции TriangleSet и TriangleSetEx! Да, это альтернатива DrawPrimitives/DrawArrays в современных GAPI. Никаких индексов тогда ещё не использовалось! Функции принимали указатель на массив вершин и их количество, а также на тип рисуемой геометрии (треугольники, линии и т. п.). В Ex версии, можно было «пачкой» установить стейты параллельно с рисованием — такой подход используется в DX10+ API — стейты тоже задаются исключительно «пачками», только теперь они поделены на подгруппы.
Для 2D-рисования были свои, отдельные функции — для блиттинга. Поддерживался ColorKey/хромакей — прозрачным считался определенный цвет, переданный как параметр функции
Основной причиной медлительности S3 ViRGE был низкий филлрейт. При отрисовке примитивов, которые занимают большое пространство экрана, FPS резко просаживался даже с примитивными кубиками и пирамидками. Однако, если не насаживаться на филлрейт и делать что-то типа 2D-поля и 3D-танчиков, то производительность оставалась вполне приемлимой.
❯ Заключение
История S3 закончилась поглощением компанией VIA. После этого, компания разрабатывала интегрированную графику специально для чипсетов VIA, а материнские платы на этих чипах пользовались довольно высоким спросом. Поэтому нередко взяв старый бюджетный ноутбук, года эдак 2005, можно найти в нём VIA Chrome — наследника легендарного S3 Savage! Проблемы у такого подхода тоже были — из-за наследия из конца 90х, ранние Chrome по сути поддерживали только D3D 7.0 и OpenGL ~1.4. Несколько позже, в 2009 году, компания выпустила S3 Chrome 540 GTX — одну из последних видеокарт на собственной архитектуре. Этот видеочип был достаточно современным и поддерживал DX10.1, OpenGL 3.0. Интересно, реально ли найти эту видеокарту сейчас?
По итогу мы можем сделать вывод, что первые 3D-ускорители были относительно простыми устройствами «под капотом» и их можно было программировать чуть ли не «напрямую». Многие старые видеочипы получили свои локальные прозвища и стали легендарными, однако их архитектура и принцип работы оставались тайной. По крайней мере, в рунете точно.
S3 Trio
Насколько я понимаю, неравнодушные инженеры после закрытия 3dfx и слияния S3 с VIA решили «слить» даташиты в сеть, за что им большое спасибо! Ведь теперь мы имеем возможность посмотреть на принцип работы таких устройств сами!
Материал подготовлен при поддержке TimeWeb Cloud. Подписывайтесь на меня, мой Telegram и @Timeweb.Cloud, чтобы не пропускать новый материал каждую неделю!
Поиграем в бизнесменов?
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.
Лучшие новогодние подарки автолюбителям
В Новый год приятно получать и дарить подарки. Отсюда и нескончаемые очереди в пунктах выдачи заказов популярных маркетплейсов, и толкотня в торговых центрах. Причем у одной части людей эта предпраздничная суета вызывает неконтролируемый выброс эндорфинов, а у другой, мягко говоря, нервозность.
Даже в сплоченной редакции bamper.by коллектив разделился на два лагеря: первые радостно потирают лапки от предстоящего активного шопинга, а у других даже веселое мерцание гирлянды вызывает эпилептический припадок, не говоря уже о каких-то покупках… Но поскольку выбор подарков практически для всех продиктован необходимостью, об этом и поговорим. Если у друга или близкого человека есть машина, а ваша фантазия заканчивается на канистре с «омывайкой» или комплекте универсальных резинок на «дворники», возможно, в этой статье вы найдете что-то более подходящее празднику.
Для активной езды
Очки для вождения – бесполезная на первый взгляд вещь, особенно для тех, кто за рулем проводит совсем немного времени и ездит в основном по прямой (к примеру, из дома на работу). Но если автомобилист ездит много, в разную погоду и в различное время суток, такой подарок окажется ему в самый раз. Подробнее о полезности водительских очков можно прочитать здесь.
Если же вам хочется преподнести стильный водительский аксессуар, но конкретно очки кажутся неуместными – якобы это намек на плохое зрение человека (хотя таким людям они будут особенно полезны), – можно подумать о перчатках для вождения. Этот предмет одежды из перфорированной мягкой кожи будет отлично смотреться и на элегантной девушке, и на брутальном мужчине. К тому же они защитят руки от мозолей, а покрытие рулевого колеса – от истирания.
Любителям не просто активной, а экстремальной езды на треке подойдет экшн-камера, способная запечатлеть их лучшие моменты в отличном качестве. К примеру, у девайса GoPro есть множество разнообразных механизмов, с помощью которых камеру можно закрепить на лобовом стекле, шлеме или любой другой поверхности. Более спокойному водителю можно подарить видеорегистратор, если такового у него еще нет. Эта вещь будет во всех смыслах полезна и не раз выручит в неоднозначных ситуациях.
Для приятного отдыха
Существует общепринятая аксиома, что все мужчины – большие дети, поэтому стоит задуматься, как именно они проводят свой досуг. Поверьте, у многих автолюбителей он не сводится к гаражным посиделкам из анекдотов.
Некоторые, например, обожают видеоигры. Застав своего друга/любимого за таким занятием, стоит обратить внимание, во что конкретно тот любит играть. Если это гоночные симуляторы типа франшизы Need For Speed, то подарок в виде игрового руля и педального узла будет как нельзя кстати. Как правило, такие штуки отлично подходят как для игровых компьютеров, так и для ПК.
Бокалы для виски – необходимый аксессуар для более распространенного вида досуга. Не будет лишним присмотреть соответствующие емкости с гравировкой любимой марки автомобилиста. И да, если тот ездит на видавшем виды Peugeot 306, это вовсе не значит, что бокалы должны быть с соответствующим логотипом. Подарите набор рюмок с эмблемой, к примеру, Bentley – презент будет и стильным, и мотивирующим!
Для хорошей связи
О важности таких девайсов, как кронштейны для смартфонов, в Сети уже сказано столько, что добавить, по сути, нечего. Это действительно полезный, удобный и по-своему необходимый элемент в любом авто. Прелесть такого подарка в том, что он еще и недорогой.
Но если действительно хотите удивить своего автомобилиста, одарите его девайсом с функцией беспроводной зарядки смартфона (если тот поддерживает данную функцию). Уверяем, восторгу не будет предела!
Портативные рации подойдут заядлым джиперам и прочим любителям непролазного бездорожья. Нередко эти товарищи забираются в такие места, где не то что мобильной связи – человека никогда не бывало. Наличие раций в двух машинах обеспечит экстремалам связь и поможет скоординировать действия в сложных ситуациях.
Для безопасной эксплуатации
Портативный пылесос – отличный подарок тем, у кого бзик на чистоте. Сегодня рынок предлагает большое количество моделей такой техники на любой вкус и кошелек. При выборе подобного подарка советуем ориентироваться на функциональность.
Портативный пылесос вовсе не обязательно должен быть сверхмощным: все, что автомобилисту нужно от этого девайса, – небольшие размеры для удобного хранения и способность собирать не только мелкодисперсную пыль, но и крупный мусор в виде листьев, грязи или чипсов, которыми непременно покроются почти все поверхности авто после длительного путешествия.
Портативный диагностический сканер – крайне полезный в быту автомобилиста девайс. Например, он может быстро определить неисправность блоков ЭБУ и проводки, выявить отсутствие «прошивки» в системах и иные источники проблем. Профессиональное оборудование такого типа преподносить в дар нет смысла. Кроме того что вы потратите кучу денег, ваш автомобилист получит устройство, половиной функционала которого он не будет пользоваться. Зато простые и понятные устройства будут более чем уместны, когда на приборной панели снова загорится Check Engine.
Для любителей ретро
Кажется, что владельцам винтажных автомобилей и дарить-то ничего не нужно: если они могут позволить себе содержать дорогой раритетный автомобиль, значит, и все остальное у такого человека имеется. Тем не менее получать подарки любят все, даже те, кому на первый взгляд ничего не нужно. Дороговизной покупки такого товарища не удивишь, а вот изобретательностью – запросто.
К примеру, по части псевдовинтажных девайсов особенно удивляют китайцы: выпуская мультифункциональные вещи в старинном формфакторе, они делают счастливыми (хоть и ненадолго) половину мира. Взять хотя бы этот проигрыватель в стиле автомобильных радиоприемников 1950-х годов. Он и выглядит круто, и способен воспроизводить музыку практически с любого современного носителя, включая виниловые пластинки!
О том, что такое маскот, мы уже писали, причем несколько раз. Даже отдельно взятая носовая фигурка, выполненная из латуни или меди, выглядит как произведение искусства, которое помимо своего прямого назначения будет отличным украшением интерьера. Купить такую фигурку с рук вполне реально – достаточно посетить профильную онлайн-барахолку. Но здесь нужно быть готовым к тому, что за предмет коллекционной ценности могут попросить большие деньги. Впрочем, если не планировали сильно тратиться, можно заказать копию фирменного маскота в частной мастерской – это будет несоизмеримо дешевле.
***
Естественно, подарок, сделанный близкому человеку, может быть совершенно любым – мы лишь набросали несколько приблизительных вариантов. Главное – в процессе дарения проявить искренность, заботу и теплоту. Наверное, только для этого праздники и существуют. Так что с наступающим!
Ответ на пост «Razer создала игровую клавиатуру BlackWidow Ultimate с защитой от пролития жидкости !»
Залита была пивом 5л (10 раз по 0,5(бокал)),демонстрировал друзьям какая у мну клава,по пьяни... Отказала буква "м",левый shift,ctrl и win... Разобрал... Понял что ватными палочками не справлюсь... Контакты протёр сбс "калоша" а верхнюю часть,под тонкую струйку воды и зубной щёткой... Всё вроде хорошо,но внутрь кнопок набралась вода... Я перевернул кнопками вниз и аккуратно понажимал до тех пор пока не вытекла вся жидкость(тряпки после стали сухими)... Внимание вопрос,к знатокам-сколько её ещё сушить,чтобы исчезли все остатки воды? )))
UPD: Высохла... Как работала,так и работает... Всё тоже,что и было... Не работают буква "м",левый shift,ctrl и win... Видимо надо искать green кнопки... Значит дело в них... )))
Ответ на пост «Вертикальная мышь: опыт использования и советы по выбору»
Я все посматриваю на вертикальные мыши от Kensington, выглялят неплохо, цена адекватная, радиоканал или провод, конечно, хотелось бы еще отклоняющееся колесико, но с этим туго у производителей.
Лоджитек не хочется из-за завышейной стоимости и проблем даблклика (было три мыши, у двух появился даблклик через год), китайцы же ломаются слишком часто.
Одна проблема – на амазоне присутствуют противоречивые отзывы, то дохнут, то связь не рвется.
Pro Fit Ergo Vertical Mouse
K75501WW – беспроводная черная – от 40$
K75520WW– беспроводная серая – от 40$
В продаже с 2019-09-05
Pro Fit Ergo Mouse
K75404WW – беспроводная черная – от 40$
K75405WW – беспроводная серая – от 40$
K75403WW – на проводе черная – от 28$
В продаже с 2019-08-30
На амазоне есть вот такая модель, но на сайте производителя ее почему-то нет.
Kensington Ergonomic Vertical Wireless Mouse
K75575WW – беспроводная черная – 25$
В продаже с 2020-05-19
Еще есть трекбол, по виду всем хорош: и отклоняющееся колесико и доп кнопки.. но трекбол.
Pro Fit Ergo Vertical Trackball
K75326WW – беспроводной черный – от 70$
K75263WW – беспроводной белый – от 70$
K75256WW – проводной черный – от 60$
В продаже с 2020-01-07
Сможете найти на картинке цифру среди букв?
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Вертикальная мышь: опыт использования и советы по выбору
Вертикальная мышь — это тип компьютерной мыши, при использовании которой кисть находится в положении рукопожатия. То есть привычная плоскость перемещения наклоняется на 90 градусов по часовой стрелке.
Зачем это нужно?
При использовании обычной мыши рука находится в неестественном положении. Мышцы кисти находятся в постоянном напряжении, и это может приводить к синдрому запястного канала (туннельному синдрому или Carpal Tunnel Syndrome). Этот синдром появляется у совершенно разных людей: айтишников, музыкантов, велосипедистов. Каждый из них выполняет монотонные сгибательно-разгибательные движения кисти.
Длительное напряжение кисти приводит к нарушению кровоснабжения мышц, что в перспективе может привести к отеку мышц и сухожилий. Нерв в таком состоянии не может полноценно выполнять свои функции. Из-за этого возникают такие неприятные эффекты, как уменьшение чувствительности, болезненность, покалывания в пальцах и слабость ладони. Мышцы кисти и пальцев, которыми управляет нерв, постепенно «расслабляются» — к ним не доходят полностью сигналы от мозга, и мышцы начинают атрофироваться. И это на фоне боли в кисти, усиливающейся по ночам.
Покупка вертикальной мыши сама по себе не вылечит туннельный синдром, но в сочетании с регулярной гимнастикой для рук поможет избавиться от боли в запястье.
Наш главред Саша Ушатинская и шеф-редактор Аня Чуватова поделились своим опытом использования вертикальной мыши.
Саша Ушатинская, главред Tproger
Вертикальную мышь мне посоветовал мануальный терапевт, которому я доверяю (помог исправить уже много проблем). Как-то пришла к нему с болями в правой части спины и шеи, правая рука была приподнята и зажалась в таком состоянии.
Он расслабил мне мышцы и потом на полном серьёзе сказал купить вертикальную мышь. Я таких раньше не встречала, удивилась, представила себе что-то инопланетное. В итоге купила потестить и оказалось, что она не сильно отличается от обычной по виду и размеру, но держит руку в правильном положении, заметно снимает напряжение. Первое время может быть непривычно и даже немного больно (тело перестраивается). Это пройдёт.
Ребята в офисе уважительно называют меня капитаном воздушного судна — это ещё один плюс мышки. Ну ладно, они ржут и зовут меня пилотом, но мне всё равно нравится.
Попробуйте понять разницу даже без мышки: на весу согните руку в локте на 90 градусов, держите тыльной стороной ладони вверх. А теперь разверните предплечье тыльной стороной от себя (как на фото) и опустите локоть вниз. Если вы поняли, что я тут понаписала, то почувствуете, как рука расслабилась. Вертикальная мышь делает то же самое.
Не могу точно сказать про изменения в долгосрочной перспективе: последнее время я ей не пользуюсь, потому что начались проблемы с Bluetooth-соединением. Но проблемы связаны не с мышкой, а с компом — после обновления техники планирую вернуться к вертикальной.
Забавно: я даже не задумывалась, что мышь может быть другой формы и держать её можно удобнее. Просто покупала одинаковые всё время. А ведь прототип обычных мышек придумали десятилетия назад и мало тогда думали про эргономичность и здоровье — весь кайф был в самом факте изобретения.
Аня Чуватова, шеф-редактор Tproger
Я попробовала вертикальную мышь после Саши. Познакомилась изначально с Logitech MX Vertical. Несмотря на то, что раньше никогда не имела дела с такими девайсами, привыкла очень быстро и спокойно проработала с ней целый день. Однако для игр бы использовать не стала, особенно если у вас не очень много сил — мышь достаточно тяжёлая и не всегда удобно совершать ей резкие движения.
Из плюсов — за весь день у меня не заболело правое плечо, которое болит почти всегда в конце рабочего дня, но по одному случаю я бы не стала делать какие-то выводы, надо тестить ещё.
Тем не менее, я понимаю, как мышь влияет на работу руки с точки зрения анатомии, поэтому решила подарить мышки родителям — они как и я постоянно работают за компом. Но Logitech была слишком дорогой для первого опыта, когда ещё не известно, подойдет девайс или нет. Порывшись в интернете, я выбрала Delux M618GX. По результатам теста она чуть хуже работает без коврика, чем Logitech, иногда немного дергается курсор. Но справедливости ради, тестила я на двух разных покрытиях.
На что стоит обращать внимание
1. Если у вас маленькая рука, важно убедиться, что вы будете доставать до всех кнопок мыши. У Delux есть серия Mini, возможно, стоит попробовать её. Но я со своей маленькой рукой нормально справилась и с Logitech, и с Delux.
2. Если у вас большая рука, она может лежать боком на столе, а значит, при постоянной работе есть шанс натересь себе мозоль. Так что вам нужна мышь повыше или со специальной подложкой под руку. Из упомянутых — Logitech достаточно высокая, а Delux и высокая, и с подложкой. А вот мышки Delux из серии Mini могут быть маловаты.
3. К мыши скорее всего придётся привыкать. Для меня она оказалась такой же удобной, как обычая, но многие говорят, что адаптировались к девайсу от двух дней до недели.
4. При работе с вертикальной мышью важно, чтобы вся ваша рука от запястья до локтя лежала на столе, потому что именно локоть будет вашей опорной точкой. Если локоть не будет ни на что опираться, вам придется двигать всей рукой — опираться на запястье не получится из-за положения руки. Так вы очень быстро устанете.
5. Delux — китайский производитель, потому может быть дешевле заказать вертикальную мышь с Алиэкспресс.
Несмотря на то, что вертикальные мышки на рынке уже не один год, они не получили широкого распространения, поэтому было бы круто собрать отзывы пользователей, чтобы другим людям было проще принимать решение о покупке. Расскажите, пользовались ли вы вертикальной мышью и если да, какие у вас остались о ней впечатления?
Источник