Фотореализм в T-FLEX CAD 6.1

Фирма "Топ Системы" продолжает развивать свой основной продукт - систему T-FLEX CAD. В январе вышло очередное обновление - версия 6.1. Все больше и больше заказчиков фирмы переходят на 6-ую версию T-FLEX CAD, которую разработчики не без основания считают своим лучшим результатом за все годы существования программы.

В 6-ой версии получили свое развитие оба направления T-FLEX CAD - двумерное параметрическое черчение и трехмерное твердотельное моделирование. Помимо существенного расширения функциональности и обновления интерфейса, значительно возросла скорость работы системы. Так, например, на порядок возросла скорость загрузки и параметрического пересчета сложных сборочных чертежей и 3D моделей. Одной из наиболее заметных новых возможностей T-FLEX CAD 6.1 стало получение фотореалистичных изображений методом рэй-трэйсинг (ray-tracing). После применения рэй-

трэйсинга модели T-FLEX выглядят так, как на фотографии, - с бликами, отражениями, тенями, преломлением света и т.д. Рэй-трэйсинг используется рядом современных систем 3D моделирования, однако модули поддержки этой технологии, как правило, поставляются отдельно за дополнительную плату. В T-FLEX CAD рэй-трэйсинг входит в стандартную поставку и доступен каждому пользователю.

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

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

Для каждого пикселя результирующего изображения в сцену выпускаются один или более лучей для того, чтобы проверить их возможное пересечение с объектами сцены. Эти лучи выходят из точки взгляда, представленной камерой, и проходят через окно визуализации, определяемое окончательным изображением.

Каждый раз, когда луч попадает в объект, рассчитывается цвет поверхности в точке попадания. Для этой цели из этой точки для каждого источника света обратно посылаются лучи, определяющие приходящее количество света. По этим "теневым лучам" можно определить, лежит ли данная точка в тени или нет. Если поверхность может отражать или пропускать свет, посылаются новые лучи для того, чтобы определить влияние отраженного или преломленного света на результирующий цвет поверхности.

Если задействуются специальные механизмы - внутри-диффузное отражение (radiosity), атмосферные эффекты, объемные источники света, - необходимо использовать множество дополнительных лучей, что, конечно, замедляет вычисления.

Важно заметить, что рэй-трэйсинг рассматривает 3D модели как твердые тела. Это значит, что для вычислений важны не только свойства поверхности объекта, но также и то, из какого вещества состоит объект. Это может влиять на преломление и поглощение света. Для пустотелых объектов можно задавать наполнение пустоты - различные эффекты типа дыма или тумана.

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

В любом случае для всех типов образцов текстур функция должна вычислять некоторое значение, исходя из значений координат x, y и z. Для образцов, задающих цвет, функция возвращает значение цвета в определенной точке. Для фактурных образцов для задания бугорков на поверхности определяется направление нормали к поверхности в каждой точке. Для вещества типа "туман" определяется плотность. Можно также использовать комбинацию образцов.

Таким образом, с помощью рэй-трэйсинга можно получать качественные изображения трехмерных объектов из различных областей и сделанных из различных материалов.

Создание 3D моделей в T-FLEX CAD

Для того чтобы лучше понять процесс получения фотореалистичных изображений в системе T-FLEX CAD, сначала рассмотрим технику создания 3D моделей.

Результатом 3D моделирования в T-FLEX являются точные твердотельные модели. В качестве базового ядра моделирования используется известное ядро ACIS фирмы Spatial Technologies. Трехмерные объекты в T-FLEX создаются посредством различных операций. Как правило, исходным объектом операции является замкнутый контур. Контур может быть построен на обычном 2D чертеже, и на него могут быть наложены различные параметрические связи. Вот, например, как выглядит операция выталкивания.

В системе T-FLEX CAD в качестве изменяемых параметров могут быть любые характеристики как исходных элементов операции (например, геометрия контура), так и атрибуты самой операции (длина вектора выталкивания, литейный уклон, цвет и т.д.). На все эти параметры могут быть назначены переменные. Этим обеспечивается полная параметризация операции.

Для того чтобы можно было создавать объекты различной формы, помимо выталкивания существует целый ряд разнообразных операций: вращение, лофтинг, трубопровод, массив, сглаживание и т.д. С помощью булевых операций (объединение, вычитание, пересечение) из отдельных тел, полученных в результате операции, можно получать более сложные модели. Из отдельных моделей-деталей можно создавать сборочные конструкции. При этом в системе T-FLEX CAD как отдельные, так и сборочные модели являются параметрическими, то есть в любой момент можно легко изменить любые размеры и другие параметры.

При создании 3D моделей пользователи могут работать как с исходным 2D чертежом, так и вести диалог непосредственно в 3D окне. Элементы 3D моделей можно использовать для последующих построений. Например, можно расположить вновь создаваемый контур на одной из граней 3D модели и создать на его основе новую операцию. Либо можно использовать ребра модели в качестве пути, по которому будет задана операция "трубопровод". Несколько операций в T-FLEX CAD являются уникальными. В T-FLEX CAD поддерживается сглаживание с переменным радиусом для последовательности ребер - функциональность, не доступная в других системах. В T-FLEX CAD в отличие от других систем используется единая схема работы при создании отдельных деталей и сборочных 3D моделей, что значительно упрощает пользовательский интерфейс. Кроме того, любая деталь-фрагмент или даже ее часть может быть использована в булевой операции. Так, например, заранее подготовленный фрагмент-отверстие с помощью операции drag&drop может быть помещен из библиотеки в создаваемую модель. При этом посредством автоматической булевой операции в модели появится требуемое отверстие.

На основе 3D моделей можно получить различные проекции и сечения для оформления чертежей. Размеры и другие элементы оформления, проставленные на проекциях, будут изменяться соответственно параметрическим изменениям 3D модели. Кроме того, проекции могут быть использованы для создания новых 3D операций, обеспечивая таким образом полную ассоциативность.

Визуализация моделей

Прежде чем подробно остановиться на использовании рэй-трэйсинга в T-FLEX CAD, рассмотрим другие способы визуализации трехмерных объектов в этой системе. К основным способам визуализации можно отнести реберную модель, шейдинг и рендеринг. Все они используют механизм OpenGL, обеспечивающий манипуляции с моделями в реальном времени. То есть в любой момент вы можете движением мыши повернуть модель под нужным вам углом в интерактивном режиме. Реберная модель показывает характерные линии-ребра поверхностей модели, позволяя видеть все элементы. Шейдинг является более реалистичным представлением модели, однако задние грани будут скрыты от пользователя. Если назначить на поверхности различные материалы, то с помощью рендеринга можно сделать изображение модели еще более реалистичным. При этом также можно будет работать с моделью в реальном времени, хотя скорость манипулирования будет ниже, чем в предыдущем случае. Скорость работы рендеринга зависит от типа назначаемых материалов. Если в них присутствуют сложные установки, например, наложение текстур или прозрачность, то скорость будет заметно ниже, чем при шейдинге. Ускорить работу могут специальные графические платы с поддержкой OpenGL, которые в последнее время получают все большее распространение. Еще одним способом визуализации 3D моделей, который используется для более четкого представления о модели, а также при оформлении, является удаление невидимых линий. В принципе, этот способ похож на реберную визуализацию, но с добавлением очерковых линий и удалением невидимых линий. Этот способ требует определенного времени для расчета изображения, поэтому не может быть использован в интерактивном режиме. Чем сложнее модель, тем больше времени требуется для расчетов. При необходимости невидимые линии могут быть выведены с другим цветом или типом.

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

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

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

Результатом работы рэй-трэйсинга в T-FLEX CAD является файл формата bmp, который может быть просмотрен в окне T-FLEX CAD и выведен на принтер.

Сергей Бикулов(АО "Топ Системы" г. Москва.),
Игорь Кочан(ООО "Ормасэйл", г. Минск.)



Компьютерная газета. Статья была опубликована в номере 11 за 1999 год в рубрике soft :: сапр

©1997-2021 Компьютерная газета