Служба "Компьютерная помощь": компьютер для игр - технология OpenGl

 
 

Компьютер для игр: технология OpenGl

Священным огнем войны охвачена компьютерная индустрия. Конкурирующие гиганты - компании, лидирующие монстры - бренды, устрашающие киборги - технологии, готовы перегрызть друг другу горло и испить чужой кровушки, лишь бы победить и гордо носить звание «лучший» и позиционировать себя «супер» в мозге пользователей и побежденных конкурентов. Постоянно подтверждать свое преимущество, чтоб последние не расслаблялись. Как показывает практика, кровопролитный холивар одним годом не ограничивается, много воды может утечь от его начала и до окончания. Еще больше уходит времени на поддержание соответствующей репутации, которая зарабатывается годами, а рушится за один час. Примеров подобных баталий много – это и ATI vs nVidia, и Intel vs AMD, и C# vs Java, и Правый руль vs Левый руль, да много ли еще примеров можно привести, включая наиболее запомнившуюся схватку PC vs MAC.

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

О бедном гусаре замолвите слово

Думаю, вам известно, как минимум на пальцах, что OpenGL, или Open Graphics Library, что в переводе обозначает «открытая графическая библиотека» — это коллекция Аpplication Programming Interface, сокращенно API и в дословном сухом переводе означающая «интерфейс программирования приложений». Создана библиотека для написания приложений, использующих 2D и 3D компьютерную графику и ее эффекты. Ну, а раз уж это библиотека, то несет в себе собрание стандартных методов обработки графики программным обеспечением, позволяя минимизировать время, затраченное на программирование графики. К примеру, вывод точки на экран, весьма простая функция, в хранилище можно эту функцию найти. Сложные функции, применяемые в каждой программе, там тоже имеются. Конечно же, благодаря реализации API, программистам доступны особые функции аппаратного обеспечения, при этом исключается вероятность написания аппаратно – зависимого программного кода. Иными словами, Аpplication Programming Interface представляет собой вполне упорядоченную гору кирпичей для разгрузки времени программистов: они просто тягают один за другим кирпичики и моделируют таким образом трехмерную графику. Элементарно, Ватсон! – воскликнул бы Шерлок Холмс. Видюха часто не в состоянии аппаратно оказать поддержку необходимым приложениям функции, вот, пожалуйста, на это есть библиотека, ценная коллекция, которая использует программные модули, позволяющие эмулировать требуемые возможности.

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

 

Компьютерные новости:

  • В школах Ленобласти откроют виртуальные филиалы Русского музея
  • 14 апреля откроется РИТ-2008
  • 29 апреля пройдет Open Day Christie
  • Adobe представила первую версию нового медиаплеера
  • Круглый стол CNews: Будущее ERP-систем
  • Sony представила новые модели «невидимых» домашних кинотеатров
  • LG выпустил 26- и 30-дюймовые мониторы для работы с графикой
  • Microsoft открыла техническую документацию по офисным продуктам
  • IBM представила мощные серверы Power 595/575
  • Iomega куплена за $213 млн
  • Toshiba приступила к поставкам нового видеопроцессора
  • Вышла бета-версия Opera Mini 4.1
  • Спрос на Blu-ray-диски превысит предложение
  • Asustek выпустил мини-ПК с размерами 29 x 20 x 8 см

Компьютерные объявления

В обычном рабочем режиме OpenGL представляет собой программный интерфейс, содержащий достаточное количество команд, более 250, воспользовавшись которыми программист может определить различные объекты и сделать отрисовку.

В общем, определив объект, задав его местоположение в трехмерном пространстве, задав свойства объекта: цвет, текстура, определив, например, такие параметры как поворот или масштаб, положение наблюдателя в трехмерном пространстве, обращаемся к OpenGL. Он то и позаботится об отображении желаемого на мониторе по трехмерной сцене.

Получается, что для OpenGL доступна только визуализация. Только рендеринг для отображения 3D-объектов без поддержки устройств ввода – вывода. На лицо, конечно, определенные преимущества: простой процедурный интерфейс и отлично продуманная внутренняя система. Это несомненный плюс в копилку OpenGL: при своей простоте он позволяет реализовывать профессионально сложные и мощные программные комплекты при полной минимизации времени на их создание в отличие от других API.

Помощники OpenGL

OpenGL в своем арсенале имеет ряд библиотек – помощников. Это, конечно, вынужденная необходимость. Связано наличие дополнений невозможностью представить все функции воспроизведения и моделирования трехмерных сцен. Вот вспомогательные библиотеки для этого и нужны. Эти библиотеки можно встретить на своем пути в следующем обличие:
GLUT - OpenGL Utility Toolkit,
GLEW, OpenGL Extension Wrangler Library,
GLEE, OpenGL Easy Extension library,
GLU - OpenGL Utility Library,
SDL - Simple DirectMedia Layer,
VTK и Open Inventor библиотеки.

GLUT - OpenGL Utility Toolkit, основное предназначение этой библиотеки для приложений для OpenGL – поддержка системного уровня ввода – вывода при работе с ОС. GLUT включает в себя создание и управление окнами, сбор и обработку информации ввода с клавиатуры и изменения свойств мыши, создание несложных всплывающих меню и рисование геометрических примитивов, легко узнаваемый чайник, также куб и сфера.

GLEW, OpenGL Extension Wrangler Library; GLEE, OpenGL Easy Extension library – особенно актуальны для программистов в Windows. Библиотеки облегчают работу с различными версиями и расширениями и Open Graphics Library.

GLU - OpenGL Utility Library, традиционное дополнений под OpenGL, своего рода надстройка. Использует функции OpenGL для рисования таких объектов, как квадратичные поверхности, или составление прямоугольных примитивов, то есть более сложных объектов, чем доступны в OpenGL. Так же как и GLUT содержит дополнительные функции для рисования дополнительных графических примитивов: диски, цилиндры и прочие.

SDL - Simple DirectMedia Layer реализует универсальный интерфейс программы к графической реализации функций, к средствам ввода для широкого спектра платформ, к звуковым устройствам. Особенно активно это хранилище используют при написании игр для GNU/Linux.

И, наконец, VTK и Open Inventor библиотеки. Они позволяют проводить операции с весьма сложными трехмерными объектами, это позволяет ускорить создание 3D – сцены. OpenGL в детализации имеет только лишь набор графических примитивов: линии, точки, многоугольники, из них уже создаются трехмерные объекты. Согласитесь, это не всегда удобно при создании трехмерных сцен.

История со сроком давности.

Удивительно даже, что OpenGL разработан еще в 1982 году. OpenGL стал детищем матерых на тот момент Silicon Graphics Inc. Они то, взяв за основу разработанную концепцию графической машины Стенфортского университета, в своей рабочей станции Silicon IRIS реализовали конвеер рейдинга. Специализацией Silicon Graphics Inc была разработка высоких технологий в области программных средств и графического оборудования. В то время Silicon Graphics Inc являлись признанным лидером в трехмерной графике. Естественно, как водится у лидеров, Silicon Graphics Inc имели кучу проблем с непомерными финансовыми и временными затратами, отдаваемыми на разработку различных программ. Подразумевается и то, что эти программы должны были хорошо себя зарекомендовать на разнородном графическом оборудовании. Под это дело создавалось множество модулей для каждого типа графических адаптеров. Слишком много времени и средств. Слишком медленное развитие популяции компьютерной графики.

В итоге руководство Silicon Graphics Inc принимает решение, они стандартизируют доступность к графической аппаратуре. Делая это на уровне программного интерфейса. Вот вам и IRIS GL образовался, став прародителем OpenGL. Понятно, что без косяков не обошлось, иначе так и оставалась IRIS GL и по сей день во здравии. К примеру, библиотека IRIS GL позволяла только аппаратное использование, в противном случае приложение не могло использоваться. Долго ли, коротко ли, а к 1992 году на основе хранилища IRIS GL разработан стандарт OpenGL. Да мало того, что разработан, стандарт еще и утвердили. В OpenGL решают проблему IRIS GL с исключительным аппаратным использованием по средствам программной реализации возможностей. Предполагается, что новый программный интерфейс будет использоваться приложениями на относительно маломощных системах. Даже в нейминге OpenGL есть прямое указание на мобильность и открытость графической библиотеки: Open – открытая, GL – графическая библиотека.

Долгая и детальная работа велась над OpenGL, по-другому никто бы не стандартизировал эту API. Для развития, доработок, учета пожеланий пользователей, ну, и естественно, для осуществления капиталоемкого проекта, Silicon Graphics Inc. сформировывает консорциум компаний, в который кроме самой Silicon Graphics Inc. входят такие светила как Sun Microsystems Inc., Evans & Sutherland, , IBM Corporation, Digital Equipment Corporation (DEC), Hewlett-Packard Corporation, Intergraph Corporation, Intel Corporation и Microsoft. Это объединение назвали Architecture Review Board (ARB). Интересно, что корпорация Microsoft, основной конкурент Silicon Graphics Inc. на рынке API достаточно долгое время входила в консорциум и вышла из него только в 2003 году. Хотя, надо отметить, что уже через несколько лет после вступление в объединение ARB, в 1995 году, Microsoft разрабатывает первую версию DirectX, которую со временем начинают позиционировать как замену OpenGL. А в самом начале Microsoft очень даже приложили руку к продвижению и развитию графического стандарта OpenGL. В данном случае участие Microsoft не было панацеей, никто не расстроился после их ухода и сейчас в ARB входят все крупнейшие производители видеокарт и nVIDIA и ATI там же.

Предпосылки стандартизации OpenGL:

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

Цена жизни велика

По сути, OpenGL создавался для профессионального сектора с серьезными требованиями. Основными «клиентами» OpenGL являлись различные институты, научная сфера, высокопроизводительные рабочие станции, с успехом OpenGL использовалась для проектов с требованиями переносимости приложений на аппаратные или программные платформы. Завоевав доверие среди профессионалов, OpenGL надежно там укоренился. Параллельно очень сильное развитие получает игровой сектор, там OpenGL сталкивается с мощной конкуренцией. 3DFX в 1994 году разрабатывает полноценную API Glide, которая удовлетворяет все потребности разработчиков игр и их пользователей. 3DFX является акулой рынка игровых видеоускорителей. Жирным минусом у API Glide было то, что в процессе амортизации поддерживались только произведенные 3DFX чипсеты, получалось, что корпорация 3DFX была монополистом в игровом секторе. В общем - то OpenGL, по понятным причинам, очень тепло встретили при их появлении в 1996 году. Хотя, как серьезного конкурента, OpenGL не восприняли. Игры продолжали писать под Glide.

Здесь и Microsoft вводит собственную разработку API. Первая версия DirectX под названием Games SDK, созданная исключительно под Windows, появляется в 1995 году. Порт под Windows есть и в OpenGL, только работает он гораздо хуже и медленнее. Здесь скорее политические предпосылки оказали влияние: реализованный в Microsoft порт работал через быстрый программный порт ICD(Installable Client Driver), а OpenGL через медленный MCD. Предполагалось, естественно, что разработчики при таком раскладе предпочтут работать с Direct3D. Предположение оправдалось, пока в Silicon Graphics не разработали свой ICD-порт, а за ними последовали и другие производители, включавшие в комплекты драйверов собственные версии ICD, что улучшало работу 3D-наборов микросхем.

Производителям также предоставлялась возможность расширять список функций для OpenGL библиотеки. Microsoft тогда выходит с предложением о партнерстве к Silicon Graphics Inc., разработав проект Fahrenheit – единую API. Microsoft преследовали свои корыстные цели, настояв на удалении всех возможных ссылок на SGI-реализацию и на прекращение дальнейшей поддержки OpenGL. Кроме этого Microsoft принимает решение реализовать новый API только через Direct3D, на этом сотрудничество корпораций прекращается. Это происходит не в самые лучшие дни для Silicon Graphics Inc.: специалисты корпорации переметнулись в NVidia и жизнь SGI была под угрозой. Но, нет худа без добра: OpenGL неожиданно получает мощную поддержку со стороны Кармака. Для графического интерфейса легендарного Quake программисты Id Software выбирают OpenGL. В какой-то степени это определяет дальнейшую судьбу OpenGL. Quake на самом деле имеет огромный успех во всем мире и в скором будущем разрабатываются модификации игры: WinQuake, GLQuake, Quake 2. Стали выходить игры с использованием движка Quake, а это означало, что OpenGL вновь приобрел популярность. Гонка за первенство продолжалась.

Сбитые летчики:
кроме DirectX и OpenGL в свое время существовала целая плеяда так называемых native API, узкоспециализированных графических библиотек, заточенных под определенное семейство 3D-ускорителей. Ожидалось, что их сметет со сцены единый API Fahrenheit, но сначала он умер, так и не родившись, а потом постепенно вымерли и они сами.

Уже известный нам Glide, до сих пор имеющий поклонников в сети, молящихся о реабилитации гиганта.

Metal – недолгое время успешная на рынке, выпустившая в свое время API для собственных графических акселератов.

Созданная Intergraph Computer Systems графическая библиотека RenderGL. Она являлась надстройкой к OpenGL. Разработчики пророчили с ее помощью в шестнадцать раз увеличить производительность OpenGL при фотореалистичной визуализации трехмерных RealiZm 3D Graphics. На деле так не вышло и RenderGL пала смертью храбрых.

«Мы такие разные, но все-таки мы вместе!»

Уже доступна третья спецификация OpenGL. За этот же отрезок времени, с 1995 года, Microsoft выпустил уже десять версий своей DirectX. Но, это и не удивительно. На OpenGL делали ставки. Пророчили популярность библиотеки в течение продолжительного времени. Популярной API была и была достаточно долго. Но потребности в обновлении избежать невозможно. ARB плохо это понимает. Хорошо, что хотя бы в OpenGL предполагается возможность расширений. Использование расширений дает возможность использовать те функции, которые не входят в основную специфику OpenGL. Позволяют каждому разработчику по своему усмотрению расширить базу функций.

Такой возможности в DirectX нет. Там все проще. Версия поддерживает функциональность, или не поддерживает. В последнем случае приходится ждать следующей версии. Однако, такие казусы случаются весьма редко, Microsoft поддерживает тесную связь с производителями железа. Вот только свежей версии DirectX ожидать надо год, а в случае с OpenGL новые функции доступны уже через расширения.

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

служба Компьютерная помощь- настройка и ремонт компьютеров, компьютерный сервис в городе Кириши

 
  продажа технических лифтов | Собачий питомник. Собаки: питомник йоркширский терьер, щенки йоркширского терьера. | Кресло у руководителя по статистике в 10 раз лучше обычного работника | Обратите внимание - женские журналы: для вас | van26 сентября 2008 23:39
Рекомендуем темы для siemens cx75 и многое другое
искусственная трава для стадионов, промышленные полимерные полы статьи
Birthday Gifts