AI немного пугает
.
Ща чаёк допью, и поедем готовиться ….
.
Ща чаёк допью, и поедем готовиться ….
Автор текста: Kopcheniy
Однажды мне попался один весьма интересный проект платы, поддерживающей большое количество разнообразных E-Ink экранов. Проект довольно быстро заинтересовал, появилось желание несколько переработать плату, внести улучшения, узнать и попробовать что-нибудь новое. Больше всего изменений претерпела система питания: она была разработана практически с нуля. Процесс оказался очень познавательным и увлекательным, а отладка прототипа преподнесла много поучительных и забавных сюрпризов. Это жизненный рассказ о разработке как есть.
EPDiy – это интересный проект платы и сопутствующего ПО для управления довольно большим количеством e-Ink экранов. Способ управления у разных моделей одного типа примерно одинаковый. Отличаются лишь разъёмы и временные параметры.
У автора проекта получилось несколько вариантов платы, отличающиеся, в основном, системой питания. В тот момент, когда я вдохновился спроектировать свою систему питания, последней версией была шестая. Седьмая версия, построенная на более современном чипе, появилась сравнительно недавно.
Проект мне понравился, и захотелось его несколько переработать, чтобы кроме конечного результата получить ценный опыт живой разработки и насладиться процессом. Основное внимание хотелось уделить силовой части.
Сейчас я пишу эти строки и, оглядываясь назад, могу с уверенностью сказать, что было весьма интересно и опыт значительно подрос. В процессе сделано немало ошибок, узнано и взято на вооружение много новых для меня вещей. Не обошлось и без забавных, неожиданных ситуаций. Один только бабах чего стоит…) Но обо всём по порядку.
А начнём мы с осмысления того, как мы видим будущий проект, и составления небольшого технического задания. Это удобно. Если делать параллельно несколько проектов, то можно просто забыть какие-то детали. А так всё будет в одном месте. ТЗ несколько ограничит нас, если вдруг что-то будет не получаться и появится желание снизить требуемые характеристики.
Первым делом стоит изучить имеющиеся решения.
В версии 5 преобразователи напряжения построены на двух микросхемах LT1945. Не самая дешёвая и доступная микросхема.
В версии 6 питание экрана построено на специализированной микросхеме TPS651851RSLR.
Решение интересное, но на момент проектирования мне не удалось найти эту микросхему по приемлемой стоимости. К тому же, хотелось спроектировать систему питания самостоятельно, а не просто поставить готовую микросхему, скопировать схему из даташита и всё. Был большой интерес попробовать новые для себя топологии, схемные решения, новые компоненты, вроде ферритовых бусин и другое.
В схемах EPDiy предусмотрены варианты питания платы от аккумулятора или от USB. На мой взгляд, аккумулятор имеет смысл поставить в какое-то законченное устройство с конкретной моделью экрана. У нас же универсальная плата для разных моделей. Этакий испытательный стенд. Мне хочется сделать попроще, поэтому сделаем простое питание от USB (+4,5…5,5 B), так преобразователи напряжения будут проще. Питать плату будем от банки или от зарядки, например, смартфона.
Экраны бывают разных диагоналей. С увеличением размера растёт потребление. Изучив несколько документов на экраны разных размеров (ED050SC3 (диагональ 5"), ED060SC4V2 (диагональ 6"), ED097ОС1 (диагональ 9,7"), Экран 13,3" и другие), сформируем требования к источникам питания:
Посмотрим также документ на драйвер питания TPS65185х.
Возьмём запас 30% для максимального тока. В итоге получим примерно такие же токи, как у микросхемы TPS651851. Кстати, она используется в модуле WaveShare для питания 13,3" экрана (вот схема).
Также мне попадалось такое решение на основе версии 5.
На первый взгляд, у решения есть свои плюсы. Одна из микросхем LT1945 заменена дешёвыми и доступными линейными стабилизаторами. Но ещё раз внимательно посмотрим на потребление по линиям разных напряжений (в табличке выше). Брать питание для более мощных линий +-15 В с маломощных +22, -20 В и рассеивать излишек напряжения на линейных стабилизаторах – это как-то неправильно. Хотя стремление понятно: автор схемы хотел удешевить и упростить её.
Очень важный момент – оценить ток, потребляемый преобразователями и платой в целом. Начнём с преобразователей.
К ним нужно добавить ток, потребляемый по линии 3,3 В. Самый большой 13,3" экран потребляет по линии +3,3 В 10 мА. Микросхемы – 30 мА. Основной вклад вносит ESP32, особенно, при работе передатчика.
По линии +3,3 В получается ток 540 мА. Добавим его к току преобразователей и получим 2,273 А. Не хило! Особенно, если вспомнить, что ток порта USB 2.0, к которому плата тоже может подключаться, ограничен значением 500 мА.
Решение довольно простое: добавить схему автосброса, которая будет сбрасывать ESP32 при подключении к компьютеру. Получается, с помощью компьютера будем прошивать, а работать плата будет от банки (power bank) или зарядки.
Питание по линии +3,3 В для модуля ESP 32, экрана и других микросхем, в целом, оставим без изменения.
Получается такой список требований (ТЗ):
Питание от USB (+4,5…5,5 B);
Выходные напряжения:
2.1 +-15B (+-14,6…+-15,4 В) 200мА. Минимальный ток нагрузки 3.4 мА;
2.2 -20 В (-21…-19 В) 15 мА. Минимальный ток нагрузки 0.3 мА;
2.3 +22В (21…23 В) 15 мА. Минимальный ток нагрузки 0.4 мА (Токи как у TPS651851);
Наличие схемы автосброса ESP32.
Попробовать новые для себя решения. Желательно сделать попроще и, по возможности, дешевле. Остальное по ситуации.
Нам нужно получить из +4,5 В (минимальное напряжение от USB) четыре напряжения: +-15 В, +22 и -20 В.
Первыми вспоминаются топологии повышающего (boost) и инвертирующего (inverting buck-boost) преобразователей.
Обычно их используют при кратностях повышения напряжения 3…5 раз. Если отношение выходного напряжения к входному больше, то начинаются сложности с подбором индуктивности для правильной настройки. Из-за высокой крутизны регулировочной характеристики преобразователя небольшое изменение в потребляемом токе нагрузки приводит к большому отклонению выходного напряжения преобразователя. Замечательный обзор на эту тему с описанием сложностей (источник питания по топологии boost 5-200 В).
Проверим максимальную кратность для нашего случая. 22 В/4,5 В = 4,9 < 5 раз. Как раз помещается. Остальные напряжения дадут меньшую кратность.
Есть ещё топологии Sepic.
В Сепике и Чуке есть ноль в правой полуплоскости (RHPZ), из-за чего приходится снижать полосу пропускания обратной связи (конвертер будет реагировать на изменения тока нагрузки или входного напряжения медленнее). В похожей топологии Zeta нет нуля в правой полуплоскости.
Но такую топологию я особо не встречал. Чаще попадается совмещённый Сепик+Чук.
Топологии интересные и имеют свои плюсы: выходное напряжение может быть как выше, так и ниже входного, а конденсатор С1 защищает вход схемы от короткого замыкания на выходе.
Выходное напряжение в нашем проекте только выше (по модулю) и нам такая особенность не нужна. К тому же, в схемах по две индуктивности, что мне кажется лишним усложнением (и удорожанием) в данном случае.
Выбираем простые повышающий и инвертирующий преобразователи.
Кстати, эти симпатичные картинки из книги Power Topologies Handbook.
Материал в ней расположен удобно. Есть также краткая версия Power Topologies Quick Reference Guide.
Я решил остановиться на микросхемах Texas Instruments. У них довольно подробные даташиты, множество рекомендаций по применению (application notes и др.), полезных программ. Для быстроты поиска микросхемы используем WEBENCH Power Designer. Вводим входные и выходное напряжения, ток и из списка предложенных микросхем выбираем наиболее понравившуюся.
Важную роль в этом сыграла доступность и стоимость микросхемы.
Там же можно немного помоделировать схему и посмотреть, какие компоненты рекомендует программа.
После некоторых поисков, сравнений стоимости и доступности микросхем я остановился на двух – LMR62014 (для линии +15 В) и LMR64010 (для линии +22 В). LMR62014 не подходит для +22 В из-за ограничения на выходное напряжение в 20 В.
Подберём теперь микросхему для инвертирующего (inverting) преобразователя. Идём в магазин.
У начинающих может возникнуть вопрос: для повышающих и понижающих топологий микросхемы есть, а для инвертирующих нет? Как так?
Всё просто! Инвертирующий преобразователь (inverting buck-boost) можно реализовать на основе микросхемы понижающего (buck). Есть хорошая апнота Working with Inverting Buck-Boost Converters (snva856b) от TI по применению микросхем понижающих (buck) преобразователей для инвертирующих.
В процессе поиска мне попалась неплохая дешёвая микросхемка понижающего преобразователя AOZ1280CI. На основе неё сделаем инвертирующий преобразователь.
Оценочный расчёт можно провести с помощью Power Stage Designer Tool.
Посмотрим, подойдёт ли AOZ1280CI для линии -15 В:
Максимальное напряжение, которое будет приложено к микросхеме
5.5 В + |-15 В|=20.5 В (< максимума = 26 B => подходит)
Максимальный ток в индуктивности Power Stage Designer Tool насчитала 995 мА (< минимального Current Limit =1.5 A => подходит)
Коэффициент заполнения 77 % (< Dmax=87 %, есть запас => подходит)
Посчитаем для линии -20 В:
Максимальное напряжение 5.5 В + |-20 В|=25.5 В (< 26 B => подходит). Если смотреть максимальное напряжение Vin в Absolute Ratings AOZ1280CI, то там 30 В. Запас есть, всё хорошо.
Максимальный ток в индуктивности Power Stage Designer Tool насчитала 92 мА (< минимального Current Limit =1.5 A => подходит)
Коэффициент заполнения 82 % (< Dmax=87 %, есть запас => подходит)
Оценочный расчёт сделали, микросхемы и топологии выбрали. Теперь рассчитаем и подберём остальные детали.
Идём на сайт TI и смотрим, что у них есть интересного для LMR62014. Скачаем spice-модель – может пригодится нам позже. Также есть разные апноты и рекомендации по применению: Working with Boost Converters snva731, Basic Calculation of a Boost Converter's Power Stage slva372d и другие.
Для AOZ1280 модельки не нашлось. Зато есть расчётка (которая нам не поможет, так как она для понижающей топологии ☺). Даташит AOZ1280 не такой подробный, как у TI. Но AOZ1280 стоит в два раза дешевле LMR62014.
А можно как-нибудь применить LMR62014 и для линии +22 В? Это весьма привлекательное решение, так как она несколько дешевле LMR64010 (была на момент проектирования). Заодно уменьшилось бы количество наименований в списке компонентов, что тоже хорошо. Конечно можно!
Для топологии boost с умножителем на 2 каскад повышающего преобразователя рассчитывается на напряжение в 2 раза ниже выходного, но ток в 2 раза больше выходного. Такая схема снижает напряжение на диодах выпрямителя, выходных конденсаторах, конденсаторе передачи энергии и силовом ключе до Vout/2, что является основным преимуществом. Транзистор и катушка индуктивности будут работать почти с тем же пиковым током и рабочим циклом, что и в схеме без удвоителя, поскольку общая мощность на выходе не изменится.
На картинке ниже приведён boost с умножителем на 3 (картинка нашлась только в таком качестве, но общая идея понятна). Если нужно, можно добавить ещё умножителей.
Также есть любопытный вариант с инвертированием напряжения.
Например, микросхема LT3463 использует эту топологию совместно с топологией повышающего преобразователя.
> Продолжение в источнике материала на Хабре. Увы, все фото не влезли, а именно в них вся суть и самое вкусное. :)
Написано специально для Timeweb Cloud и читателей Пикабу. Подписывайтесь на наш блог, чтобы не пропустить новые интересные материалы.
Также подписывайтесь на наш телеграмм-канал — только здесь, технично, информативно и с юмором об IT, технике и электронике. Будет интересно.
Облачные сервисы Timeweb Cloud — это реферальная ссылка, которая может помочь поддержать наши проекты.
Реклама от Ридли Скотта:
До этого тоже выходили ПК Apple, но все они были не такими удачными. так что можно считать, что этот ПК был первым коммерческим успехом Apple. К 1998 году их было продано более миллиона штук.
Macintosh 128K
Macintosh 128K, первоначально представленный как Apple Macintosh — первый персональный компьютер Apple семейства Macintosh. В комплекте с ним шли мышь и клавиатура. Ручка, расположенная в верхней части корпуса, облегчает подъём и переноску компьютера. Его первоначальная стоимость составляла 2495 долларов. Macintosh был представлен в телевизионном рекламном ролике Ридли Скотта «1984», который транслировался на CBS 22 января 1984 года (см. выше).
Продажи Macintosh были высокими с момента его первоначального выпуска 24 января 1984 г. и достигли 70 000 единиц к 3 мая 1984 г. После выпуска его преемника, Macintosh 512K, он был переименован в Macintosh 128K. Компьютер — модель M0001.
Мой первый комп появился у меня примерно в 1995 году И выглядел так. 386 IBM
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509
После успеха в начале 90-ых компании сулили славное будущее, но потом кое-что пошло не так — Sega 32X, Saturn и Dreamcast провалились.
За 5-6 лет компания, подарившая нам детство, деградировала, а в 2001-ом и вовсе прекратила производство консолей, ушла в тень и стала разработчиком и издателем игр.
Почему так произошло? С чем компания, перевернувшая видео игровую индустрию, так и не смогла справиться? Почему рухнул многомиллиардный бизнес Сега? И почему нет ни единого шанса, что Sega сделает новую консоль
Можно ли оказать сопротивление и вступить в яростную конкуренцию с компанией, которой принадлежит 90 % рынка? Можно ли рассчитывать на победу? Как и любые другие знаменитые противостояния конкурентов, вроде Apple и Microsoft, Pepsi и Coca Cola, яростная вражда между Sega и Nintendo выявила все лучшие (и худшие) качества каждой компании, попутно изменив пейзаж развлекательного сектора.
Sega, небольшая, агрессивная видеоигровая компания под предводительством необычного визионера и команды бунтарей выступила против могущественной Nintendo, попутно произведя революцию в индустрии видеоигр.
Конец 80-х и начало 90-х в истории видеоигр — это время захватывающих и невероятных историй. Индустрия только формировалась, поэтому происходили вещи, которые сейчас представить невозможно: возможностей было больше, и небольшая компания могла за короткий срок превратиться в гиганта.
Противостояние маленькой Sega и монополиста Nintendo — самая фантастическая из этих историй.
Название компании SEGA — это аббревиатура от «Service Games».
Компания Sega была основана 3 июня 1960 года американскими бизнесменами Мартином Бромли и Ричардом Стюартом под названием Nihon Goraku Bussan. Вскоре после этого компания приобрела активы своего предшественника, фирмы Service Games of Japan. Пять лет спустя после приобретения компании Rosen Enterprises, импортера аркадных игр, она стала называться Sega Enterprises, Ltd.
В 1966 году Sega представила игровой автомат, моментально ставший хитом - Periscope, известный позднее в СССР как «Морской бой». Игра была настолько популярна, что компания сразу начала экспортировать ее в Америку и другие страны.
В игре использовались световые и звуковые эффекты, считающиеся инновационными, и она была успешной в Японии. Этот игровой автомат экспортировался в Европу и США и размещался в торговых центрах и универмагах. Игра стоила 25 центов в Соединенных Штатах. Sega была удивлена ??успехом, и в течение следующих двух лет производила и экспортировала от восьми до десяти игр в год. В 1969 году большая часть компании переехала из Японии в США.
В 1973 году Sega выпустила свою первую видеоигру Pong-Tron.
Несмотря на конкуренцию со стороны популярной аркадной игры Space Invaders в 1978 году, Sega процветала. В США в конце 1970-ых был бум аркадных игр. К 1979 году доход компании достиг более 100 миллионов долларов. В течение этого периода Sega приобрела компанию Gremlin Industries, производитель микропроцессорных аркадных игр.
В 1979 году Sega также приобрела Esco Boueki (Esco Trading), основанную и принадлежащую Хаяо Накаяме. Это привело Накаяму в компанию, где он был назначен ответственным за японские операции Sega.
В начале 1980-х Sega была одним из пяти ведущих производителей аркадных игр в Соединенных Штатах, доходы компании выросли до 214 миллионов долларов.
В 1979 году SEGA выпустила игру Head On, в котором был представлен игровой процесс «съешь точки», который позже Namco использовал в легендарной игре Pac-Man.
В 1981 году Sega лицензировала и выпустила игру Frogger, свою самую успешную игру в то время. В 1982 году Sega представила первую игру с изометрической графикой Zaxxon.
Спад на рынке аркадных игр, начавшийся в 1982 году, нанёс серьезный ущерб Sega, вынудив компанию Gulf and Western продать свой североамериканский игровой актив и лицензионные права на свои аркадные игры компании Bally Manufacturing.
Компания сохранила североамериканскую компанию Sega, занимающуюся исследованиями и разработками, и ее японское дочернее предприятие Sega Enterprises, Ltd. В связи с упадком аркадного бизнеса президент Sega Enterprises, Ltd. Накаяма выступил за то, чтобы компания использовала свой опыт в области аппаратного обеспечения для продвижения в Рынок домашних консолей в Японии, который находился в зачаточном состоянии в то время. Это привело к разработке Sega компьютера SC-3000.
Узнав, что Nintendo разрабатывает игровую консоль, Sega разработала и выпустила свою первую домашнюю игровую систему SG-1000 вместе с SC-3000. Ребрендинговые версии были выпущены на нескольких других рынках по всему миру.
В 1983 году SEGA продала около 160 тысяч консолей SG-1000. Однако, к 1984 году продажи консоли Famicom начали опережать продажи SG-1000, отчасти потому, что Nintendo расширила свою библиотеку игр, привлекая сторонних разработчиков, в то время как Sega не решалась сотрудничать с компаниями, с которыми она конкурировали в аркадах
В 1984 году, вскоре после запуска SG-1000 Хаяо Накаяма и Дэвид Розен, при финансовой поддержке корпорации CSK, организовали выкуп японской дочерней компании. Японские активы Sega были куплены за 38 миллионов долларов группой инвесторов во главе с Розеном и Накаямой. Исао Окава, президент корпорации CSK, стал председателем компанией, в то время как Накаяма был назначен генеральным директором Sega Enterprises, Ltd.
Sega начала работать над консолью Mark III в Японии в 1985 году. Mark III была переработанной версией SG-100, разработанной той же командой.
Для выпуска в Северной Америке Sega переименовала консоль Mark III в Master System.
Mark III поступила в продажу в Японии в октябре 1985 года по цене 15 000 иен. Несмотря на более начинку, чем у консоли Famicom, Mark III потерпела неудачу при запуске. Поскольку Nintendo требовала от сторонних разработчиков не публиковать игры , выпущенные для Famicom на других консолях, Sega разработала свои собственные игры и получила права на портирование игр от других разработчиков, но они плохо продавались.
Продажи Master System в Соединенных Штатах были затруднены из-за неэффективного маркетинга. К началу 1992 года производство консоли Master System прекратилось в Северной Америке. К тому моменту было продано от 1,5 до 2 миллионов единиц. Тем не менее, консоль Master System в конечном итоге была успешной в Европе. К 1993 году там было продано более 6 миллионов консолей.
29 октября 1988 года в Японии Sega выпустила преемника Master System - игровую приставку Mega Drive.
Но продажи были не очень большими, за первый год было продано всего 400 тысяч консолей. Для запуска консоли в Северной Америке, где она была переименована в Genesis, у Sega не было партнера по продажам и маркетингу. После того, как Atari отклонила предложение о продаже консоли в регионе, Sega запустила продажи Genesis через свою дочернюю компанию Sega of America.
Продажа новой приставки Genesis была запущена 14 августа 1989 года. Европейская версия Mega Drive была выпущена в сентябре 1990 года.
Для североамериканского рынка, где консоль была переименована в Genesis, бывший исполнительный директор Atari и новый исполнительный директор Sega of America Майкл Кац разработал двухэтапный подход к продажам. Первая часть включала в себя маркетинговую кампанию, чтобы бросить вызов Nintendo и подчеркнуть, что у SEGA был более богатый аркадный опыт, который был вложен в Genesis. Вторая часть плана включала создание библиотеки узнаваемых игр, в которой использовались имена и сходства знаменитостей и спортсменов.
Тем не менее, компании SEGA было трудно преодолеть повсеместное распространение Nintendo в домах. За первый год продаж в США продали только 500 тысяч приставок.
SEGA искала своего флагманского персонажа, который смог бы конкурировать c Mario от Nintendo. Художник Наото Охима разработал ежа с красными туфлями и оригинальной прической, которого он назвал мистером Нидлемусом. Этот персонаж был переименован в Соника.
Геймплей игры Sonic the Hedgehog возник из технической демонстрации возможностей консоли, созданной Юджи Нака. Прототипом для игра послужила игровая платформа, в которой быстро движущийся персонаж катился через длинную трубку.
В середине 1990 года Накаяма нанял Тома Калинске вместо Каца на пост генерального директора Sega of America. Хотя Калинске мало знал о рынке видеоигр, он окружил себя опытными советниками.
Журналисты и критики похвалили игру Sonic, называя её одной из величайших игр, и консоль Sega наконец-то стала успешной. Во многом благодаря популярности Соника, Sega Genesis превзошла своего главного конкурента, Super Nintendo Entertainment System.
К январю 1992 года Sega контролировала 65% рынка 16-битных консолей, что позволило компании SEGA обогнать Nintendo на рынке консолей впервые с 1985 года.
В 1990 году Sega выпустила игровую консоль Game Gear, чтобы конкурировать с Game Boy от Nintendo.
Консоль была разработана в качестве портативной версии Master System и имела более мощную начинку, чем у Game Boy, включая полноцветный экран, в отличие от монохромного экрана Game Boy.
Однако, из-за короткого времени автономной работы, отсутствия оригинальных игр и слабой поддержки со стороны Sega, Game Gear не превзошла Game Boy. Было продано около 11 миллионов единиц.
1 декабря 1991 года в Японии была выпущена приставка Mega-CD. В Северной Америке она была переименован в Sega CD и выпущена 15 октября 1992 года по розничной цене 299 долларов. В Европе эта консоль была выпущена в Европе как Mega-CD в 1993 году. Но продажи новой приставки были намного ниже ожиданий. За первый год продали всего 100 тысяч консолей.
В январе 1994 года Sega начала разработку дополнения для консоли Genesis - 32X, которое должно было стать входом в 32-битную эпоху.
Решение было поддержано Накаямой и сотрудниками Sega of America. Sega выпустила дополнение для своей приставки 32X 21 ноября 1994 года в Северной Америке, 3 декабря 1994 года в Японии и январе 1995 года на территориях Европы. Однако интерес к 32X быстро упал.
22 ноября 1994 года в Японии стартовали продажи новой приставки Sega Saturn. В первый же день было продано 200 тысяч приставок.
В марте 1995 года генеральный директор Sega of America Том Калинске объявил, что Saturn будет выпущена в США в 2 сентября 1995 года.
На первой выставке Electronic Entertainment Expo (E3) в Лос-Анджелесе 11 мая 1995 года Калинске выступил с программной презентацией, в которой он раскрыл цену релиза в 399 долларов и описал особенности консоли. Выпуск приставки в Европе начался 8 июля 1995 года.
В течение двух дней после американского запуска продаж PlayStation 9 сентября 1995 года Sony продала больше устройств, чем Sega за пять месяцев продала приставок Saturn.
В течение первого года PlayStation завоевала более 20% рынка видеоигр в США. Sega также недооценила популярность своей прошлой модели Genesis, которая по прежнему пользовалась спросом и переманивала покупателей у новой приставки Saturn.
Из-за давних разногласий с Sega из Японии Том Калинске потерял интерес к своей работе в качестве генерального директора Sega of America.
Консоль Saturn не смогла взять на себя лидерство на рынке, как это было с приставкой Genesis. После запуска Nintendo 64 в 1996 году продажи Saturn и её игр резко упали, в то время как PlayStation переиграла Saturn в США три к одному в 1997 году.
После пяти лет общего снижения прибыли в финансовом году, заканчивающемся 31 марта 1998 года, Sega понесла убытки впервые с момента листинга на Токийской фондовой бирже в 1988 году.
Незадолго до объявления о потерях Sega объявила, что прекращает всю работу, связанную с приставкой Saturn в Северной Америке, чтобы подготовиться к запуску её преемника. Решение отказаться от консоли Saturn фактически оставило западный рынок без игр Sega более чем на год. Sega понесла дополнительный консолидированный чистый убыток в размере почти 43 миллиарда иен в финансовом году, заканчивающемся в марте 1999 года, и объявила о планах по сокращению 1000 рабочих мест, то есть почти четверти своей рабочей силы.
Несмотря на огромные потери из-за приставки Saturn, в том числе 75-процентное падение полугодовой прибыли непосредственно перед запуском Dreamcast в Японии, Sega была уверена в своей новой системе.
Dreamcast вызвала значительный интерес и привлекла много предварительных заказов. Sega объявила о том, что игра Sonic Adventure будет закончена как раз к запуску Dreamcast.
Однако Sega не смогла достичь поставленных целей при запуске Dreamcast в Японии из-за нехватки чипсетов PowerVR, вызванной высокой частотой отказов в производственном процессе.
27 ноября 1998 года Sega Dreamcast была запущена в Японии по цене 29 000 иен, и к концу дня все выпущенные приставки были распроданы.
Шоичиро Иримаджири надеялся продать более 1 миллиона устройств Dreamcast в Японии к февралю 1999 года, но было продано менее 900 000, что подорвало попытки Sega создать достаточную базу для обеспечения выживания Dreamcast после появления конкурентов от других производителей. Перед запуском в западном направлении Sega снизила стоимость Dreamcast до 19 900 иен, что фактически сделало аппаратное обеспечение убыточным, но увеличило продажи.
11 августа Sega of America подтвердила, что Берни Столар был уволен. Теперь в Америке у руля Sega стоял Питер Мур. Dreamcast стартовала в Северной Америке 9 сентября 1999 года по цене 199 долларов. При старте продаж для Sega Dreamcast были доступны 18 игр.
Sega установила рекорд, продав более 225 000 устройств Dreamcast за 24 часа, заработав 98,4 миллионов долларов. В течение двух недель продажи Dreamcast в США превысили 500 000. К Рождеству Sega владела 31 процентом рынка видеоигр в Северной Америке.
4 ноября Sega объявила, что продала более миллиона устройств Dreamcast.
14 октября 1999 года Sega выпустила Dreamcast в Европе. В то время как Sega продала 500 000 единиц в Европе к Рождеству 1999 года.
Хотя запуск Dreamcast был успешным, Sony по-прежнему владела 60 процентами общей доли рынка в Северной Америке с PlayStation в конце 1999 года. В том же году Nintendo объявила, что ее консоль следующего поколения будет соответствовать или превосходить что-либо на рынке, и Microsoft начала разработку своей собственной консоли Xbox. Первоначальный импульс Sega оказался мимолетным, так как продажи Dreamcast в США, которые к концу 1999 года превысили 1,5 миллиона, начали снижаться уже в январе 2000 года.
Плохие продажи в Японии способствовали росту убытков компании Sega в финансовом году, заканчивающемся в марте 2000 года, который последовал за аналогичным убытком в предыдущем году и ознаменовал третий ежегодный убыток Sega подряд. Хотя общие продажи Sega за этот период увеличились на 27,4%, а продажи Dreamcast в Северной Америке и Европе значительно превзошли ожидания компании, этот рост совпал с уменьшением прибыльности из-за инвестиций, необходимых для запуска Dreamcast западные рынки и плохими продажами программного обеспечения в Японии. В то же время, плохие рыночные условия снизили доходность японского аркадного бизнеса Sega, заставив компанию закрыть 246 рабочих мест.
Мур заявил, что нужно продать 5 миллионов приставок в США к концу 2000 года, чтобы оставаться жизнеспособной платформой, но Sega не достигла этой цели, - было продано около 3 миллионов единиц. Более того, попытки Sega стимулировать продажи Dreamcast за счет более низких цен и денежных скидок привели к увеличению финансовых потерь.
В марте 2001 года Sega опубликовала консолидированный чистый убыток в размере 417,5 миллиона долларов. В конце концов, Sony и Nintendo удерживали 50 и 35 процентов рынка видеоигр в США соответственно, а Sega - только 15 процентов.
В конце 1999 года председатель Sega Enterprises Исао Окава заявил, что фокус Sega будет смещен с аппаратного обеспечения на программное обеспечение. 1 ноября 2000 года Sega изменила название своей компании с Sega Enterprises на Sega Corporation.
22 мая 2000 года Окава сменил Иримаджиру на посту президента Sega. Окава давно выступал за то, чтобы Sega отказалась от консольного бизнеса. Его позиция по этому вопросу не была уникальной. Соучредитель Sega Дэвид Розен «всегда чувствовал, что для них было бы глупостью ограничивать свой потенциал аппаратным обеспечением Sega», и Столар предположил, что Sega должна была продать свою компанию Microsoft.
В сентябре 2000 года на встрече с японскими руководителями Sega и руководителями крупнейших японских студий по разработке игр компании Питер Мур рекомендовал Sega отказаться от консольного бизнеса и сосредоточиться на программном обеспечении.
23 января 2001 года появились сообщения, что Sega прекратит производство Dreamcast и разработает программное обеспечение для других платформ. Sega of Japan выпустила пресс-релиз, подтверждающий, что они рассматривают возможность производства программного обеспечения для PlayStation 2 и Game Boy Advance в рамках своей «новой политики управления».
31 января 2001 года Sega объявила о прекращении выпуска Dreamcast после 31 марта и реструктуризации компании как независимого от платформы стороннего разработчика. Sega также объявила о снижении цены на консоль Dreamcast до 99 долларов (!), чтобы ликвидировать непроданные запасы, которые по состоянию на апрель 2001 года оценивались в 930 000 единиц.
В рамках реструктуризации в 2001 году была уволена почти треть сотрудников Sega в Японии. 2002 год был пятым подряд убыточным годом для Sega.
После смерти Исао Окавы, Хидеки Сато стал президентом Sega. Из-за плохих продаж в 2002 году Sega была вынуждена сократить свой прогноз прибыли на 90% на 2003 год.
В результате Sega начала искать возможности слияния для исправления своего финансового положения.
В апреле 2015 года корпорация Sega была реорганизована в Sega Group, одну из трех групп Sega Sammy Holdings. Харуки Сатоми, сын Хаджиме Сатоми, вступил в должность президента и генерального директора компании в апреле 2015 года.
На Tokyo Game Show в сентябре 2016 года Sega объявила, что приобрела права интеллектуальной собственности и права на разработку для всех игр, разработанных и изданных Technosoft. Компания Technosoft не хотела, чтобы бренд Technosoft прекратил свое существование, и поэтому передача интеллектуальной собственности Sega была единственной альтернативой.
В октябре 2017 года Sega of America анонсировала свой интернет-магазин Sega Shop. Ян Керран, бывший руководитель THQ и Acclaim Entertainment, заменил Джона Чэна на посту президента и главного операционного директора Sega of America в августе 2018 года.
Друзья! Многие ли из вас застали такую легендарную видеокарту, как 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 был таким медленным!
В начале 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, чтобы не пропускать новый материал каждую неделю!
Доброго времени суток !
подскажите пожалуйста что делать.
со всеми устройствами в квартире стали происходить странные дела
-телевизор сам по себе вкл/вык ,каналы переключаются,возникают какие либо потустороние медиа(со звуками пуков и отрыжек),громкость то вверх то вниз
-телефоны блокируются,та же история со звуками
Если прикалывается кто,то как если не вычислить,хотя-бы лешить его сей возможности