|
Форум » 3D моделирование » 3DS Max » Основы 3D графики (в краце) |
Основы 3D графики |
black--general › Вторник
› 02.11.2010
› 22:00
› Сообщение # 1
3D графика
Трёхмерная графика (3D, 3 Dimensions, 3 измерения) — раздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), призванных обеспечить пространственно-временную непрерывность получаемых изображений. Чаще всего применяется для создания изображений в архитектурной визуализации, кинематографе, телевидении, компьютерных играх, печатной продукции, а также в науке и промышленности. Трёхмерное изображение отличается от плоского построением геометрической проекции трёхмерной модели сцены на экране компьютера с помощью специализированных программ. При этом модель может как соответствовать объектам из реального мира (автомобили, здания, ураган, астероид), так и быть полностью абстрактной Для получения трёхмерного изображения требуются следующие шаги: ♦ постобработка - все то, что происходит после основных действий по построению изображения (при создании эффектов постобработки используется готовое растровое изображение).
Сцена (виртуальное пространство моделирования) включает в себя несколько категорий объектов: ♦ Геометрия (построенная с помощью различных техник модель, например здание) ♦ Материалы (информация о визуальных свойствах модели, например цвет стен и отражающая/преломляющая способность окон) ♦ Источники света (настройки направления, мощности, спектра освещения) ♦ Виртуальные камеры (выбор точки и угла построения проекции) ♦ Силы и воздействия (настройки динамических искажений объектов, применяется в основном в анимации) Дополнительные эффекты (объекты, имитирующие атмосферные явления: свет в тумане, облака, пламя и пр.) Задача трёхмерного моделирования — описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению.
На этом этапе математическая (векторная) пространственная модель превращается в плоскую (растровую) картинку. Если требуется создать фильм, то рендерится последовательность таких картинок — кадров. Как структура данных, изображение на экране представлено матрицей точек, где каждая точка определена по крайней мере тремя числами: интенсивностью красного, синего и зелёного цвета. Таким образом рендеринг преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности. Самый простой вид рендеринга — это построить контуры моделей на экране компьютера с помощью проекции. Обычно этого недостаточно и нужно создать иллюзию материалов, из которых изготовлены объекты, а также рассчитать искажения этих объектов за счёт прозрачных сред (например, жидкости в стакане). ![]() Существует несколько технологий рендеринга, часто комбинируемых вместе. Например: ♦ Z-буфер (используется в OpenGL и DirectX); ♦ Ray casting («бросание луча») — расчёт цвета каждой точки картинки построением луча из точки зрения наблюдателя через воображаемое отверстие в экране на месте этого пиксела «в сцену» до пересечения с первой поверхностью. Цвет пиксела будет таким же, как цвет этой поверхности (иногда с учётом освещения и т. д.); ♦ Ray tracing (рейтрейсинг) — то же, что и Ray casting, но цвет пиксела уточняется за счёт построения дополнительных лучей (отражённых, преломлённых и т. д.) от точки пересечения луча взгляда. Несмотря на название, применяется только обратная трассировка лучей (то есть как раз от наблюдателя к источнику света), прямая крайне неэффективна и потребляет слишком много ресурсов для получения качественной картинки; ♦ глобальное освещение (global illumination) — расчёт взаимодействия поверхностей и сред в видимом спектре излучения с помощью интегральных уравнений. Наиболее популярные системы рендеринга Самые передовые достижения и идеи трёхмерной графики (и компьютерной графики вообще) докладываются и обсуждаются на ежегодном симпозиуме SIGGRAPH, традиционно проводимом в США Технологии рендеринга
Global illumination (Глобальное освещение) - ряд алгоритмов, используемых в 3D-графике, который предназначен для добавления более реалистичного освещения в трёхмерные сцены. Такие алгоритмы учитывают не только свет, который поступает непосредственно от источника света (прямое освещение, англ. direct illumination), но и такие случаи, в которых лучи света от одного и того же источника, отражаются на других поверхностях сцены (непрямая освещенность). Теоретически отражение, преломление, тень — примеры глобального освещения, потому что, для их имитации необходимо учитывать влияние одного объекта на другие (в отличие от случая когда на объект падает прямой свет). На практике, однако, только моделирование диффузного отражения или каустики называется глобальным освещением. Изображения полученные в результате применения алгоритмов глобального освещения часто кажутся более фотореалистичными, чем те, в процессе рендеринга которых применялись алгоритмы только прямого освещения, но для просчета глобального освещения требуется гораздо больше времени.
Ray casting — метод рендеринга в компьютерной графике, при котором сцена строится на основе замеров пересечения лучей с визуализируемой поверхностью. Этот термин впервые использовался в компьютерной графике в 1982 году в публикации Скотта Рота (англ. Scott Roth), который применил его для описания метода рендеринга CSG-моделей. Рейкастинг не является синонимом к рейтрейсингу (трассировке лучей), но он может быть представлен как сокращённая и существенно более быстрая версия алгоритма трассировки лучей. Оба алгоритма используются в компьютерной графике для рендеринга трёхмерных сцен на двухмерный экран с помощью проекционных лучей, которые проектируются от глаз обозревателя к источнику света. Метод бросания лучей не вычисляет новые тангенсы лучей света, которые возникнут после того, когда луч, который проектируется от глаза к источнику света, пересечётся с поверхностью. Эта особенность делает невозможным точный рендеринг отражений, преломлений и естественной проекции теней с помощью рейкастинга. Однако все эти особенности могут быть добавлены с помощью «фальшивых» (аппроксимационных) методик, например, через использование текстурных карт или другие методы. Высокая скорость вычисления сделала рейкастинг удобным методом рендеринга в ранних компьютерных играх с трёхмерной графикой реального времени. В реальной природе источник света испускает луч света, который, «путешествуя» по пространству, в конечном счёте «натыкается» на какую-либо преграду, которая перерывает распространение этого светового луча. Луч света можно представить в виде потока фотонов, который движется вдоль вектора луча. В какой-либо точке пути с лучом света может случиться любая комбинация трёх вещей: поглощение, отражение (рефлекция) и преломление (рефракция). Поверхность может отразить весь световой луч или только его часть в одном или нескольких направлениях. Поверхность может также поглотить часть светового луча, что приводит к потере интенсивности отраженного и/или преломлённого луча. Если поверхность имеет какие-либо свойства прозрачности, то она преломляет часть светового луча внутри себя и изменяет его направление распространения, поглощая некоторый (или весь) спектр луча (и, возможно, изменяя цвет). Суммарная интенсивность светового луча, которая была «потеряна» вследствие поглощения, преломления и отражения, должна быть в точности равной исходящей (начальной) интенсивности этого луча. Поверхность не может, например, отразить 66% входящего светового луча, и преломить 50%, так как сумма этих порций будет равной 116%, что больше 100%. Отсюда истекает, что отраженные и/или преломлённые лучи должны «стыкаться» с другими поверхностями, где их поглощающие, отражающие и преломляющие способности снова вычисляются, основываясь на результатах вычислений входящих лучей. Некоторые из лучей, сгенерированных источником света, распространяются по пространству и, в конечном счете, попадают на область просмотра (глаз человека, объектив фото- или видеокамеры и т.д.). Попытка симулировать физический процесс распространения света путём трассировки световых лучей, используя компьютер, является чрезмерно расточительным, так как только незначительная доля лучей, сгенерированных источником света, попадает на область просмотра. Первый алгоритм рейкастинга (не рейтрейсинга), используемый для рендеринга, был представлен Артуром Аппелем (англ. Arthur Appel) в 1968 году. В основе рейкастинга стои́т идея испускать лучи из «глаз» наблюдателя, один луч на пиксель, и находить самый близкий объект, который блокирует путь распространения этого луча. Используя свойства материала и эффект света в сцене, алгоритм рейкастинга может определить затенение данного объекта. Предположение в упрощении основано на том, что если поверхность размещена перед светом, то свет достигнет поверхности и не будет блокирован или находится в тени. Затенение поверхности вычисляется, используя алгоритмы затенения традиционной компьютерной трёхмерной графики. Одним из преимуществ рейкастинга является способность легко обрабатывать неплоские поверхности и сплошные тела вроде сферы или конуса. Если математическая поверхность может быть пересечена лучом, то она может быть отрендерена, используя рейкастинг. Сложные объекты могут быть созданы с использованием методов моделирования сплошных тел и легко отрендерены. Рейкастинг для создания компьютерной графики впервые был применён учеными из Mathematical Applications Group, Inc. из Элмсфорда, Нью-Йорк.
Ray tracing — технология построения изображения трёхмерных моделей в компьютерных программах, при которых отслеживается обратная траектория распространения луча (от экрана к источнику). Достоинства: Недостатки: Серьёзным недостатком метода обратного трассирования является производительность. Метод растеризации и сканирования строк использует когерентность данных, чтобы распределить вычисления между пикселями. В то время как метод трассирования лучей каждый раз начинает процесс определения цвета пикселя заново, рассматривая каждый луч наблюдения в отдельности. Впрочем, это разделение влечёт появление некоторых других преимуществ, таких как возможность трассировать больше лучей, чем предполагалось для устранения контурных неровностей в определённых местах модели. Также это регулирует отражение лучей и эффекты преломления, и в целом — степень фотореалистичности изображения.
Z-буферизация — способ учёта удалённости элемента изображения. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если реализуется аппаратно. Программно же существуют другие методы, способные конкурировать с ним: Z-сортировка («алгоритм художника») и двоичное разбиение пространства (BSP), но они также имеют свои достоинства и недостатки. Основной недостаток Z-буферизации состоит в потреблении большого объёма памяти: в работе используется так называемый буфер глубины или Z-буфер. Z-буфер представляет собой двумерный массив, каждый элемент которого соответствует пикселу на экране. Когда видеокарта отрисовывает пиксел, его удалённость просчитывается и записывается в ячейку Z-буфера. Если пикселы двух рисуемых объектов перекрываются, то их значения глубины сравниваются, и рисуется тот, который ближе, а его значение удалённости сохраняется в буфер. Получаемое при этом графическое изображение носит название Z-depth карта. Разрядность буфера глубины оказывает сильное влияние на качество отрисовки: использование 16-битного буфера может привести к геометрическим искажениям, например, эффекту «борьбы», если два объекта находятся близко друг к другу. 24, 32-разрядные буферы хорошо справляются со своей задачей. 8-битные почти никогда не используются из-за низкой точности. Обычно изобретателем Z-буфера считают Эдвина Катмулла, ныне президента компании Pixar, хотя эту идею описал ещё Вольфганг Штрассер в своей диссертации (1974). Постобработка
Программное обеспечение
Программные пакеты, позволяющие создавать трёхмерную графику, то есть моделировать объекты виртуальной реальности и создавать на основе этих моделей изображения, очень разнообразны. Последние годы устойчивыми лидерами в этой области являются коммерческие продукты: такие как Autodesk 3ds Max, Maya, Newtek Lightwave, SoftImage XSI и сравнительно новые Rhinoceros 3D, Cinema 4D или ZBrush. Кроме того, существуют и открытые продукты, распространяемые свободно, например, пакет Blender (позволяет и производство моделей, и последующий рендеринг), K-3D и Wings3D (только создание моделей с возможностью последующего использования их другими программами). Конечно же нельзя не отметить вклад игровой индустрии в эволюции качества трёхмерной графики. Такие компании, как Crytek Company (CryEngine), Epic Games (UnrealEngine), ID Software (ID Tech), создали мощные средства для моделирования фотореалистичного изображения, что сильно повлияло как на игровую индустрию и индустрию кино, так и на более серьезные отрасли.
3ds Max — полнофункциональная профессиональная программная система для работы с трёхмерной графикой, разработанная компанией Autodesk. Работает в операционных системах Microsoft Windows и Windows NT (как в 32‑битных, так и в 64‑битных). Первая версия пакета под названием 3D Studio DOS была выпущена в 1990 году. Разработками пакета занималась независимая студия Yost Group, созданная программистом Гари Йостом; Autodesk на первых порах занимался только изданием пакета. Существуют сведения, что Гари Йост покинул прежнее место работы после переговоров с Эриком Лайонсом (Eric Lyons), в то время директором по новым проектам Autodesk. Первые четыре релиза носили наименование 3D Studio DOS (1990-1994 годы). Затем пакет был переписан заново под Windows NT и переименован в 3D Studio MAX (1996-1999 годы). Нумерация версий началась заново. В 2000-2004 годах пакет выпускается под маркой Discreet 3dsmax, а с 2005 года - Autodesk 3ds MAX. Актуальная версия носит название Autodesk 3ds MAX 2010 (индекс 12.0). В последние годы Autodesk по экономическим соображениям выпускает новые релизы пакета не реже раза в год. 3ds Max располагает обширными средствами по созданию разнообразных по форме и сложности трёхмерных компьютерных моделей реальных или фантастических объектов окружающего мира с использованием разнообразных техник и механизмов, включающих следующие: Методы моделирования могут сочетаться друг с другом. Моделирование на основе стандартных объектов, как правило, является основным методом моделирования и служит отправной точкой для создания объектов сложной структуры, что связано с использованием примитивов в сочетании друг с другом как элементарных частей составных объектов. В 3ds Max реализована возможность создания нескольких основных источников частиц. Начиная с 8 версии имеется 6 основных источников частиц (не включая Particle Flow), демонстрирующих различное поведение. Традиционными источниками частиц в 3ds Max являются Spray (Брызги), Snow (Снег), Blizzard (Метель), PArray (Массив частиц), PCloud (Облако частиц) и Super Sprays (Супербрызги). 3ds Max также включает механизм расчёта физики reactor, изначально разработанный Havok. Reactor позволяет моделировать поведение твёрдых тел, мягких тел, ткани с учётом силы тяжести и других воздействий. Так же как и в других программах имитации динамики в reactor’е используются упрощённые выпуклые оболочки объектов, которые могут быть настроены на использование всех вершин объекта, ценою времени обработки. Однако, полноценного модуля динамики и симуляции в 3dsmax нет. Тем не менее, это компенсируется большим количеством сторонних разработок. Начиная с версии 8, в среду встроены модули Cloth и Hair&Fur. Существует множество разных возможностей по обработке изображения после его рендеринга, такие как blur, edge detection, sharpen, noise, smooth, emboss и др. В применении к 3D рендерингу в реальном времени это делается так - вся сцена рендерится в специальную область, render target, и после основного рендеринга это изображение дополнительно обрабатывается при помощи пиксельных шейдеров и только потом выводится на экран. Из эффектов постобработки в играх чаще всего используют Bloom, Motion Blur, Depth Of Field. Существует и множество других постэффектов: noise, flare, distortion, sepia и др.
Blender — пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. Особенностями пакета являются малый размер, высокая скорость рендеринга, наличие версий для множества операционных систем — FreeBSD, GNU/Linux, Mac OS X, SGI Irix 6.5, Sun Solaris 2.8 (SPARC), Microsoft Windows, SkyOS, MorphOS и Pocket PC. Пакет имеет такие функции, как динамика твёрдых тел, жидкостей и мягких тел, систему горячих клавиш, большое количество легко доступных расширений, написанных на языке Python. Программа является свободным программным обеспечением и распространяется под лицензией GNU GPL. Blender был разработан как рабочий инструмент голландской анимационной студией NeoGeo (не имеет отношения к игровой консоли Neo-Geo). В июне 1998 года автор Blender’а, Тон Розендаль (Ton Roosendaal), основал компанию Not a Number (NaN) с целью дальнейшего развития и сопровождения Blender. Программа распространялась по принципу shareware. В 2002 году компания NaN обанкротилась. Усилиями Тона Розендаля кредиторы соглашаются на изменение лицензии распространения Blender в пользу GNU GPL с условием единовременной выплаты €100000. 18 июля 2002 года началась программа по сбору спонсорских пожертвований на покрытие необходимой суммы. Уже 7 сентября 2002 года было объявлено о том, что необходимая сумма набрана, и о планах перевести в ближайшее время исходный код и сам Blender под лицензию GPL. 13 октября 2002 года компания Blender Foundation представила лицензированный под GNU GPL продукт. В настоящее время Blender является проектом с открытым исходным кодом и развивается при активной поддержке Blender Foundation. Характерной особенностью пакета Blender является его небольшой размер. Установленный пакет занимает около 10 МБ. В базовую поставку не входят развёрнутая документация и большое количество демонстрационных сцен. Число пользователей Blender выросло до 250000 человек по всему миру, и поддержка доступна практически в любой точке планеты.
CINEMA 4D фирмы MAXON является пакетом для создания трёхмерной графики и анимации. CINEMA 4D является универсальной комплексной программой для создания и редактирования трёхмерных эффектов и объектов. Позволяет рендерить объекты по методу Гуро. Также программа обеспечивает поддержку анимации и высококачественного рендеринга. Помимо основной программы, которая содержит в себе основные инструменты для моделирования, текстурирования, анимации и рендера, существуют модули, которые позволяют пользователю получить более специализированные инструменты и функции программы.
CryEngine 2 — технология, созданная немецкой компанией Crytek. На момент своего выхода является самым технологически продвинутой и фотореалистичной средой моделирования по сравнению с конкурентами. Среда моделирования CryEngine 2 предназначена для создания трёхмерных открытых и закрытых локаций, используя интерфейс программирования приложений DirectX 9-й или 10-й версии. В CryEngine 2 присутствуют и усовершенствованы все технологии предшественника, CryEngine, а также присутствует много новых и инновационных графических технологий. CryEngine 2 — полнофункциональный инструментарий для разработки 3D приложений; он включает в себя, помимо графического движка, систему анимации персонажей, физический движок CryPhysics, звуковой движок, искусственный интеллект, редактор уровней Sandbox 2, а также инструмент PolyBump 2. Все компоненты движка являются собственными разработками Crytek. CryEngine 2 поддерживает и активно использует многопоточность в многоядерных процессорах и процессорах, использующих технологию многопоточности (например, технология HyperThreading). Особенности технологии CryEngine 2 Динамическое освещение и затенение в реальном времени (Real Time Lighting and Dynamic Soft Shadows) Рендерер CryEngine 2 использует естественно выглядящие источники освещения и создаёт мягкие тени, которые динамически реагируют на движения источников света и преграды между светом и затеняемой поверхностью. Тени являются высокого разрешения, правильными в перспективе, объёмные и с мягкими краями. Технология затуманивания (Volumetric, Layer and View Distance Fogging) Технология Terrain 2.5D и Окружающие карты преград (Terrain 2.5D Ambient Occlusion Maps) Графический движок CryEngine 2 первым в мире задействовал технологию Screen Space Ambient Occlusion, которая является усовершенствованным вариантом Ambient occlusion для рендеринга в реальном времени. Данная технология на пиксельном уровне аппроксимирует количество окружающего (заполняющего) света, который падает на статический или динамический объект. Аппроксимация зависит от количества окружающих преград, созданных листвой и другими объектами. Карты нормалей и параллакс-маппинг (Normal Maps and Parallax Occlusion Maps) Карты нормалей (Normal Maps) используются, чтобы уменьшить количество полигонов на деталях объектов. Используется алгоритм сжатия текстур 3DC/BC5. CryEngine 2 является первым в мире коммерческим графическим движком, который использует parallax occlusion mapping — продвинутый вариант parallax mapping. Благодаря ему поверхностные текстуры имеют множество деталей, которые нанесены без использования полигонов. Карты окружения реального времени (Real Time Ambient Maps) Используется предпросчитывание количества окружающего (заполняющего) света для последующего применения результата к закрытым локациям. Этот метод используется для увеличения качества освещения при применении попиксельного освещения и затенения в реальном времени. Это значит, что данные о яркости и цвете световой позиции будут динамически добавлены для заполнения световой интенсивности, применённой для освещения поверхностей в закрытых пространствах. Подповерхностное рассеивание (Subsurface Scattering) Подповерхностное рассеивание моделирует диффузию (распространение) и дифракцию света, прошедшего через прозрачные объекты, такие как лёд и нефрит. Также может использоваться для создание естественно выглядящей кожи и растительности. Адаптация глаз и Освещение в расширенном динамическом диапазоне (Eye Adaptation & High Dynamic Range (HDR) Lighting) Световые лучи и волны (Light Beams & Shafts) Технология световых лучей и волн (гребней, балок) используется для создания визуально ошеломляющих световых и теневых эффектов, которые возникают при пересечении светового потока с телом или высоко детализированной геометрией. Данная технология отвечает за генерацию эффектов «godray» под водой. Расширенная шейдерная технология (Advanced Shader Technology) Система скриптов комбинирует использование текстур и математических функций разными способами для создания оригинальных эффектов, таких как грязь, мокрота, замороженность определённых поверхностей, эффект невидимости. Данные графические эффекты могут быть использованы как отдельно, так и в комбинации с более базовыми шейдерами, отвечающими за металлический блеск и/или прозрачность поверхностей, а также за другие эффекты. Поддерживаются по-пиксельное освещение в реальном времени, смазанные отражения (англ. bumpy reflections), преломление света (англ. refractions), объёмные эффекты жара (англ. volumetric glow effects), анимированные текстуры, прозрачные компьютерные дисплеи, окна, пулевые входные и выходные отверстия. Включено множество оригинальных шейдеров, которые способны полностью раскрыть все преимущества от использования унифицированной шейдерной архитектуры, которая присутствует только в API DirectX 10. Высококачественная технология трёхмерного океана (High Quality 3D Ocean Technology) Размытость изображения при движении и глубина резкости (Motion Blur & Depth of Field) Особенность управления уровнем детализации ландшафта (Terrain LOD Management Feature) Технология управления уровнем детализации L
Сообщение отредактировал black-general - Вторник, 02.11.2010, 22:51
АРМА - ВИКИПЕДИЯ
Modelling http://www.armatechsquad.com/ArmA2Class/ http://community.bistudio.com/wiki/Main_Page http://community.bistudio.com/wiki/Category:ArmA_2:_Editing 1. Вы сейчас в интернете. 2. Вы на сайте http://arma.at.ua 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. |
black--general › Вторник
› 02.11.2010
› 22:16
› Сообщение # 2
Maya — редактор трёхмерной графики. В настоящее время стала стандартом 3D графики в кино и телевидении. Первоначально разработана для ОС Irix (платформа SGI), затем была портирована под ОС GNU/Linux, Microsoft Windows и Mac OS. В настоящее время существует как для 32, так и для 64-битных систем. Maya названа в честь Санскритского слова, которое означает иллюзия. Maya стала результатом совмещения трех программных продуктов: Wavefront The Advanced Visualizer (Калифорния, США), Thomson Digital Image (TDI) Explore (Франция) и Alias Power Animator (Торонто, Канада). В 1993 Wavefront купила TDI, затем в 1995 компания Silicon Graphics Incorporated (SGI) купила обе компании Alias и Wavefront. Объединенная компания стала называться Alias|Wavefront. Позднее Alias|Wavefront была переименована в Alias. В 2003 году Alias была продана SGI частной инвестиционной фирме Accel-KKR. В октябре 2005 Alias была снова перепродана, на сей раз компании Autodesk. 10 января 2006 Autodesk закончил слияние и теперь Alias Maya известна как Autodesk Maya. На выставке SIGGRAPH 2009 компания Autodesk представила новую версию своего 3D-редактора Autodesk Maya 2010. Начиная с этого релиза, разработчики отказались от разделения программы на Maya Complete и Maya Unlimited – теперь предлагается одно решение Maya 2010. Maya 2010 содержит все возможности Maya Unlimited 2009 и Maya Complete 2009, включая Maya Nucleus Unified Simulation Framework, Maya nCloth, Maya nParticles, Maya Fluid Effects, Maya Hair, Maya Fur. В новой версии представлена новая система композитинга Maya Composite, основанная на программе Autodesk Toxik, которая больше не будет доступна в виде отдельного приложения. Кроме этого, в Maya 2010 включена система Autodesk MatchMover, менеджер для составления заданий сетевой визуализации Autodesk Backburner, пять узлов визуализации для пакетного рендеринга средствами mental ray. Изначально Maya была разработана Alias Systems Corporation и выпущена для операционных систем Microsoft Windows, GNU/Linux, IRIX и Mac OS X. В сентябре 2007 года, была выпущена новая версия, получившая имя Maya 2008. Для платформы IRIX последней версией была 6.5, в связи с уменьшающейся популярностью ОС в последние годы. В октябре 2005 года компания Alias влилась в Autodesk. Представители компании в различных интервью подтвердили, что не будут сливать Maya и 3ds Max в один продукт. Важная особенность Maya — её открытость для сторонних разработчиков, которые могут преобразовать её в версию, которая более удовлетворяет требованиям больших студий, которые предпочитают писать код, специфичный для их нужд. Даже не взирая на присущую Maya мощь и гибкость, этой особенности достаточно для того, чтобы повлиять на выбор. В Maya встроен мощный интерпретируемый кросс-платформенный язык: Maya Embedded Language (MEL), очень похожий на Tcl. Это не просто скриптовый язык, это способ настроить основную функциональность Maya (большая часть окружения Maya и сопутствующих инструментов написана на нем). В частности, пользователь может записать свои действия как скрипт на MEL, из которого можно быстро сделать удобный макрос. Так аниматоры могут добавлять функциональность к Maya даже не владея языками C или C++, оставляя при необходимости такую возможность. Для написания расширений на языке C++ имеется подробно документированный C++ API. Так же для разработчиков теперь имеется возможность написания дополнений на языке Python. Язык MEL не привязан к платформе, поэтому код, написанный на нем, будет исполнятся в любой операционной системе. Файлы проектов, включая все данные о геометрии и анимации, сохраняются как последовательности операций MEL. Эти файлы могут быть сохранены в текстовом файле (.ma — Maya ASCII), который может быть отредактирован в любом текстовом редакторе. Это обеспечивает непревзойденный уровень гибкости при работе с внешними инструментами.
Lightwave 3D — редактор трёхмерной графики компании Newtek. Последние версии предназначены для работы в среде Microsoft Windows и Mac OS X, так же отлично работает в среде Linux. В 1988 году была создана программа Videoscape для 3D анимации и рендеринга. Так же была создана программа для 3D моделирования под названием Modeler. Была выпущена в составе системы редактирования видео Video Toaster. Первоначальное название "NewTek 3D Animation System for the Amiga". В 1990 году программный пакет переименовывается в Lightwave 3D (от названий двух, топовых для своего времени, программ 3D редактирования Intelligent Light и Wavefront. С 1994 года выпускается как отдельный продукт. Изначально работал на операционной системе Amiga, унаследовав от нее своеобразный интерфейс программы. Популярный и легкий в использовании продукт, широко применяемый в производстве видео и телепродукции. Lightwave содержит мощную систему полигонального моделирования, которая также создает основанные на полигонах поверхности подразделения (polygon-based subdivision), которым фирма Newtek дала имя "MetaNURBS" (несмотря на название, Lightwave не поддерживает NURBS-моделирование, MetaNURBS является торговой маркой, используемой Newtek'ом для своих поверхностей разбиения). Главной особенностью программы является разделение процесса моделирования и анимации-рендринга на два отдельно запускаемых приложения, что особенно удобно при использовании рабочих станций с двумя мониторами. Известно, что анимация крушения корабля в фильме "Титаник" была создана именно при помощи Lightwave 3D.
Rhinoceros (Rhino) это коммерческое программное обеспечение для трехмерного NURBS моделирования разработки Robert McNeel & Associates. Преимущественно используется в промышленном дизайне, архитектуре, корабельном проектировании, ювелирном и автомобильном дизайне, в CAD/CAM проектировании, быстром прототипировании, реверсивной разработке, а также в мультимедиа и графическом дизайне. Rhino специализируется на NURBS моделировании. В плагины разрабатываемые McNeel входят Flamingo (рейтрейс рендеринг), Penguin (нефотореалистичный рендеринг), Bongo (анимация), and Brazil (сложный рендеринг). Существует более 100 сторонних плагинов для Rhino. Как и во многих других программах моделирования, в Rhino есть свой язык скриптов основанный на Visual Basic, а SDK позволяет читать и записывать файлы напрямую. Растущая популярность Rhino основана на его разнородности, разнообразии функциональной применимости, быстрой обучаемости, относительно небольшой стоимости, и возможности импорта/экспорта почти 30 различных форматов, которые позволяют использовать Rhino как 'конвертер' в рабочем процессе.
Softimage XSI — полнофункциональный редактор трёхмерной графики, принадлежащий Autodesk, включающий в себя возможности 3D моделирования и компьютерной анимации. Это программное обеспечение преимущественно используется при создании кино, видеоигр, а также в рекламной индустрии для создания персонажей, объектов и окружения. Выпущенный в 2000 году как преемник Softimage|3D, Softimage|XSI разрабатывался компанией Softimage, Co., впоследствии ставшей дочерним предприятием Avid Technology. 23 октября 2008 года Autodesk приобрела у Avid торговую марку Softimage и активы 3D анимации примерно за 35 миллионов долларов, вследствие чего Softimage Co. перестала существовать как отдельная компания. В феврале 2009 Softimage|XSI в результате ребрендинга превратилась в Autodesk Softimage. Главные особенности:
Wings 3D — это бесплатная программа 3D-моделирования с открытым исходным кодом, на которую повлияли программы Nendo и Mirai от компании Izware. Программа получила название по названию технологии обработки полигонов, применённой в программе. Wings 3D доступна для многих платформ, включая Windows, Linux и Mac OS X. Программа использует окружение и язык программирования Erlang. Wings 3D может быть использована для создания и текстурирования моделей с количеством полигонов от низкого до среднего. Программа не поддерживает анимацию и имеет в своём составе только рендер OpenGL, хотя модели могут экспортироваться во внешние программы рендеринга, например POV-Ray и YafRay. Wings часто используется в комбинации с другими программами, которые являются более продвинутыми в отношении системы рендеринга и анимации, например Blender.
Zbrush — программа для трёхмерного моделирования, созданная компанией Pixologic. Отличительной особенностью данного ПО является имитация процесса «лепки» 3d-скульптуры, усиленного движком трёхмерного рендеринга в реальном времени, что существенно упрощает процедуру создания требуемого 3d-объекта. Каждая точка содержит информацию не только о своих координатах XY и значениях цвета, но также и глубине Z, ориентации и материале. Это значит, что вы не только можете "лепить" трёхмерный объект, но и "раскрасить" его, рисуя штрихами с глубиной. То есть вам не придётся рисовать тени и блики, чтобы они выглядели натурально — ZBrush это сделает автоматически. Также быстро работает со стандартными 3d объектами, используя кисти для модификации геометрии материалов и текстур. Позволяет добиться интерактивности при немыслимом количестве полигонов. Используя специальные методы, можно поднять детализацию до десятков (а то и сотен) миллионов полигонов. Также имеется множество подключаемых модулей (работа с текстурами, геометрией, множество новых кистей, быстрая интеграция с профессиональными пакетами 2d графики и многое другое). Основные понятия
Shader — это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки. Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности. В настоящее время шейдеры делятся на четыре типа: вершинные, геометрические, параллаксные и фрагментные (пиксельные). Вершинные шейдеры (Vertex Shader) Вершинный шейдер оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д. Геометрические шейдеры (Geometry Shader) Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того геометрический шейдер способен генерировать примитивы «на лету», не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia серии 8. Фрагментные (Пиксельные) шейдеры (Pixel Shader) Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксель, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения. Впервые использованные в системе RenderMan компании Pixar, шейдеры получали всё большее распространение со снижением цен на компьютеры. Основное преимущество от использования шейдеров — их гибкость, упрощающая и удешевляющая цикл разработки программы, и при том повышающая сложность и достоверность визуализируемых сцен. Шейдерные языки обычно содержат специальные типы данных, такие как цвет или нормаль. Поскольку компьютерная графика имеет множество сфер приложения, для удовлетворения различных потребностей рынка было создано большое количество шейдерных языков. Шейдерный язык OpenGL Шейдерный язык OpenGL носит название GLSL (The OpenGL Shading Language). GLSL основан на языке ANSI C. Большинство возможностей языка ANSI C сохранено, к ним добавлены векторные и матричные типы данных, часто применяющиеся при работе с трехмерной графикой. В контексте GLSL шейдером называется независимо компилируемая единица, написанная на этом языке. Программой называется набор откомпилированных шейдеров, связанных вместе. Шейдерный язык DirectX Низкоуровневый шейдерный язык DirectX (DirectX ASM) По синтаксису сходен с Ассемблером. Существует несколько версий, различающихся по набору команд, а также по требуемому оборудованию. Существует разделение на вершинные (vertex) и пиксельные (pixel) шейдеры. Вершинный шейдер Выполняет обработку геометрии — изменяет параметры вершины такие как позицию, текстурные координаты, цвет вершин. Также может выполнять вычисления освещения. Допустимое количество команд может достигать одной-двух сотен. Пример фрагмента кода: vs.2.0 Пиксельный шейдер Выполняет обработку цветовых данных, полученных при отрисовке треугольника. Оперирует с текстурами и цветом. Количество инструкций значительно ограничено, так, к примеру, в версии 1.4 оно не может быть больше 32. Пример фрагмента кода: ps.1.4 Высокоуровневый шейдерный язык DirectX (HLSL — High Level Shader Language) Является надстройкой над DirectX ASM. По синтаксису сходен с C, позволяет использовать структуры, процедуры и функции.
Полигон - единая величина в моделировании. Как известно, если три или более точек координат заданы в качестве вершин и соединены ребрами, то они формируют многоугольник (полигон), который может иметь цвет и текстуру. Соединение группы таких полигонов позволяет смоделировать практически любой объект. Недостаток полигонального моделирования состоит в том, что все объекты должны состоять из крошечных плоских поверхностей, а полигоны должны иметь очень малый размер, иначе края объекта будут иметь ограненный вид. Это означает, что если для объекта на сцене предполагается увеличение, его необходимо моделировать с большим количеством полигонов (плотностью) даже, несмотря на то, что большинство из них будут лишними при удалении от объекта.
Процедурные текстуры (Procedural Textures) - это текстуры, описываемые математическими формулами. Такие текстуры не занимают в видеопамяти места, они создаются пиксельным шейдером "на лету", каждый их элемент (тексель) получается в результате исполнения соответствующих команд шейдера. Наиболее часто встречающиеся процедурные текстуры: разные виды шума (например, fractal noise), дерево, вода, лава, дым, мрамор, огонь и т.п., то есть те, которые сравнительно просто можно описать математически. Процедурные текстуры также позволяют использовать анимированные текстуры при помощи всего лишь небольшой модификации математических формул. Например, облака, сделанные подобным образом, выглядят вполне прилично и в динамике и в статике. Преимущества процедурных текстур также включают в себя неограниченный уровень детализации каждой текстуры, пикселизации просто не будет, текстура как бы всегда генерируется под необходимый для ее отображения размер. Большой интерес представляет и анимированный Normal Mapping, с его помощью можно сделать волны на воде, без применения предпросчитанных анимированных текстур. Еще один плюс таких текстур в том, что чем больше их применяется в продукте, тем меньше работы для художников (правда, больше для программистов) над созданием обычных текстур.
Бампмаппинг - это техника симуляции неровностей (или моделирования микрорельефа, как больше нравится) на плоской поверхности без больших вычислительных затрат и изменения геометрии. Для каждого пикселя поверхности выполняется вычисление освещения, исходя из значений в специальной карте высот, называемой bumpmap. Это обычно 8-битная черно-белая текстура и значения цвета текстуры не накладываются как обычные текстуры, а используются для описания неровности поверхности. Цвет каждого текселя определяет высоту соответствующей точки рельефа, большие значения означают большую высоту над исходной поверхностью, а меньшие, соответственно, меньшую. Или наоборот. Степень освещенности точки зависит от угла падения лучей света. Чем меньше угол между нормалью и лучом света, тем больше освещенность точки поверхности. То есть, если взять ровную поверхность, то нормали в каждой ее точке будут одинаковыми и освещенность также будет одинаковой. А если поверхность неровная (собственно, практически все поверхности в реальности), то нормали в каждой точке будут разными. И освещенность разная, в одной точке она будет больше, в другой - меньше. Отсюда и принцип бампмаппинга - для моделирования неровностей для разных точек полигона задаются нормали к поверхности, которые учитываются при вычислении попиксельного освещения. В результате получается более натуральное изображение поверхности, бампмаппинг дает поверхности большую детализацию, такую, как неровности на кирпиче, поры на коже и т.п., без увеличения геометрической сложности модели, так как расчеты ведутся на пиксельном уровне. Причем, при изменении положения источника света освещение этих неровностей правильно изменяется. Конечно, вершинное освещение намного проще вычислительно, но слишком нереалистично оно выглядит, особенно при сравнительно малополигональной геометрии, интерполяция цвета для каждого пикселя не может воспроизвести значения, большие, чем рассчитанные значения для вершин. То есть, пиксели в середине треугольника не могут быть ярче, чем фрагменты возле вершины. Следовательно, области с резким изменением освещения, такие как блики и источники света, очень близко расположенные к поверхности, будут физически неправильно отображаться, и особенно это будет заметно в динамике. Конечно, частично проблема решаема увеличением геометрической сложности модели, ее разбиением на большее количество вершин и треугольников, но оптимальным вариантом будет попиксельное освещение. Сообщение отредактировал black-general - Вторник, 02.11.2010, 22:46
АРМА - ВИКИПЕДИЯ
Modelling http://www.armatechsquad.com/ArmA2Class/ http://community.bistudio.com/wiki/Main_Page http://community.bistudio.com/wiki/Category:ArmA_2:_Editing 1. Вы сейчас в интернете. 2. Вы на сайте http://arma.at.ua 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. |
почему Poser нету?
![]()
Умные люди никогда не обижаются-они просто сразу начинают планировать месть
Я, конечно, презираю отечество мое с головы до ног - но мне досадно, если иностранец разделяет со мной это чувство. -Александр Пушкин- Надо любить свою страну, как бы этому ни мешало государство. -Михаил Мамчич- |
black--general › Вторник
› 02.11.2010
› 22:42
› Сообщение # 4
Наложение карт смещения (Displacement Mapping) является методом добавления деталей к трехмерным объектам. В отличие от бампмаппинга и других попиксельных методов, когда картами высот правильно моделируется только освещенность точки, но не изменяется ее положение в пространстве, что дает лишь иллюзию увеличения сложности поверхности, карты смещения позволяют получить настоящие сложные 3D объекты из вершин и полигонов, без ограничений, присущих попиксельным методам. Этот метод изменяет положение вершин треугольников, сдвигая их по нормали на величину, исходя из значений в картах смещения. Карта смещения (displacement map) - это обычно черно-белая текстура, и значения в ней используются для определения высоты каждой точки поверхности объекта (значения могут храниться как 8-битные или 16-битные числа), схоже с bumpmap. Часто карты смещения используются (в этом случае они называются и картами высот) для создания земной поверхности с холмами и впадинами. Так как рельеф местности описывается двухмерной картой смещения, его относительно легко деформировать при необходимости, так как это потребует всего лишь модификации карты смещения и рендеринга на ее основе поверхности в следующем кадре. Большим преимуществом наложения карт смещения является не просто возможность добавления деталей к поверхности, а практически полное создание объекта. Берется низкополигональный объект, разбивается (тесселируется) на большее количество вершин и полигонов. Вершины, полученные в результате тесселяции, затем смещаются по нормали, исходя из значения, прочитанного в карте смещения. Количество треугольников, созданных при тесселяции, должно быть достаточно большим для того, чтобы передать все детали, задаваемые картой смещений. Иногда дополнительные треугольники создаются автоматически, используя N-патчи или другие методы. Карты смещения лучше использовать совместно с бампмаппингом для создания мелких деталей, где достаточно правильного попиксельного освещения. Наложение карт смещения впервые получило поддержку в DirectX 9.0. Это была первая версия данного API, которая поддержала технику Displacement Mapping. В DX9 поддерживается два типа наложения карт смещения, filtered и presampled. Первый метод был поддержан забытым уже видеочипом MATROX Parhelia, а второй - ATI RADEON 9700. Filtered метод отличается тем, что позволяет использовать мип-уровни для карт смещения и применять для них трилинейную фильтрацию. В таком методе мип-уровень карты смещения выбирается для каждой вершины на основе расстояния от вершины до камеры, то есть уровень детализации выбирается автоматически. Таким образом достигается почти равномерное разбиение сцены, когда треугольники имеют примерно одинаковый размер. Наложение карт смещения можно по существу считать методом сжатия геометрии, использование карт смещения снижает объем памяти, требуемый для определенной детализации 3D модели. Громоздкие геометрические данные замещаются простыми двухмерными текстурами смещения, обычно 8-битными или 16-битными. Это снижает требования к объему памяти и пропускной способности, необходимой для доставки геометрических данных к видеочипу, а эти ограничения являются одними из главных для сегодняшних систем. Или же, при равных требованиях к пропускной способности и объему памяти, наложение карт смещения позволяет использовать намного более сложные геометрически 3D модели. Применение моделей значительно меньшей сложности, когда вместо десятков или сотен тысяч треугольников используют единицы тысяч, позволяет еще и ускорить их анимацию. Или же улучшить, применив более сложные комплексные алгоритмы и техники, вроде имитации тканей (cloth simulation).
Нормалмаппинг - это улучшенная разновидность техники бампмаппинга, расширенная ее версия. Бампмаппинг был разработан Блинном (Blinn) еще в 1978 году, нормали поверхности при этом методе наложения рельефа изменяются на основе информации из карт высот (bump map). В то время как бампмаппинг всего лишь изменяет существующую нормаль для точек поверхности, нормалмаппинг полностью заменяет нормали при помощи выборки их значений из специально подготовленной карты нормалей (normal map). Эти карты обычно являются текстурами с сохраненными в них заранее просчитанными значениями нормалей, представленными в виде компонент цвета RGB (впрочем, есть и специальные форматы для карт нормалей, в том числе со сжатием), в отличие от 8-битных черно-белых карт высот в бампмаппинге. В общем, как и бампмаппинг, это тоже "дешевый" метод для добавления детализации к моделям сравнительно низкой геометрической сложности, без использования большего количества реальной геометрии, только более продвинутый. Одно из наиболее интересных применений техники - существенное увеличение детализации низкополигональных моделей при помощи карт нормалей, полученных обработкой такой же модели высокой геометрической сложности. Карты нормалей содержат более подробное описание поверхности, по сравнению с бампмаппингом и позволяют представить более сложные формы. Идеи по получению информации из высокодетализированных объектов были озвучены в середине 90-х годов прошлого века, но тогда речь шла об использовании для Displacement Mapping. Позднее, в 1998 году, были представлены идеи о перенесении деталей в виде карт нормалей от высокополигональных моделей в низкополигональные. Карты нормалей предоставляют более эффективный способ для хранения подробных данных о поверхностях, по сравнению с простым использованием большого количества полигонов. Единственное серьезное их ограничение в том, что они не очень хорошо подходят для крупных деталей, ведь нормалмаппинг на самом деле не добавляет полигонов и не изменяет форму объекта, он только создает видимость этого. Это всего лишь симуляция деталей, на основе расчета освещения на пиксельном уровне. На крайних полигонах объекта и больших углах наклона поверхности это очень хорошо заметно. Поэтому наиболее разумный способ применения нормалмаппинга состоит в том, чтобы сделать низкополигональную модель достаточно детализированной для того, чтобы сохранялась основная форма объекта, и использовать карты нормалей для добавления более мелких деталей. Карты нормалей обычно создаются на основе двух версий модели, низко- и высокополигональной. Низкополигональная модель состоит из минимума геометрии, основных форм объекта, а высокополигональная содержит все необходимое для максимальной детализации. Затем, при помощи специальных утилит они сравниваются друг с другом, разница рассчитывается и сохраняется в текстуре, называемой картой нормалей. При ее создании дополнительно можно использовать и bump map для очень мелких деталей, которые даже в высокополигональной модели не смоделировать (поры кожи, другие мелкие углубления). Карты нормалей изначально были представлены в виде обычных RGB текстур, где компоненты цвета R, G и B (от 0 до 1) интерпретируются как координаты X, Y и Z. Каждый тексель в карте нормалей представлен как нормаль точки поверхности. Карты нормалей могут быть двух видов: с координатами в model space (общей системе координат) или tangent space ("касательное пространство", локальная система координат треугольника). Чаще применяется второй вариант. Когда карты нормалей представлены в model space, то они должны иметь три компоненты, так как могут быть представлены все направления, а когда в локальной системе координат tangent space, то можно обойтись двумя компонентами, а третью получить в пиксельном шейдере.
Parallax mapping (параллакс-маппинг; также известен как offset mapping, per-pixel displacement mapping или virtual displacement mapping) — программная техника (методика) в трёхмерной компьютерной графике, усовершенствованный вариант техник bump mapping или normal mapping. Parallax mapping используется для процедурного создания трёхмерного описания текстурированной поверхности с использованием карт смещения (Displacement mapping) вместо непосредственного генерирования новой геометрии. Методику «Parallax mapping» условно можно назвать «2.5D», так как она позволяет добавлять трёхмерную сложность в текстуры, не создавая реальные трёхмерные графические структуры. Например, текстура каменной стены будет иметь визуальную объемность, хотя на самом деле геометрически она будет плоской. Parallax mapping полностью исполняется на графических процессорах видеокарты как пиксельный шейдер. Parallax mapping осуществляется смещением текстурных координат так, чтобы поверхность казалась объёмной. Главное отличие parallax mapping от displacement mapping в том, что в нём все расчеты попиксельные, а не повершинные. Идея метода состоит в том, чтобы возвращать текстурные координаты той точки, где видовой вектор пересекает поверхность. Это требует просчета лучей (ray tracing) для карты высот, но если она не имеет слишком сильно изменяющихся значений («гладкая» или «плавная»), то можно обойтись аппроксимацией без использования рейтрейсинга. Если же в parallax mapping используется рейтрейсинг, то такой вариант называется «Parallax occlusion mapping». Таким образом, parallax mapping хорош для поверхностей с плавно изменяющимися высотами, без просчета пересечений и больших значений смещения. Подобный простой алгоритм отличается от normal mapping всего тремя инструкциями пиксельного шейдера: две математические инструкции и одна дополнительная выборка из текстуры. После того, как вычислена новая текстурная координата, она используется дальше для чтения других текстурных слоев: базовой текстуры, карты нормалей и т. п. Такой метод parallax mapping на современных графических процессорах почти также эффективен, как обычное наложение текстур, а его результатом является более реалистичной отображение поверхности, по сравнению с простым normal mapping.
High Dynamic Range (HDR) в применении к 3D графике - это рендеринг в широком динамическом диапазоне. Суть HDR заключается в описании интенсивности и цвета реальными физическими величинами. Привычной моделью описания изображения является RGB, когда все цвета представлены в виде суммы основных цветов: красного, зеленого и синего, с разной интенсивностью в виде возможных целочисленных значений от 0 до 255 для каждого, закодированных восемью битами на цвет. Отношение максимальной интенсивности к минимальной, доступной для отображения конкретной моделью или устройством, называется динамическим диапазоном. Так, динамический диапазон модели RGB составляет 256:1 или 100:1 cd/m2 (два порядка). Эта модель описания цвета и интенсивности общепринято называется Low Dynamic Range (LDR). Возможных значений LDR для всех случаев явно недостаточно, человек способен видеть гораздо больший диапазон, особенно при малой интенсивности света, а модель RGB слишком ограничена в таких случаях (да и при больших интенсивностях тоже). Динамический диапазон зрения человека от 10-6 до 108 cd/m2, то есть 100000000000000:1 (14 порядков). Одновременно весь диапазон мы видеть не можем, но диапазон, видимый глазом в каждый момент времени, примерно равен 10000:1 (четырем порядкам). Зрение приспосабливается к значениям из другой части диапазона освещенности постепенно, при помощи так называемой адаптации, которую легко описать ситуацией с выключением света в комнате в темное время суток - сначала глаза видят очень мало, но со временем адаптируются к изменившимся условиям освещения и видят уже намного больше. То же самое случается и при обратной смене темной среды на светлую. Сами устройства отображения данных пока что серьезно улучшить нельзя, а отказаться от LDR при расчетах имеет смысл, можно использовать реальные физические величины интенсивности и цвета (или линейно пропорциональные), а на монитор выводить максимум того, что он сможет. Суть представления HDR в использовании значений интенсивности и цвета в реальных физических величинах или линейно пропорциональных и в том, чтобы использовать не целые числа, а числа с плавающей точкой с большой точностью (например, 16 или 32 бита). Это снимет ограничения модели RGB, а динамический диапазон изображения серьезно увеличится. Но затем любое HDR изображение можно вывести на любом средстве отображения (том же RGB мониторе), с максимально возможным качеством для него при помощи специальных алгоритмов tone mapping. HDR рендеринг позволяет изменять экспозицию уже после того, как мы отрендерили изображение. Дает возможность имитировать эффект адаптации человеческого зрения (перемещение из ярких открытых пространств в темные помещения и наоборот), позволяет выполнять физически правильное освещение, а также является унифицированным решением для применения эффектов постобработки (glare, flares, bloom, motion blur).
Tone mapping - это процесс преобразования диапазона яркостей HDR к LDR диапазону, отображаемому устройством вывода, например, монитором или принтером, так как вывод HDR изображений на них потребует преобразования динамического диапазона и цветового охвата модели HDR в соответствующий динамический диапазон LDR, чаще всего модель RGB. Ведь диапазон яркости, представленный в HDR, очень широк, это несколько порядков абсолютного динамического диапазона единовременно, в одной сцене. А диапазон, который можно воспроизвести на привычных устройствах вывода (мониторах, телевизорах), составляет лишь около двух порядков динамического диапазона. Преобразование из HDR в LDR и называется tone mapping, оно выполняется с потерями и имитирует свойства человеческого зрения. Такие алгоритмы принято называть операторами tone mapping. Операторы разделяют все значения яркости изображения на три разных типа: с темной, средней и яркой освещенностью. На основе оценки яркости средних тонов, корректируется общая освещенность, значения яркости пикселей сцены перераспределяются для того, чтобы войти в выходной диапазон, темные пиксели осветляются, а светлые затемняются. Затем, наиболее яркие пиксели изображения приводятся к диапазону устройства вывода или выходной модели представления. На следующей картинке изображено самое простое приведение HDR изображения к LDR диапазону, линейное преобразование, а к фрагменту в центре применен более сложный оператор tone mapping, работающий так, как было описано выше: Видно, что только с применением нелинейного tone mapping можно получить максимум деталей в изображении, а если приводить HDR к LDR линейно, то многие мелочи просто теряются. Единственно правильного алгоритма tone mapping нет, существует несколько операторов, дающих хорошие результаты в разных ситуациях. Вот наглядный пример двух разных операторов tone mapping:
Bloom - это один из кинематографических эффектов постобработки, при помощи которого наиболее яркие участки изображения делаются еще более яркими. Это эффект очень яркого света, проявляющийся в виде свечения вокруг ярких поверхностей, после применения bloom фильтра такие поверхности не просто получают дополнительную яркость, свет от них (ореол) частично воздействует и на более темные области, соседствующие с яркими поверхностями в кадре. Проще всего показать это на примере: В 3D графике Bloom фильтр делается при помощи дополнительной постобработки - смешивания смазанного фильтром blur кадра (всего кадра или отдельных ярких его областей, фильтр обычно применяется несколько раз) и исходного кадра. Один из наиболее часто применяемых в играх и других приложениях реального времени алгоритм постфильтра bloom: Как и другие виды постобработки, bloom лучше применять при рендеринге в широком динамическом диапазоне (HDR).
Смазывание в движении (motion blur) происходит при фото- и киносъемке из-за движения объектов в кадре в течение времени экспозиции кадра, в то время, когда затвор объектива открыт. Снятый камерой (фото, кино) кадр не показывает снимок, снятый мгновенно, с нулевой длительностью. Из-за технологических ограничений кадр показывает некоторый промежуток времени, за это время объекты в кадре могут совершить перемещение на определенное расстояние, и если так происходит, то все положения движущегося объекта за время открытого затвора объектива будут представлены на кадре в виде смазанного изображения по вектору движения. Так происходит, если объект перемещается относительно камеры или камера относительно объекта, и величина смазывания дает нам представление о величине скорости движения объекта. В трехмерной же анимации, в каждый конкретный момент времени (кадр) объекты расположены по определенным координатам в трехмерном пространстве, аналогично виртуальной камере с бесконечно быстрой выдержкой. В результате, смазывание, подобное получаемому камерой и человеческим глазом при взгляде на быстро движущиеся объекты, отсутствует. Это выглядит неестественно и нереалистично. Рассмотрим простой пример: несколько сфер вращаются вокруг некоей оси. Вот изображение того, как это движение будет выглядеть со смазыванием и без него: По изображению без смазывания нельзя даже сказать, движутся сферы или нет, в то время как motion blur дает четкое представление о скорости и направлении движения объектов. Кстати, отсутствие смазывания при движении служит и причиной того, почему движение в играх при 25-30 кадрах в секунду кажется дерганым, хотя кино и видео при этих же параметрах частоты кадров смотрится прекрасно. Для компенсации отсутствия смазывания в движении желательна или высокая частота кадров (60 кадров в секунду или выше) или использование методов дополнительной обработки изображения, для эмуляции эффекта motion blur. Это применяется и для улучшения плавности анимации и для эффекта фото- и кинореалистичности одновременно. Самый простой алгоритм motion blur для приложений реального времени заключается в использовании для рендеринга текущего кадра данных из предыдущих кадров анимации. Но есть и более эффективные и современные методы motion blur, которые не используют предыдущие кадры, а основываются на векторах движения объектов в кадре, также добавляя лишь еще один шаг постобработки к процессу рендеринга. Эффект смазывания может быть как полноэкранным (обычно делается постобработкой), так и для отдельных, наиболее быстро движущихся объектов.
Depth Of Field (глубина резкости) - это размывание объектов в зависимости от их положения относительно фокуса камеры. В компьютерной графике каждый объект отрендеренного изображения идеально четкий, так как линзы и оптика не имитируется при расчетах. Поэтому, для достижения фото- и кинореалистичности приходится применять специальные алгоритмы, чтобы сделать для компьютерной графики нечто похожее. Эти техники симулируют эффект разного фокуса для объектов, находящихся на разном расстоянии. Одним из распространенных методов при рендеринге в реальном времени является смешивание оригинального кадра и его смазанной версии (несколько проходов blur фильтра) на основе данных о глубине для пикселей изображения.
Уровень детализации (level of detail) в 3D приложениях - это метод снижения сложности рендеринга кадра, уменьшения общего количества полигонов, текстур и иных ресурсов в сцене, общее снижение её сложности. Простой пример: основная модель персонажа состоит из 10000 полигонов. В тех случаях, когда в обрабатываемой сцене он расположен близко к камере, важно, чтобы использовались все полигоны, но на очень большом расстоянии от камеры в итоговом изображении он будет занимать лишь несколько пикселей, и смысла в обработке всех 10000 полигонов нет никакого. Возможно, в этом случае будет достаточно сотни полигонов, а то и пары штук и специально подготовленной текстуры для примерно такого же отображения модели. Соответственно, на средних расстояниях имеет смысл использовать модель, состоящую из количества треугольников большего, чем у самой простой модели, и меньшего, чем у наиболее сложной. Метод LOD обычно используется при моделировании и рендеринге трехмерных сцен, с использованием нескольких уровней сложности (геометрической или какой-то иной) для объектов, пропорционально расстоянию от них до камеры. Метод часто используется разработчиками игр для снижения количества полигонов в сцене и для улучшения производительности. При близком расположении к камере используются модели с максимумом деталей (количество треугольников, размер текстур, сложность текстурирования), для максимально возможного качества картинки и наоборот, при удалении моделей от камеры используются модели с меньшим количеством треугольников - для увеличения скорости рендеринга. Изменение сложности, в частности, количества треугольников в модели, может происходить автоматически на основе одной 3D модели максимальной сложности, а может - на основе нескольких заранее подготовленных моделей с разным уровнем детализации. Используя модели с меньшей детализацией для разных расстояний, расчетная сложность рендеринга снижается, почти не ухудшая общую детализацию изображения. Метод особенно эффективен, если количество объектов в сцене велико, и они расположены на разных расстояниях от камеры. Кроме расстояния от камеры, для LOD могут иметь значение и другие факторы - общее количество объектов на экране (когда один-два персонажа в кадре, то используются сложные модели, а когда 10-20, они переключаются на более простые) или количество кадров в секунду (задаются пределы значений FPS, при которых изменяется уровень детализации, например, при FPS ниже 30 снижаем сложность моделей на экране, а при 60, наоборот, повышаем). Другие возможные факторы, влияющие на уровень детализации - скорость перемещения объекта (ракету в движении вы рассмотреть вряд ли успеете, а вот улитку - запросто), важность персонажа с игровой точки зрения (тот же футбол взять - для модели игрока, которым управляете вы, можно использовать более сложную геометрию и текстуры, вы его видите ближе всего и чаще всего). Тут все зависит от желаний и возможностей конкретного разработчика. Главное - не переборщить, частые и заметные изменения уровня детализации раздражают. Уровень детализации не обязательно относится только к геометрии, метод может применяться и для экономии других ресурсов: при текстурировании (хотя видеочипы и так используют мипмаппинг, иногда есть смысл менять текстуры на лету на другие, с иной детализацией), техник освещения (близкие объекты освещаются по сложному алгоритму, а дальние - по простому), техник текстурирования (на ближних поверхностях используется сложный параллаксмаппинг, а на дальних - нормалмаппинг) и т.п. Сообщение отредактировал black-general - Вторник, 02.11.2010, 22:45
АРМА - ВИКИПЕДИЯ
Modelling http://www.armatechsquad.com/ArmA2Class/ http://community.bistudio.com/wiki/Main_Page http://community.bistudio.com/wiki/Category:ArmA_2:_Editing 1. Вы сейчас в интернете. 2. Вы на сайте http://arma.at.ua 3. Вы читаете это. 5. Вы не заметили что отсутствует пункт 4. 6. Вы сейчас это проверили. |
black-general,
![]() Я столько всего нового узнал!!! |
black--general, спасибо, очень полезная информация, много чего стало ясно!!!
![]()
Давайте жить дружно!
Пак бойцов оперативного назначения v.1.00 Одиночная миссия "Ночной Визит" версия 0.6 |
| |||
| |||
Чат сайта |
Сайт управляется системой uCoz
Создатели сайта: Kolek - AlexF1 - СМЕРШ - Zenger
Полное или частичное копирование материала без указания ссылки на arma.at.ua запрещено.
2007 - 2016 arma.at.ua