NURBS моделирование в Rhino 3D и T-Spline / Хабр
Существует, как минимум, два подхода к созданию 3D моделей. В одном из них, наиболее популярном, объекты состоят из множества полигонов. В другом (freeform surface modelling) — из NURBS поверхностей, которые задаются кривыми (сплайнами).
Каждый из подходов имеет свои преимущества и недостатки, во многом схожие с различиями между растровой и векторной 2D графикой. Особенностям работы с ПО для полигонального моделирования посвящено довольно много статей но, что касается средств NURBS моделирования, тут, на мой взгляд, ситуация сложнее. Большинство таких статей либо являются туториалами по созданию конкретных объектов, либо предназначены скорее для создателей ПО, нежели для его пользователей и полны терминов вида «веса, T-точки, кривые n-го порядка, », и т п. Я же попробую пройти посередине.
Создание объектов из NURBS поверхностей используется в тех областях, где важную роль играет точность — как сама по себе, так и её сохранение при редактировании объекта.
Однако точность — не единственная причина отказа от полигонов. Весьма широко NURBS моделирование используется в промышленном дизайне, архитектуре и ювелирке. Если взглянуть на известные современные здания — можно заметить, что они представляют собой сочетание переходящих друг в друга форм — либо узнаваемых геометрических примитивов, либо сложных, явно математически определённых, поверхностей. Тоже самое касается корпусов автомобилей, бытовой техники, а также различных колец, ожерелий (особенно «органического» вида) и т.п.
Часто эти формы довольно узнаваемы и обусловлены типовыми возможностями ПО для NURBS моделирования. Другими словами, нередко дизайн определяется больше спецификой используемого ПО, чем идеями дизайнера.
В этой статье я хочу, на примере пакета Rhino 3D, акцентировать внимание на некоторых особенностях и проблемах, характерных для данного подхода.
Здесь необходимо сразу сделать отступление. Дело в том, что работать с NURBS поверхностями тоже можно сильно по-разному.
Мы рассмотрим два способа — стандартный функционал Rhino и функционал T-Spline, представляющий собой популярный плагин для Rhino и, по сути, являющийся редактором внутри редактора — со своим представлением поверхностей/тел и своими способами их редактирования.
Для начала посмотрим на несколько примитивов, созданных с помощью трёх разных подходов. Далее я буду называть их «mesh» (полигональный), «rhino» (Rhino NURBS) и «tspline» (T-Spline NURBS). Да, полигональное моделирование в Rhino тоже возможно, хотя и в очень урезанном виде.
Здесь изображены по три цилиндра, сферы, куба, криволинейных поверхности.
Конечно, напрямую сравнивать одно с другим не вполне корректно — в частности потому, что вершины полигонов и точки задающие сплайн — далеко не одно и то же. Однако, кое-какие полезные моменты здесь можно наглядно наблюдать.
Например, в Rhino варианте сфера — это одна свёрнутая поверхность (там, где линия жирнее — место её соединения).
Цилиндр — три поверхности: скрученная стенка и две круглые «крышки».
Rhino куб в чём-то похож на mesh — состоит из шести плоских поверхностей (просто здесь тот факт, что они плоские — лишь частный случай — они могли бы быть и вогнутыми).
В T-Spline варианте явно что-то странное — цилиндр выглядит как бочка, а куб как сфера. Да и поверхность, если присмотреться, имеет закруглённые уголки. По сути такое впечатление, что надутый шарик пытаются стянуть обручами. И, чтобы приблизиться к требуемой чёткой форме, «обручей» понадобится больше. Но к этому мы ещё вернёмся. Так же можно заметить, что швов у T-Spline объектов нет.
C Mesh понятно — видно, что криволинейные поверхности, при небольшом числе полигонов, не сильно плавные. Что не новость, конечно. Но зато с кубом всё замечательно.
Теперь попробуем исказить все объекты похожим, по возможности, образом, потянув за уголок:
Реакция явно отличается. Mesh объекты среагировали острее всех, Rhino оказались более ленивы и пластичны, ну а T-Spline вообще — образцы мягкотелости.
Общее представление получили, теперь перейдём к конкретике.
В Rhino можно нарисовать кривую и одной из команд PlanarSrf, ExtrudeCrv, EdgeSrf (есть и другие варианты) получить плоскость, ограниченную некоей кривой:
Кажется, что результат (за исключением формы) везде аналогичен. Но это не так — в первом случае команда PlanarSrf в действительности просто взяла прямоугольник и скрыла у него всё, что выходит за пределы кривой. Этот процесс называется trimming. Ниже можно видеть результат команды Untrim, удаляющей обрезку:
Это отличие существенно, поскольку часто объекты (и отверстия в них) состоят из обрезанных поверхностей большего размера и ведут себя соответственно:
Нередко при выполнении операций над такими объектами возникают проблемы в местах стыковки поверхностей. Например, вот довольно типичная ситуация с образованием дыр при операции снятия фаски (так называемые «naked edges», выделены цветом):
И ещё пример:
Для устранения такого рода проблем приходится делать untrim и вручную создавать новые кривые для обрезки, с последующей подгонкой их для стыковки поскольку, если они будут стыковаться неточно, сплошное тело (соединением при помощи Join) мы не получим.
Чтобы избежать лишней работы, необходимо заранее тщательно продумывать, что как и на каком этапе будет делаться ибо, когда проблема вдруг возникает, оказывается, что заложена она была много шагов назад и вернуться к тому этапу уже проблематично.
Говоря проще, в Rhino не существует простого способа редактировать сложные поверхности и состоящие из них тела. Это существенный недостаток в работе с Rhino, который отчасти устранён в T-Spline.
Теперь попробуем изобразить плоскую поверхность в T-Spline. Сразу скажу, что получить плоскость ограниченную конкретной кривой так же просто, как в Rhino — нельзя. Точнее можно, но её топология будет такой (ужасной), что использовать вы её сможете лишь в каких-то частных случаях.
В первом случае t-spline объект образуется экструзией кривой. Обратите внимание, что рёбра образуются там, где на кривой были точки (другими словами — не все похожие на вид кривые будут одинаково полезны для конкретной задачи).
Также, здесь существует проблема дырки в центре, о которой ниже. Здесь дырка просто замаскирована — она имеет нулевой размер (координаты всех точек, определяющих её края — совпадают), но на практике это очень нехорошая ситуация. Кстати говоря, упомянутая на одной из предыдущих картинок штатная tspline сфера сделана также — по факту, она не является сплошным телом и имеет дырки на полюсах. А вот quadball, хотя топологически и ближе к кубу, но выглядит как сфера и, к тому же, сплошной. Так вот всё сложно и загадочно.
Во втором случае за основу берётся каркас из линий. Этот способ позволяет получить хорошее приближение к нужной форме и при этом, что очень важно, даёт вменяемую топологию (собственно, вы полностью задаёте её сами). Однако, взаимосвязь линий и результирующей поверхности — очень неочевидна даже в простых случаях.
Третий случай — это аналог Loft из Rhino.
В четвёртом случае плоскость создаётся сразу — командой tsPlane. Можно задать количество граней по горизонтали и вертикали. Взяв за основу такую плоскость, удалив затем лишнее и подвигав оставшееся — можно получить довольно сложную фигуру с хорошей топологией:
Существует команда _tsFillHole, которая автоматически их заделывает. Однако, результат её работы плохо предсказуем и удовлетворительным бывает лишь в каких-то совсем простых случаях (типа дырки на рисунке выше).
В большинстве случаев дырки приходится заделывать вдумчиво и вручную — либо сваривая между собой близлежащие вершины командой tsWeld, либо создавая грани между существующими вершинами командой _tsAppend:
Как можно видеть, если подходить «в лоб», во всех случаях результат получается ужасным. Мало того, что топология такая, что практического применения это не имеет, так ещё и форма внешних границ исказилась. И, хотя всё это можно выправить, ошибка тут в самом способе, которым была создана поверхность — исправлять здесь будет сложнее, чем сделать заново. Для данной ситуации куда лучше подошёл бы tsFromLines (кстати, напомнило известную картинку с паутиной обкуренного паука и трезвого):
Чем отличается сплошное тело (solid или closed polysurface) от поверхности (surface) или нескольких соединённых поверхностей (open polysurface)? Как ни странно, сплошные тела от просто поверхностей внешне могут и не отличаться. Настоящее различие — в отсутствии дыр. Все образующие сплошное тело поверхности должны быть плотно соединены (Join) без всяких щелей. В этом случае объект будет считаться closed (а не open) polysurface. Конечно, есть понятие точности (tolerance) и её можно изменить настройками настолько, что отчётливо видимая щель будет считаться отсутствием щели. Но это уже нештатная ситуация и не стоит идти по этому пути.
Изогнутую поверхность можно получить так же, как и плоскую — экструзией кривой, а также ещё несколькими способами:
Возьмём простой пример — колпачок клавиши. Это та ситуация, когда Rhino отлично подходит. Для удобства вставим при помощи PictureFrame картинку, чтобы сразу видеть, что, где и какого размера примерно должно быть:
Здесь всё, что бралось за основу — стандартно. Параллелепипед из примитива, сверху экструдированный прямоугольник со скруглёнными краями. В результате корректно сработало и вычитание сферы (для получения углубления) и все последующие скругления рёбер.
Теперь возьмём вариант посложнее — телефонную трубку и попытаемся изобразить её особо не раздумывая (обычно поначалу делают именно так, после чего разочаровываются в инструменте).
Вариант первый, через CreateSolid:
Т.е. обводим контуры кривыми, экструзией превращаем их в поверхности, затем командой CreateSolid создаём тело, ограниченное пересечением этих поверхностей.
Вроде, поначалу всё идёт хорошо, а главное просто. Проблемы начинаются, когда мы хотим сделать трубке закруглённые края.
Для этого существует команда Fillet. Во-первых, довольно сложно сделать именно такие закругления, как нужно, но в это даже не будет углубляться. Делаем примитивно — выбираем края и радиус. Сработало, но с одной стороны виден явный артефакт (по факту их там больше, просто другие менее заметны). При ближайшем (укрупнённом) рассмотрении оказывается, что в этом месте поверхности далеко не идеальны, а были как бы смяты. Соответственно и Fillet сработал неадекватно. Странно, ведь исходные кривые были вполне гладкие и аккуратные на вид. Оказывается, этого далеко недостаточно!
Причины проблем бывают разные. Может оказаться, что кривая, по которой обрезан край поверхности, имеет мелкие петли, перегибы (kinks) и другие прелести.
В результате, тут мы будем вынуждены откатиться назад, сделать этим кривым Rebuild/Refit, а то и пересоздать тело заново. Бывают проблемы вызванные самими операциями, в результате которых образуются новые кривые и поверхности.
Может быть, можно сделать закругления сразу? Ну, можно. Например, при помощи Loft и NetworkSurf:
Здесь используется другой подход — несколько кривых, отражающих формы сечений в нескольких местах тела. Команда Loft по этим кривым сразу строит тело. Всё бы ничего (только кривых конечно надо побольше, чтобы поверхность была точнее) но есть проблема с дырками по концам, которые корректно заделать очень сложно (в данном случае использовалась Patch).
Более сложный вариант — команда NetworkSurf.
В этом случае берутся кривые не в одном направлении, а в двух или трёх. В теории, всё должно получаться замечательно. На практике же, все кривые должны быть расположены друг относительно друга строго определённым образом — где-то пересекаться, где-то нет. Эти правила очень неочевидны (и формально не описаны). Поэтому с небольшим количеством кривых, как в этом примере, команда проходит, а чуть побольше — уже нет. Причём, содержательная диагностика отсутствует — просто команда не может выполниться. Что именно не так — выяснить очень сложно.
Любой подход, конечно, не исключает объединения нескольких тел в одно, отрезания каких-то частей, трансформаций и пр. Но проблемы заложенные изначально, на более поздних этапах редко удаётся хорошо исправить.
Общая мораль такова: в Rhino можно создать сложное аккуратное тело. Но 90% успеха определяется в самом начале работы — на этапе выбора удачного для данного конкретного тела подхода и при создании основных кривых. Нежелание заниматься подобным — одна из причин, по которым появились средства типа T-Spline…
В T-Spline разнообразия будет поменьше. Причина в том, что в нём проще, по сравнению с Rhino, исправлять что-то уже сделанное. По этой причине бывает удобно взять какой-то примитив и просто подредактировать до нужной формы.
Аналогично ситуации с плоскостью, можно использовать tsFromLines, задав сетку линий не на плоскости, а в 3d. Хотя, это ещё сложнее, чем в 2D случае.
В некоторых ситуациях удобно сначала сделать какую-то Rhino поверхность или даже импортировать Mesh, затем преобразовать это в T-Spline, а дальше уже редактировать его. Но это возможно лишь в довольно простых случаях. Кроме того, в такой ситуации вы не можете влиять на итоговую топологию, а от этого напрямую зависят перспективы дальнейшего редактирования.
Для примера, рассмотрим создание той же самой телефонной трубки в T-Spline. Возьмём примитив Box и будем его редактировать:
Сначала изогнём при помощи Bend. Следующей логичной идеей было бы деформировать его среднюю часть (как на перечёркнутой картинке), но сразу скажу — это плохая идея. В данном конкретном случае не получится таким способом сделать аккуратные плавные изгибы. Так что поступим иначе — сначала удалим часть граней, а затем закроем дыры с помощью tsAppend.
Можно заметить, что данная конкретная трубка — симметричный объект. Мы можем сильно упростить себе работу, указав на это T-Spline’у командой tsSymmetry. При этом есть два подхода — либо обозначить ось симметрии, если мы уже имеем симметричный объект (не наш случай, потому что трубка лишь кажется симметричной — для T-Spline половинки окажутся всё же чуть разными). Либо создать симметричный объект. Для этого удалим половину трубки и укажем, что плоскость симметрии проходит по линии удаления. С этого момента все действия на одной половинке будут отражаться и на другой (см. третью картинку):
Кстати, обратите внимание, что в ходе процесса в некоторых местах были удалены лишние рёбра. Чем их меньше, тем проще сделать гладкую ровную поверхность. С другой стороны, чем рёбер больше, тем более детальные изменения можно вносить. В процессе работы ребра в нужных местах то удаляют, то добавляют — взависимости от ситуации.
В отличии от Rhino, в T-Spline сложно сделать резкие границы или углы. Есть два принципиально различных подхода к решению этого вопроса. Один — создание так называемых creases (сгибы). При этом T-Spline’у явным образом дают понять, что конкретное ребро должно быть резким
На практике этот подход имеет массу недостатков. В частности, этой резкостью никак нельзя управлять, а значит в итоге вам всё равно потом после преобразования поверхности в Rhino придётся делать скругление (fillet). С очень большой вероятностью в процессе возникнут проблемы, которые будет сложно устранить.
Другой подход — управление кривизной при помощи дополнительных рёбер и изменения расстояния между ними. Тут тоже есть свои сложности — например, на угле где сходятся три ребра будет сложно получить требуемый радиус закругления. Кроме того, совсем резкий перегиб (чтобы потом, при преобразовании в Rhino получилось одно «ребро») получить и вовсе не удастся. А значит и что-то сделать с ним, например скруглить, вы потом уже вряд ли сможете.
Rhino имеет достаточно богатый набор команд, позволяющих наклонить, изогнуть, скрутить и даже сложным образом исказить поверхность. Единственное, что тут следует учитывать, это плохую обратимость таких трансформаций. Если вы изогнёте поверхность в одну сторону, а потом изогнёте обратно — скорее всего получится уже другая, более сложная поверхность. При многократных и/или сложных трансформациях тел состоящих из нескольких поверхностей, возникнут проблемы в местах стыковки этих поверхностей.
В T-Spline всё гораздо проще. Чаще всего применять какие-то специальные команды даже не нужно — простой выбор и перемещение/поворот/масштабирование точек, рёбер или граней, в том числе в сочетании с радиальной симметрией, даёт почти всё, что нужно.
Тут нет проблемы необратимости — точки всегда можно вручную вернуть назад, пусть даже это и потребует кропотливой ручной работы.
Что касается применения упомянутых выше стандартных для Rhino команд (_Twist, _Bend и пр.), то здесь есть важный ньюанс — эффект зависит от режима редактирования. Если tspline объект выбран как объект, то применение к нему команд трансформации приведёт к преждевременному преобразованию объекта из tspline в rhino, что совершенно неприемлемо. А вот если выбран режим контрольных точек, рёбер или граней, то трансформации, по сути, будут подвергаться точки:
При этом можно выбирать для трансформации лишь часть объекта:
Хотя Rhino не позволяет детально редактировать геометрию готовых поверхностей, у него есть режим history, с момента включения которого запоминаются производимые операции. К примеру, если вы создали поверхность на основе одной или нескольких кривых при включённой history, последующее перемещение точек этих кривых приведёт к изменению этой поверхности. Этот режим, впрочем, имеет ряд ограничений — даже простое перемещение поверхности его отключает, пересчёт сложных поверхностей при каждом сдвиге точек требует много вычислительных ресурсов и пр.
Хотя команда Extrude есть и в Rhino, в T-Spline она работает по-другому. Здесь объекты состоят из множества граней, к которым экструзию можно применять выборочно.
В левой части объекта четыре грани подняты вверх без экструзии. В правой — с экструзией. Обратите внимание, что при экструзии возникают особые точки, где сходятся пять рёбер — звезды (star). Аналогичные точки (из трёх рёбер) можно видеть и на углах объекта.
Управлять кривизной в таких местах сложно — там легко могут появляться складки, морщины и т.п., поэтому звезд следует, по возможности, избегать (а если это не удалось — хотя бы минимизировать число сходящихся рёбер). Звёзды могут появляться сами — при удалении граней, затыкании дырок, экструзии граней и т.п.
В общем случае подход следующий:
Rhino:
— Если моделируемый объект имеет острые или резкие края/грани (к примеру, драгоценный камень после огранки)
— Если имеет сложную конфигурацию, которая должна быть точно повторена (к примеру, должен соответствовать чертежу)
— Если объект имеет мелкие (относительно самого объекта) детали, особенно отверстия или цилиндры правильной формы и особенно, если их много.
— Если объект состоит из нескольких плотного прилегающих друг к другу частей
T-Spline:
— Если моделируемый объект имеет плавные, в том числе плавно переходящие друг в друга формы без резких граней и переходов. Обычно подобные формы называют «органическими»
— Если нужно имитировать неидеальности (неровности, неточности) граней и поверхностей. В Rhino это сделать очень сложно — даже с дополнительными мерами при рендеринге объект может казаться слишком правильным (а значит — недостаточно реалистичным).
— Если форму объекта в будущем предполагается менять
Впрочем, как уже было упомянуто, нередко заготовку делают в T-Spline, преобразуют в Rhino поверхность и дорабатывают уже в Rhino.
Достаточно типовая схема работы, если речь идёт о создании модели по образцу, следующая (при условии, что T-Spline применим — т.е. формы плавные):
1. Если есть лишь изображение объекта с непонятного ракурса, то либо сразу начинаете, поглядывая на изображение, создавать поверхность в T-Spline (из примитива или экструзией кривых) либо, если это удобно, сначала создаёте общую форму в Rhino, а затем преобразуете поверхность в T-Spline и там продолжаете редактировать.
Если есть хотя бы одно изображение строго сверху, снизу, сбоку, то вставляете его при помощи pictureFrame и по его контурам делаете всё вышеперечисленное.
Если уже есть полигональная mesh модель (например, с 3d сканера), то сначала пробуете преобразовать её сразу в rhino или t-spline модель. Скорее всего, не выйдет. Тогда вы можете в T-Spline создать модель руководствуясь вершинами полигональной модели — как бы натягивая создаваемую tspline поверхность на контуры mesh.
Вплоть до того, что прямо tsAppend’ом создаёте грани на поверхности полигональной модели и потом подравниваете точки получившейся T-Spline поверхности по полигональной.
2. Готовую T-Spline поверхность преобразуете в Rhino поверхность. Это надо делать когда вы абсолютно уверены, что она полностью готова и в T-Spline её уже более не улучшить (обратного пути не будет).
3. Задумчиво смотрите на полученную Rhino поверхность и обращаете внимание, что на самом деле она состоит из нескольких поверхностей. Швы — это будущая ваша боль. Постарайтесь не производить вплотную к ним каких-либо операций типа отверстий, вырезов и т.п. Высока вероятность, что последующие скругления и фаски на краях расположенных там вырезов будут проблемными. Вплоть до того, что придётся модифицировать исходную T-Spline поверхность (которую вы предусмотрительно сохранили)
4. Делаете всё, что позволяет Rhino, но не позволяет T-Spline. Всякие резкие выемки, отверстия, торчащие элементы и пр. Если брать пример с телефонной трубкой, то после преобразования в Rhino её надо разрезать на две части (поскольку она в жизни состоит из двух половинок), скруглить у каждой части края, прорезать отверстия над динамиком и микрофоном, а также под шнур и винт.
5. Итак, вы получили готовую модель в Rhino. Что можно с ней сделать?
Рендер. Это отдельная длинная история, со своими нюансами. В Rhino есть встроенный рендерер, но он позволяет разве что получить общее представление — о реалистичности говорить не приходится. Для получения реалистичного изображения используют внешние пакеты — Keyshot, V-Ray и подобные. Причём, некоторые умеют работать непосредственно с NURBS и, соответственно, кривые поверхности там будут гладкими при любом разрешении…
Некоторые рендереры, в большей или меньшей степени, интегрируются с Rhino. Т.е. нажатием одной кнопки можно передавать изменённую модель прямо в рендерер, либо он будет работать непосредственно в окне Rhino…
Что касается анимации, то в Rhino такой функционал не предусмотрено совсем. Некие минимальные возможности бывают в пакетах рендеринга, но они довольно примитивны и предназначены для создания чего-то типа презентации объекта (покрутить, приблизить, поиграться цветами, светом, текстурой), но никак не для сложных сценариев.
Разумеется, из Rhino есть экспорт в различные форматы — от CAD-овских, типа STEP или IGES, до полигональных (при этом, соответственно, поверхности преобразуются в полигоны).
На момент написания статьи, текущей является Rhino версии 6. Проблема в том, что T-Spline с ней не работает и работать не будет. Более того, новых версий T-Spline (выше 4.x) тоже не будет, поскольку Autodesk решил включить его в состав своего, конкурирующего с Rhino, продукта.
Есть другой плагин со схожей функциональностью — Clayoo. Кроме того, автор Rhino заявлял, что планирует аналогичную функциональность в самом Rhino. Но будет это в любом случае нескоро.
С другой стороны, совершенно спокойно можно не переживать относительно новых версий и работать в Rhino 5 + T-Spline (как многие и делают). Связка вполне стабильна и функциональна.
Сплайновое моделирование инструментом Loft в 3ds Max
Моделирование сплайнами интересно тем, что оно очень сильно автоматизировано. При минимальном количестве действий можно получить полноценный объект с корректной сеткой. При этом сам инструмент довольно гибкий и хорошо работает с любыми формами.
1. Подготовка сцены
Прежде всего нужно создать сплайны, на основе которых будет создаваться объект. Сплайны будут двух типов: путь и форма. Путь – это сплайн, определяющий протяженность и направление формы объекта. Форма – это сплайн, который определяет форму объекта вдоль пути. Переходите в Create – Shapes – Splines и создавайте любые нужные сплайны.
После создания базовых форм объекта нужно выделить сплайн-путь и перейти в Create – Geometry – Compound Objects – Loft. Активировав инструмент, нужно включить режим выбора формы Get Shape. Включив этот режим можно выбирать сплайн-форму.
Как только будет выбран второй сплайн, создастся новый объект. Это все еще будет объект Loft, который можно продолжать редактировать, используя имеющиеся сплайны.
2. Работа с объектом Loft
Get Path и Get Shape – назначение пути и формы соответственно. С помощью этих кнопок можно выбрать и переназначить любой из образующих сплайнов.
Move/Copy/Instance – выбор режима назначения сплайнов. Например, благодаря режиму Instance изменение в сплайне будут вноситься и в объект.
Большой плюс инструмента Loft – возможность создавать переходы между различными геометрическими формами. Сейчас установлена одна форма по всей длине. Для того, чтобы разместить несколько форм нужно изменить значение Path.
Path – процентное значение длины. Увеличив его и назначив форму кнопкой Get Shape, вы ограничите распределение формы по длине. Увеличив значение еще больше и применив кнопкой Get Shape другую форму, она создастся в отрезке между новым и старым значением.
Snap – установка положения новой формы на основе отступа от предыдущей. То есть положение нового сплайна будет опираться не на общую длину, а на расстояние до предыдущей формы. Включается флажком On.
Percentage – устанавливает измерение Path и Snap в процентах.
Distance — устанавливает измерение Path и Snap в системных единицах (миллиметры, метры и т.д.).
Path Steps — устанавливает измерение Path и Snap в шагах сетки. Эти шаги формируются поперечными ребрами полигональной сетки.
3. Настройки объекта
Smooth Length/Width – включение и отключение сглаживания финального объекта. Отсутствие флажков отключает сглаживание.
А более подробно про сглаживание любых объектов можно узнать из статьи «Сглаживание с помощью Smoothing Groups в 3ds Max».
Apply Mapping – включает отображение текстуры на объекте. Без этой галочки используемые карты могут не отображаться.
Real-World Map Size – установка размера текстуры на основе программных настроек.
Length/Width Repeat – изменение размера текстуры по длине или ширине.
Generate Materials IDs – генерация уникальных ID материала во время создания объекта.
Use Shape IDs – использование ID материалов, ранее назначенных сплайнам.
Patch/Mesh – позволяет выбирать между двумя способами образования объекта.
Cap Start/End – закрытие начала и конца объекта полигонами.
Shape Steps – определяет число ребер финального объекта. Чем выше значение, тем больше ребер будет создано вдоль формы.
Path Steps – множитель поперечных ребер финального объекта.
Optimize Shapes/Path – оптимизация числа продольных и поперечных ребер. Также оптимизировать можно с помощью модификаторов, описанных в статье «5 модификаторов, меняющие количество полигонов 3ds Max».
Contour – следование формы по контуру. Без этого флажка форма не будет поворачиваться при искривлении пути.
Banking – управляет вращением формы при изгибании по оси Z.
Constant Cross-Section – масштабирование формы в резких поворотах (углах) пути. Это нужно для сохранения правильной формы угловых объектов.
Linear Interpolation – при включении на переходах между формами делает края более острыми.
Flip Normals – разворачивает все полигоны объекта.
Quad Sides – определяет форму полигонов (прямоугольники или треугольники). Отключение флажка триангулирует весь объект.
Transform Degrade – отключает отображение объекта при изменении образующих сплайнов.
Skin и Skin in Shaded – включают отображение оболочки финального объекта.
Deformations – этот свиток содержит настройки изменения форм. Изменения осуществляются с помощью редактирования кривых в особом диалоговом окне. Чтобы включить ту или иную функцию деформации, нужно включить лампочку.
Scale – изменение масштаба формы.
Twist – изменение вращения формы.
Teeter – вращает формы вокруг локальных осей формы. Повторяет возможности функции Contour, но основан на ручной настройке.
Bevel – позволяет создавать скосы и фаски между формами.
Fit – позволяет регулировать сплайны форм в виде кривых и точек. Это полезно, если использовались примитивы сплайнов и не конвертировались в Editable Spline. Чтобы начать редактирование нужно нажать Get Shape и выбрать сплайн формы.
Loft – великолепный инструмент, который помогает автоматически создавать объекты сложной формы. В своих настройках он невероятно гибок и имеет множество способов редактирования результата. Но чтобы в полной мере его оценить, нужно долго практиковаться и изучать работу функций. Тем не менее, знание этого инструмента сильно упростит и ускорит моделирование некоторых сложных объектов.
- 3D моделирование
3D-моделирование: полигональное, сплайновое и NURBS-моделирование
Для создания 3д-моделей автомобилей, персонажей, архитектуры, предметов интерьера, окружающей среды и других объектов дизайнеры и моделлеры используют разные способы моделирования. Методики применяются по отдельности или в комплексе в зависимости от поставленных задач.
В статье расскажем о том, какие способы 3д-моделирования существуют, в чем их особенности.
Полигональное моделирование
Одна из самых первых технологий создания 3D-моделей. В начале своего появления методика основывалась на вводе координат местонахождения точек. То есть у каждой точки есть три координаты по осям X, Y и Z. Вершины координат соединяются в ребра, которые образуют треугольник — полигон.
При этом полигон может иметь как три, так и четыре вершины:
- 3 вершины — триангулированный полигон.
- 4 вершины — квадриагнулированный полигон.
Объект может состоять из разных плоскостей. При этом независимо от количества вершин каждый полигон может обладать цветом и текстурой. При объединении полигонов образуется объект любой формы и сложности.
Когда полигоны соединяются между собой, то они образуют полигональную сетку (объект).
Но здесь возникает вопрос: как избавиться от граненных (слишком геометрических) краев объекта? Чтобы край был плавным или сглаженным, моделлеры используют очень маленькие полигоны. Чем меньше плоскость, тем более сглаженным будет край.
Также в полигональном 3D-моделировании существует два понятия:
- Низкополигональный объект — модель с небольшим количеством полигонов.
- Высокополигональный объект — модель, состоящая из большого количества плоскостей, что позволяет увеличивать изображение объекта.
Сегодня полигональная технология используется в создании компьютерных игр, сцен фильмов. Но она уже не так популярна и уступает место более совершенным методикам.
Сплайновое моделирование
В этой технологии не используются полигоны. Главный инструмент — это сплайн или трехмерная кривая. Чтобы создать сплайновую линию, модделер задает в пространстве точки. Каждая точка имеет свои координаты. И от заданного расположения будет зависеть, насколько гладкой получится кривая.
Сплайны формируют каркас, который огибает трехмерное тело. Каркас задает форму объекта, создает его поверхность.
Кроме сплайновых линий для формирования модели применяют базовые примитивы: дуги, спирали, прямоугольники, эллипсы, текст и прочие параметрические объекты.
Главное преимущество сплайна — гибкие настройки. При необходимости можно всегда изменить форму линии/примитива.
NURBS-моделирование
Технология NURBS, в отличие от полигональной, подразумевает применение B-сплайнов. То есть она позволяет создавать модели без острых краев. Форма получается плавной. Из-за этой особенности сегодня NURBS пользуется большой популярностью в создании органики: игровых персонажей, людей, животных и птиц, растений.
Форма создается с помощью кривых:
- P-кривые. Для их управления используются вершины (точки), которые находятся на поверхности самого объекта.
- CV-кривые. Для их управления используются точки, расположенные за пределами объекта.
Какую технологию выбрать?
Выбор способа 3D-моделирования зависит от поставленных задач:
- Тип объекта.
- Необходимость масштабирования модели.
- Степень точности модели.
Если перед моделлером стоит задача создать максимально точную модель, которая будет масштабироваться (приближаться), то он выбирает сплайновую технологию. Сплайн позволит добиться точности. При приближении модели ее качество будет всегда оставаться высоким.
Если используется сплайн, то точность создается еще на этапе прототипа.
В полигонах можно задавать степень детализации. Чем больше плоскостей, тем выше детализация. То есть если объект состоит из 260 полигонов, то детализация равняется 35 градусам. Если применяется более 1000 полигонов, то степень детализации составит 10 градусов. Однако даже при уменьшении модели будут видны «шероховатости» — угол между плоскостями.
Сохранение 3D-моделей происходит в двух форматах. На этапе прототипа применяется STL формат (полигональный). IGES (сплайновый) формат также можно использоваться при сохранении прототипа. Кроме того, IGES легко перевести в STL. Но преобразовать STL в IGES невозможно.
Если же требуется создать органический объект, то прибегают к технологии NURBS.
Какие программы используют для трехмерного моделирования?
Профессиональные разработчики используют для создания сцен фильмов, спецэффектов, компьютерных игры, рекламных роликов, VR-объектов разные программы: 3d Max, Maya, Softimage, Mudbox, ZBrush, Modo, Cinema 4D и другой софт.
Сегодня не обязательно тратить много времени и сил на создание трехмерных объектов. Скачать 3д-модель можно на онлайн-платформе 3Dbaza. Маркетплейс предлагает большой выбор уже готовых моделей в разных категориях от интерьера до архитектуры, персонажей, транспорта. Онлайн-платформа работает круглосуточно, а оплатить покупку цифрового контента можно банковскими картами на сайте.
Кроме того, у каждого пользователя платформы есть личный кабинет, где сохраняются все купленные модели.
Введение в 3D-моделирование
3D-моделирование
Моделирование — это процесс принятия формы и превращения ее в готовую трехмерную сетку. Наиболее типичный способ создания 3D-модели — взять простой объект, называемый примитивом, и расширить или «вырастить» его до формы, которую можно уточнить и детализировать. Примитивы могут быть чем угодно: от одной точки (называемой вершиной), двухмерной линии (ребра), кривой (сплайна) до трехмерных объектов (граней или многоугольников).
Используя специальные функции выбранного вами 3D-программного обеспечения, можно манипулировать каждым из этих примитивов для создания объекта. Когда вы создаете модель в 3D, вы обычно изучаете один метод создания своей модели и возвращаетесь к нему снова и снова, когда вам нужно создать новые модели. Есть три основных метода, которые вы можете использовать для создания 3D-модели, и 3D-художники должны понимать, как создавать модели с использованием каждого метода.
1. Сплайновое или патч-моделирование: Сплайн — это кривая в трехмерном пространстве, определяемая как минимум двумя контрольными точками. Наиболее распространенными сплайнами, используемыми в 3D-искусстве, являются кривые Безье и NURBS (программное обеспечение Maya имеет прочную основу для моделирования NURBS). Использование сплайнов для создания модели, возможно, является самой старой и традиционной формой доступного 3D-моделирования. Клетка сплайнов создается для формирования «каркаса» объекта, который вы хотите создать. Затем программное обеспечение может создать участок полигонов, который будет простираться между двумя сплайнами, образуя трехмерную оболочку вокруг фигуры. Сплайн-моделирование в наши дни не так часто используется для создания персонажей из-за того, сколько времени уходит на создание хороших моделей. Создаваемые модели обычно бесполезны для анимации без значительных модификаций.
Сплайн-моделирование используется в основном для создания твердых объектов, таких как автомобили, здания и мебель. Сплайны чрезвычайно полезны при создании таких объектов, которые могут представлять собой комбинацию угловатых и криволинейных форм. При создании 3D-сцены, требующей изогнутых форм, сплайн-моделирование должно быть вашим первым выбором.
2. Коробчатая лепка: Коробчатая лепка, пожалуй, самая популярная техника, очень похожая на традиционную лепку. В блочном моделировании вы начинаете с примитива (обычно куба) и начинаете добавлять детали, «разрезая» куб на части и расширяя грани куба, чтобы постепенно создать нужную форму. Люди используют блочное моделирование для создания базовой формы модели. После практики техника очень быстро дает приемлемые результаты. Недостатком является то, что этот метод требует много настроек модели на протяжении всего пути. Кроме того, сложно создать модель с топологией поверхности, подходящей для анимации.
Коробочное моделирование полезно для создания органических моделей, таких как персонажи. Специалисты по моделированию коробок также могут создавать твердые объекты, такие как здания, однако с помощью этой техники может быть сложнее создать точные изогнутые формы.
3. Полигональное моделирование / экструзия краев: Хотя начать работу с полигональным моделированием не так просто, оно, пожалуй, является наиболее эффективным и точным методом. При полигональном моделировании трехмерная сетка создается по точкам, лицом к лицу. Часто начинают с одного четырехугольника (трехмерного объекта, состоящего из 4 точек) и выдавливают край четырехугольника, создавая второй четырехугольник, прикрепленный к первому. Таким образом постепенно создается 3D-модель. Хотя полигональное моделирование не такое быстрое, как блочное моделирование, оно требует меньшей настройки сетки, чтобы получить ее «в самый раз», и вы можете заранее спланировать топологию анимации.
Разработчики полигональной модели используют эту технику для создания как органических, так и твердых объектов, хотя полигональное моделирование лучше всего подходит для органических моделей.
Рабочий процесс, который работает
Рабочий процесс, который вы выберете для создания модели, во многом будет зависеть от того, насколько вам удобно пользоваться данной техникой, какой объект вы создаете и каковы ваши цели в отношении конечного продукта.
Кто-то, кто создает архитектурную сцену, например, может создать базовые модели с кубами и другими простыми формами, чтобы создать план готового проекта. Затем сетки можно уточнять или заменять более детализированными объектами по мере продвижения проекта. Это организованный, хорошо спланированный способ создания сцены; это стратегия, используемая профессионалами, которая упрощает создание сцены. Новички, с другой стороны, склонны нырять с головой и сначала работать над наиболее подробными объектами. Это пугающий способ работы, который может быстро привести к разочарованию и подавленности. Помните, сначала сделайте набросок, а потом уточняйте.
Аналогичным образом, при создании органической модели новички, как правило, сначала начинают с наиболее детализированных областей, а оставшиеся части конкретизируют позже, случайный способ создания персонажа. Это может быть одной из причин, почему бокс-моделирование стало настолько популярным. Модельер может легко создать полную фигуру, прежде чем уточнять детали, такие как глаза, губы и уши.
Возможно, лучшей стратегией является использование гибридного рабочего процесса при создании органических моделей. Хорошо спланированная органическая модель создается с использованием комбинации блочного моделирования и полигонального моделирования. Руки, ноги и туловище можно набросать с помощью блочного моделирования, а мелкие детали головы, кистей и ступней можно смоделировать поли. Это компромисс, к которому стремятся профессиональные моделисты, чтобы не погрязнуть в деталях. Это может иметь значение между завершенным персонажем и тем, который никогда не раскрывается дальше головы. Новичкам было бы разумно последовать этому совету.
Топология сетки
Другим аспектом правильного рабочего процесса является создание модели с идеальной топологией трехмерной сетки. Оптимизация топологии обычно связана с созданием моделей, используемых в анимации. Модели, созданные без топологии, плавно перетекающей по кругу, могут анимироваться неправильно, поэтому важно планировать заранее при создании любого 3D-объекта, который будет использоваться для анимации.
Наиболее часто обсуждаемой топологией является правильное создание или размещение краевых петель. Edgeloop — это кольцо полигонов, размещенное в области, где модель может деформироваться, как в случае с анимацией. Эти кольца многоугольников обычно располагаются вокруг областей, где могут быть мышцы, например, в области плеча или локтя. Размещение эдегелопетли имеет решающее значение при создании граней. Когда реберные петли игнорируются, модели будут демонстрировать «разрывы» при анимации, и модель необходимо будет переработать или полностью отказаться от нее в пользу правильно спланированной модели.
Следующие шаги
Следующий шаг к созданию великолепных моделей — просто попрактиковаться и изучить работы художников, которыми вы восхищаетесь. Некоторые из лучших специалистов по 3D-моделированию также прекрасно рисуют карандашом и бумагой. Будет полезно потратить время, чтобы попрактиковаться в рисовании, независимо от того, являетесь ли вы создателем персонажей или хотите стать архитектором. Хорошее моделирование требует большой самоотверженности. Вам необходимо хорошо разбираться в программном обеспечении, которое вы используете, и в принципах создания хороших 3D-моделей, изложенных выше. Художникам персонажей нужно будет изучить пропорции и анатомию.
Поняв эти основы моделирования, вы избавите себя от множества разочарований и разочарований и станете успешным 3D-художником.
Ниже приведены несколько школ, которые предлагают соответствующие курсы 3D-моделирование .
Колледж цифровых медиаискусств
Программа BFA в области анимации направлена на подготовку художника к решению задач завтрашнего производственного рабочего места. Благодаря прочной основе традиционных изобразительных и исполнительских искусств студенты развивают свои навыки создания цифрового контента в рамках классических рамок. Во время этой программы студенты изучают базовые художественные навыки; включая иллюстрацию, живопись, фотографию, скульптуру и создание фильмов, в качестве предпосылок к столь же разнообразному основному учебному плану анимации.
Запишитесь на занятия в лабораториях и помещениях, созданных художниками. Учитесь у экспертов в области цифрового искусства. Работайте со стандартными отраслевыми инструментами анимации, 3D-программным обеспечением и технологиями обработки изображений, а также одной из немногих студий Motion Capture на юго-востоке США. был разработан, чтобы позволить начинающим дизайнерам видеоигр получить массу удовольствия, делая маленькие шаги к созданию изображений и анимации. С такими курсами, как Захват движения , 3D-анимация , Низкополигональное моделирование , Дизайн игровых уровней и Разработка персонажей, среди прочего, вы определенно на пути к заполнению портфолио, которое не только удивит ваших потенциальных работодателей, но и ваш будущий рынок, а также.
Программа Game Art & Design концентрируется на художественной стороне игр, а не на компьютерном программировании. Эта уникальная программа — ваш первый шаг к тому, чтобы стать художником и дизайнером в многомиллиардной индустрии игрового дизайна.
Сплайны | 3D-моделирование для программистов
Сплайн — это геометрический объект, который представляет собой одномерный объект (линию), где путь линии зависит от набора упорядоченных вершин.
В 3DS Max сплайны содержатся в объектах-примитивах, называемых фигурами . Как и у сеток, у форм есть редактируемые варианты, называемые Editable Splines ; как ни странно, редактируемый сплайн на самом деле является формой , а , а не , является сплайном 9.0090 . Это оставляет нам следующую иерархию:
- Форма : примитивный объект, содержащий 0 или более сплайнов
- Сплайн : линейный объект, содержащий набор вершин
- Вершина (известная как узел в 3DS Max): контрольная точка для сплайна, определяющая положение, через которое должен пройти сплайн . Также определяет стиль кривизны линии, проходящей через вершину .
В то время как вы можете легко создавать сплайны через пользовательский интерфейс, создавая линии или другие формы с панели команд, создание сплайнов в коде немного сложнее, хотя все еще легко. Далее мы будем использовать объект SplineShape
. Подробное описание всех функций см. в справочнике Autodesk Maxscript SplineShape
.
сплайнформа
Чтобы определить сплайн в Maxscript, нам сначала нужно создать форму. Это делается путем вызова splineShape
конструктор.
myShape = splineShape()
Это создаст новый объект SplineShape
и вернет его. Изначально форма не содержит сплайнов.
addNewSpline
Мы можем добавить к нему сплайны, вызвав addNewSpline
.
splineIdx = addNewSpline myShape
Нам нужно передать форму addNewSpline
, чтобы функция создала новый сплайн. Функция возвращает индекс вновь созданного сплайна. Это будет неоднократно использовано. Обратите внимание, что индекс первого сплайна в фигуре всегда равен 9.0115 1 , поэтому, если ваша фигура содержит только одну фигуру, можно безопасно передавать число 1 везде, где требуется индекс сплайна.
Обратите внимание, что вы можете добавить к фигуре столько сплайнов, сколько захотите. Как и SplineShape
, сплайн
изначально не содержит вершин (узлов).
добавить узел
Мы можем добавить узлы (вершины) к сплайну, вызвав функцию addKnot
.
node1Idx = addKnot myShape splineIdx #smooth #curve [0, 10, 0] node2Idx = addKnot myShape splineIdx #smooth #curve [0, 20, 0]
Это создаст 2 узла, первый из которых будет расположен по адресу [0, 10, 0]
, а второй — по адресу [0, 20, 0]
. Подобно addNewSpline
, addKnot
вернет индекс созданного узла.
Для этой функции требуются следующие параметры:
-
SplineShape
объект - Индекс сплайна для создания узла в
- Тип узла
- Тип кривой
- Позиция
Для справки, вот документация addKnot
:
addKnot <форма>\ (#гладкий | #угол | #bezier | #bezierCorner) \ (#кривая | #линия) \ [invec_point3 outvec_point3] \ [где_целое]
getKnotPoint
Для многих алгоритмов, использующих сплайны, вам потребуется получить положение узла. Это можно сделать, вызвав функцию getKnotPoint
.
node1Pos = getKnotPoint myShape splineIdx node1Idx node2Pos = getKnotPoint myShape splineIdx node2Idx
Изменение фигур
Объекты Shape принимают модификаторы, как и любые другие объекты в системе. Вы можете использовать это, чтобы сплайн соответствовал форме измененной геометрии, используя модификаторы. Например, если у нас есть блок с модификатором изгиба, и мы хотим провести сплайн через блок, соответствующий центральной линии блока, мы можем применить аналогичный модификатор изгиба к объекту.
После того, как вы создали нужные формы, вы можете свернуть их. Например:
-- Предположим, что sp1 является фигурой... -- Добавьте модификатор изгиба в sp1 addModifier sp1 (угол изгиба: 90) -- Свернуть sp1 в редактируемую форму укрытие sp1 Editable_Spline
addAndWeld
Чтобы соединить две фигуры вместе, используйте функцию addAndWeld
. Вот подпись:
addAndWeld
Форма назначения — это первый параметр, форма источника — второй параметр, а третий параметр — порог сварки; вершины, находящиеся в пределах порогового расстояния сварки, свариваются вместе.
Ограничение пути
После создания сплайна, которым мы довольны, мы можем использовать ограничение пути, чтобы получить объект для анимации поверх дорожки сплайна. Сделайте это, выбрав объект, затем добавив ограничение через Анимация -> Ограничения -> Путь
, затем выберите путь.
Вы можете изменить свойства этого ограничения, выбрав ограниченный объект и переключившись на вкладку движения (в сторону изменить 9вкладка 0068, похожа на колесо). Например, чтобы объект следовал за вращением дорожки, установите флажок Следовать за и установите соответствующую ось ниже.
ПРИМЕЧАНИЕ. Для вашего A3 убедитесь, что корневая кость следует по пути, а не по самому поезду.
Инструменты моделирования сплайнов — Видеоурок CINEMA 4D
Из курса: Cinema 4D R20 Essential Training: Motion Graphics
Инструменты моделирования сплайнов
“
— В предыдущем ролике мы видели, как объект выдавливания можно использовать для создания геометрии из сплайнов. В этом ролике мы будем работать с двумя другими генераторами сплайнов, а именно с токарным станком и лофтом, и начнем с объекта лофта. Лофт-объект создает сетку из двух или более сплайнов. Теперь, если вы придете и найдете его в меню здесь, вы можете увидеть, если посмотрите на все эти объекты здесь, значки на самом деле очень хорошо показывают, как работает инструмент, и поэтому стоит также отметить что лофт принимает только один сплайн для создания поверхности, точно так же, как вы можете установить движение экструдированного объекта равным 0. Итак, давайте создадим лофт-объект. И теперь то, что мы хотим сделать, это вот эти два круга, и вы можете видеть, что я пошел дальше и нарисовал эти сплайны в этих случаях здесь, и только что сгенерировал два круговых сплайна. Итак, у нас есть базовый профиль кофейной чашки. Мы собираемся использовать эти два круговых сплайна с лофт-объектом, и нам нужно просто поместить их в иерархию, чтобы мы могли это сделать. Здесь это наша верхняя часть, а это нижняя, и теперь вы можете видеть, что сетка создана. Таким образом, порядок сплайнов в лофт-объекте определяет последовательность их соединения. Давайте просто посмотрим; если мы просто увеличим масштаб здесь, вы увидите, что наше разрешение довольно низкое, мы, вероятно, захотим его увеличить, поэтому мы можем подойти к объекту лофта, а в нашем подразделении сетки U мы просто увеличим его до 60 , Мы получим хороший гладкий результат. Шапки тоже выключим. Мы собираемся свести их к нулю, и то, что это будет, похоже на внешнюю часть нашей кофейной чашки. Так что нам нужна какая-то губа, и, может быть, немного кофе. Итак, давайте посмотрим на объект токарного станка. Объект токарного станка вращает сплайн вокруг оси Y, поэтому важно создать профильный сплайн по оси XY или вид спереди, так что давайте просто переключимся на вид спереди и посмотрим, что у нас получилось. Мы просто отключим все, что нам не интересно. Итак, в точечном режиме, давайте просто посмотрим, что у нас есть. Мы немного увеличим масштаб и просто выберем чашку, и вы можете увидеть эту точку здесь, здесь мы начали наш сплайн. Итак, он находится на оси Y в точке 1,2, и важно то, что он находится на оси X в точке 0. Значит, это означает, что он будет вращаться, и в середине не будет дыры. Итак, мы просто вытащили остальную часть этого, и я думаю, что нам нужно сделать это на токарном станке, чтобы мы могли видеть, что происходит. Итак, мы вернемся в вид в перспективе и возьмем токарный станок, удерживая нажатой клавишу Alt, потому что у меня выбрана кофейная чашка, если мы создадим токарный станок, вы можете видеть, что он сразу же вращается вокруг сплайна профиля, который мы ему дали. И снова мы придем сюда и установим более высокий уровень подразделения. Мы будем соответствовать тому, что у нас было раньше, так что 60. Итак, если мы также включим лофт, вы увидите, что это будет внешний материал, который мы можем использовать, если просто добавим сюда новый материал. Теперь то, что мы, вероятно, хотим сделать, мы также можем видеть здесь любые ошибки. Это просто дает нам шанс исправить это, и вы можете просто сделать это немного, и я думаю, что внизу тоже. Что-то вроде того; наверное даже ходить меньше то что? Да, пункт 2 работает. Делая это, вы также можете исправить любые перекрывающиеся полигоны, и я думаю, что мы просто сделаем то же самое и для нашего кофе. Итак, вы можете видеть на виде спереди, если мы просто отключим это, это будет похоже на соединение сплайнов профиля в плоскости xy, убедившись, что наша начальная точка находится в 0, а эта конечная точка в 0 также, сплайн открыт, это тоже очень важно, и давайте еще раз воспользуемся токарным станком. Убедитесь, что сплайн включен, и теперь вы можете увидеть, увеличим ли мы разрешение снова до 60. Мы сохраним ограничения на это. На самом деле это будет напиток, кофе. Если мы просто включим все обратно, вы сможете понять, как это может начать выглядеть, и просто нарисовать несколько сплайнов довольно просто. Кроме того, если вы используете объекты генератора сплайнов, которые вы можете найти здесь, вы можете просто увеличить радиус, как мы сделали позже, мы внесли некоторые изменения в модель на основе новой информации, полученной при добавлении токарного станка.