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