Нормали к граням и удаление скрытых поверхностей

Ускорить процесс визуализации часто помогает выполнение нескольких следующих действий.

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

Каждая поверхность модели состоит из граней. Грани могут быть треугольными или четырехугольными; для каждой грани определена внутренняя и внешняя сторона. Направление грани определяется вектором, который называется нормалью. Направление нормали указывает переднюю, или внешнюю, сторону грани.

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

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

В случае отсутствия грани необходимо ее восстановить вручную. Для объектов, построенных с использованием команды "3DГРАНЬ", направление нормали определяется тем, как нарисована грань в правоориентированной системе координат: если грань нарисована против часовой стрелки, нормаль ориентирована наружу, если по часовой стрелке – внутрь. Все грани следует строить одним и тем же методом.

Прим.:

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

В процессе визуализации система вычисляет все нормали, направленные от точки обзора, и удаляет из сцены связанные с ними грани. Этот этап подавления называется выбраковкой задней грани и контролируется параметром "Вынужденное 2-стороннее" палитры "Параметры визуализации".

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

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

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

Прим.: Применение параметра "Вынужденное 2-сторонее" лишь незначительно влияет на производительность процесса визуализации.

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