Подразделение поверхностей алгоритмом Catmull-Clark'а (Catmull-Clark SubSurf)

Подразделение поверхностей алгоритмом Catmull-Clark'а, или сокращенно SubSurf, это математический алгоритм вычисления "гладкого" подразделения меш-модели. Стартовой точкой может служить любой простой меш-объект, Blender может вычислять гладкое подразделение на лету; во время моделирования или рендеринга. Это дает возможность моделировать высокополигонные меш-объекты, без сохранения и обслуживания огромного количества данных. Это также придает моделям гладкий, 'органический' вид.

Фактически, меш-объект, созданный с помощью SubSurf и NURBS-поверхности, имеют много общего, так как оба полагаются на "грубый" низкополигонный "меш", чтобы определить сглаженность "высокоточной" поверхности, но есть также известные различия:

SubSurf это параметр редактирования, кнопка включения находится в окне кнопок для редактирования( EditButtons) F9, на панели Mesh (Рис 59). Рядом, возле кнопки SubSurf, есть меню, в котором можно выбрать способ подразделения: Simple Subdiv. (простое, по умолчанию) или Catmull-Clark - о котором мы и будем говорить далее. Цифровая кнопка сразу внизу слева определяет параметр, разрешение (или уровень) подразделения для 3D-визуализации, кнопка справа определяет разрешение для рендеринга.

Так как вычисления SubSurf выполняются в реальном времени, во время моделирования и рендеринга, а эта операция требовательна к процессору, рекомендуется держать уровень SubSurf маленьким (но не нулевым) во время моделирования и высоким для рендеринга.

Рис 59. Кнопки SubSurf

Blender с версии 2.3, для SubSurf имеет новую опцию: Optimal. Она изменяет способ прорисовки SubSurf-мешей и хорошо помогает при моделировании. Рис 61 показывает серию картинок с различной комбинацией SubSurf выполненной с мешем Сюзанны.

Рис 61. Сюзанна с различным способом SubSurf

Рис 62 показывает уровни SubSurf 0,1,2,3 на одиночной квадратной грани или на одиночной треугольной грани. Такое подразделение выполнено, на универсальном меше, для каждой каждой квадратной или прямоугольной грани.

Очевидно, как каждая единственная четырехсторонняя грань производит грани 4^n в SubSurfed меше, n является уровнем или разрешением SubSurf, то время как каждая треугольная грань производит новые грани 3*4^(n-1) (Рис 62). Такое увеличение количества граней (и вершин) приводит к замедлению редактирования и рендеринга и требует более низкого уровня SubSurf, в процессе редактирования, чем при рендеринге.

Рис 62. Процесс SubSurf на простой квадратной и треугольной грани.

Система подразделения Blender'а, основывается на алгоритме Catmull-Clark'а. Это производит хорошие гладкие меши SubSurf но, любая грань, созданная при помощи алгоритма SubSurf, из одиночной грани оригинального меша, получает такую же ориентацию нормалей, как и у первоначальной грани.

Это не проблема для самой фигуры, как показано на Рис 63, но это проблема для рендеринга, и в режиме отображения граней, где резкие изменения нормалей создает уродливые черные линии (Рис 64).

Рис 63. Вид подразделенного меша сбоку. Со случайным направлением нормалей (сверху) и с последовательным (снизу)

Использование клавиш CTRL+N в режиме редактирования (EditMode), с выбранными всеми вершинами, заставит Blender пересчитать нормали.

Рис 64. Отображение SubSurf меша в режиме прорисовки граней с непоследовательными (сверху) и последовательными нормалями (внизу).

На рисунках нормали граней отображены голубым цветом. Вы можете включать отображение нормалей (кнопка Draw Normals) в окне кнопок редактирования F9 , на панели Mesh Tools 1.

Стоит отметить, что Blender не может пересчитать нормали правильно, если меш "неразнообразный". "Неразнообразный" меш, это меш для которого 'внешняя' часть определенно не может быть просчитана. В основном, с точки зрения Blender'а, это меш, где есть ребра, принадлежащие более чем двум граням.

На Рис 65 показан очень простой пример "неразнообразного" меша. Вообще, "неразнообразный" меш получается, тогда, когда у вашего объекта есть внутренние грани и т.п.

Рис 65. "неразнообразный" меш

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

Вы можете узнать, что меш является "неразнообразным" по двум признакам:

Инструмент SubSurf создает очень хорошие "органические" модели, но имейте в виду, что правильный меш с квадратными гранями, дает лучший результат.