Трехмерная графика — область компьютерной графики, занимающаяся в основном трехмерной визуализацией геометрических данных, позволяющая представить любой объект или поверхность в трехмерной технике.
Геометрию трехмерных объектов можно представить несколькими способами:
сетка полигонов — объект строится из плоских полигонов (обычно треугольников или четырехугольников), имеющих общие вершины и ребра. Таким образом можно создавать простые тела или — если сетка достаточно плотная — можно хорошо аппроксимировать сложные объекты.
воксели — объект строится из элементарных кубов (трехмерных пикселей). Этот вид представления особенно популярен в медицинской диагностике, где получают ряд поперечных сечений (растровых изображений) тела пациента и на их основе создают трехмерные модели.
математическое описание - объекты задаются уравнениями. Это могут быть сферы, плоскости и особо полезные и часто используемые параметрические поверхности (заплатки поверхности), например, заплатки Безье, Эрмита или NURBS. Есть программы, которые основывают свое функционирование в основном именно на таком способе моделирования; POV-Ray — один из них.
Трехмерные данные могут быть получены из реального мира, в том числе с помощью вышеупомянутых компьютерных томографов, трехмерных сканеров, спутниковых снимков (топография местности) и стереоскопических изображений. Компьютерная анимация также использует технику захвата движений, заключающуюся в записи движения человека — датчики положения размещаются в ключевых точках тела: на руках, ногах, голове, шее. Перенос записанных таким образом движений на искусственных персонажей придает их движениям естественность, которую трудно получить классическими методами анимации.
Трехмерные объекты также могут быть созданы людьми в процессе моделирования.
Большое значение имеют также компьютерные методики, автоматически моделирующие сложные эффекты (дым, огонь, снег, дождь) и объекты (облака, горы, деревья).
Трехмерная графика создается с помощью матрицы и их преобразования. Благодаря матрицам можно быстро выполнять элементарные преобразования вершин трехмерных моделей, такие как поворот, масштабирование и перемещение.
Визуализация
Поскольку сегодня все компьютерные устройства отображают двухмерные изображения, трехмерная графика напрямую связана с начертательной геометрией. В основном в инженерных приложениях (САПР) трехмерные сцены представляются в ортогональной проекции, а в других приложениях — в перспективной проекции.
Визуальный эффект перспективной проекции (ракурс) очень похож на эффекты, наблюдаемые в фотографии и в зрительной системе человека. По аналогии с фотоаппаратом (или видеокамерой) в 3D-графике существует понятие виртуальной камеры, создающей «фотографию» существующей в памяти компьютера сцены. Виртуальная камера характеризуется следующими параметрами: расположением, направлением, в котором она направлена, и фокусным расстоянием — они отражены в математической модели камеры.
Трехмерные изображения создаются в основном в растровой технике, в векторном виде представлены только контуры, эскизы и т.п.
Основной проблемой в обоих случаях является определение видимых поверхностей, т.е. выделение тех объектов (или их частей), которые видны в данной проекции. Это делается с помощью Z-буфера, сортировки по глубине, трассировки лучей, например.
Кроме того, мы обычно наблюдаем только небольшую часть сцены, и кроме того, сцена может состоять из большого количества объектов (до сотен миллионов), поэтому не менее важно определить, какие объекты можно увидеть для обработки. только те данные, которые действительно необходимы.
Реализм
Реализм компьютерных изображений очень важен для большинства приложений. Для его получения моделируется освещение: задаются источники света, задаются цвет и текстура поверхностей трехмерных объектов, тени, отбрасываемые объектами, зеркальные отражения, преломление, светорассеяние и т. д.
Методы, которые обеспечивают очень точное представление трехмерных сцен, также очень затратны в вычислительном отношении (например, трассировка лучей, энергетический метод). В свою очередь, в компьютерных играх с успехом используются быстрые, приближенные способы заштриховки объектов, создания теней, зеркальных отражений. Очень популярный метод достижения реализма в сцене — вычисление освещения для каждого пикселя. Это вычислительно затратная операция, но благодаря аппаратной поддержке (пиксельный шейдер) можно получить анимацию в реальном времени.
В случае с анимацией также важно, чтобы движение объектов было максимально приближено к поведению объектов в реальном мире.