Ребра и группы сглаживания
В составе сетчатых оболочек имеются два типа ребер. Ребра первого типа разделяют грани, не лежащие в одной плоскости. Они всегда видны в составе сетки и изображаются сплошными линиями. Другие ребра, которые разделяют грани, лежащие в одной плоскости, по умолчанию не видны, а если и отображаются по специальному запросу, то пунктиром. Эти два типа ребер можно охарактеризовать как видимые и невидимые, вкладывая в это определение смысл, связанный с компланарностью граней.
В 3ds max 6 имеются инструменты, позволяющие превратить любое видимое (изображаемое сплошной линией) ребро в невидимое, которое будет отображаться пунктиром только в специальном режиме просмотра невидимых ребер. И наоборот, любое ребро, разделяющее грани, лежащие в одной плоскости, можно сделать видимым постоянно. При этом оно будет отображаться в составе сетки сплошной линией. Необходимость такого преобразования связана с тем, что в 3ds max 6 есть средство для разрезания ребер, которое по-разному действует на видимые и невидимые ребра сетки.
Итак, видимые ребра - это те, которые изображаются в составе сетки сплошными линиями, а невидимые - те, которые в нормальном режиме не видны, а в специальном режиме отображаются пунктиром.
Понятие видимости ребер должно еще соотноситься с понятием их сглаживания при отображении сетки в виде сплошной поверхности или в тонированном виде. Сетчатая оболочка любого объекта (скажем, простой сферы) состоит из треугольных граней. Но мы видим на экране гладкую, а не ребристую поверхность сферы, так как при отображении тонированной сетчатой оболочки программа автоматически выполняет сглаживание ребер между гранями, принадлежащими к одной и той же группе сглаживания (smoothing group). В итоге далеко не все видимые ребра сетки оказываются видны в виде линий излома поверхности объекта. Например, у сферы все грани сетки принадлежат к одной группе сглаживания, а у цилиндра грани боковой поверхности принадлежат к одной группе сглаживания, а грани оснований - к другой. В связи с этим при визуализации цилиндра ребра между гранями боковой поверхности не видны, а между боковой поверхностью и основаниями - видны.
У некоторых стандартных объектов трехмерной графики, таких как сфера или цилиндр, назначение групп сглаживания граням производится программой автоматически в момент создания объекта. Однако режим сглаживания ребер можно выключать. В результате при отображении будут видны в виде линий излома поверхности все ребра между гранями, не лежащими в одной плоскости, как показано на рис. 1.34. Обратите внимание на то, что даже у цилиндра со сглаженной боковой поверхностью ее исходное граненое строение прослеживается по кромкам оснований, состоящим из отрезков прямых линий.
Рис. 1.34. Реально имеющиеся на сетке ребра боковой поверхности цилиндра (а) становятся невидимыми, если все грани этой поверхности принадлежат к одной группе сглаживания (б)
Объединение граней в группу сглаживания может происходить автоматически с учетом угла между нормалями к этим граням. Любые две соседние грани, угол между нормалями которых не превышает заданного порогового значения, объединяются в одну группу сглаживания и при визуализации на границе между ними не будет видно излома поверхности.
Способ, каким программа производит сглаживание ребер между гранями, относящимися к одной группе сглаживания, зависит от выбора алгоритма тонированной раскраски граней (см. главу 15 «Стандартные и усовершенствованные материалы»).