вернуться в оглавление предыдущая глава предыдущий параграф следующий параграф следующая глава


Визуализация данных в науке и технике


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

  1. Визуализация информации.
  2. Моделирование процессов и явлений.
  3. Проектирование технических объектов.
  4. Организация пользовательского интерфеса.

Визуализация информации

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

1D-визуализация 2D-визуализация 3D-визуализация
гистограмма
секторная диаграмма
ломанная кривая
точечная диаграмма
векторная диаграмма
полутоновое изображение
топографическая карта
карта уровней
поверхность
векторная диаграмма
карта объёма

Многие программы для финансовых, научных, технических расчётов используют эти и некоторые другие способы визуализации данных. Визуальное представление информации является прекрасным инструментом при проведении научных исследований, наглядным и веским аргументом в научных статьях и дискуссиях.

Моделирование процессов и явлений

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

Проектирование технических объектов

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

Организация пользовательского интерфеса

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

Всё это, говорит о том, что в самой операционной системе должны быть уже реализованы достаточно большое количество функций для визуализации элементов управления. Например, операционная система Windows предоставляет разработчикам GDI (Graphics Device Interface). Как показывает практика для некоторых приложений возможностей, предоставляемых системной API, вполне достаточно для визуализации обрабатываемых данных (построения простейших графиков, представления моделируемых объектов и явлений). Но такие недостатаки, как низкая скорость отображения, отсутствие поддержки трехмерной графики не способствуют ее использованию для визуализации научных данных и компьютерного моделирования. В некоторых научных и технических программах со сложным графическим выводом требуются функции для более быстрой, мощной и гибкой визуализации вычисленных данных, моделируемых явлений, проектируемых объектов.

Технологии компьютерной графики

В современных научных и технических приложениях сложный графическая вызуализация реализуется с использованием библиотеки OpenGL, которая стала стандартом de facto в области трёхмерной визуализации. Библиотека OpenGL представляет собой высокоэффективный программный интерфейс к графическому аппаратному обеспечению. Наибольшую призводительность эта библиотека позволяет достичь в аппаратных системах работающих на основе современных графических ускорителей (аппаратное обеспечение, освобождающее процессор и выполняющее вычисления, необходимые для визуализации).

Архитектура и алгоритмы были библиотеки разработаны в 1992 году специалистами фирмы Silicon Graphics, Inc. (SGI) для собственного аппаратного обеспечения графических рабочих станций Iris. Через несколько лет библиотека была портирована на многие аппаратно-программные платформы (в том числе Intel+Windows) и сегодня является надёжной многоплатформенной библиотекой.

Библиотека OpenGL является бесплатно распространяемой, что является ее несомненным достоинством и причиной столь широкого использования.

OpenGL является не объектно-ориентированной, а процедурной библиотекой (около сотни комманд и функций), написанная на языке С. С одной стороны - это недостаток (компьютерная графика - благодатная область использования объектно-ориентированного программирования), но зато работать с OpenGL могут программисты работающие на C++, Delphi, Fortran и даже Java и Python.

Совместно с OpenGL обычно используется несколько вспомогательных библиотек, которые помогают наcтроить работу библиотеки в данной среде или выполнить более сложные, комплексные функции визуализации, которые реализуются посредством примитивных функций OpenGL. Кроме того существует большое количество графических библиотек специализированного назначения, которые используют библиотеку OpenGL в качестве низкоуровневого базиса, своеобразного ассемблера, на основе которого строятся сложные функции графического вывода (OpenInventor, vtk, IFL и многие другие). С сообществом пользователей OpenGL можно познакомиться на сайте www.opengl.org

Фирма Microsoft тоже разработала и предлагает использовать для подобных целей мультимедийную библиотеку DirectX. Эта библиотека широко используется в игровых и мультимедийных приложениях, а в научных и технических приложениях распространения не получила. Причина заключатся, скорее всего в том, что DirectX работает только под Windows.