Что такое нормаль в 3d
Перейти к содержимому

Что такое нормаль в 3d

  • автор:

Это норма: что такое карты нормалей и как они работают

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

Большинство найденных объяснений было слишком техническим, неполным или чересчур сложным для моего понимания, поэтому я решил попробовать объяснить собранную мной информацию. Я понимаю, что эти объяснения могут быть неполными или не совсем точными, но всё равно попробую.

Первые созданные человеком 3D-модели выглядели примерно так:

image

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

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

image

Требовалось другое решение, и так были изобретены нормали. (Всё происходило не совсем так, но так проще объяснять и понимать.)

Давайте проследим за линией из центра полигона, перпендикулярной его поверхности. Мы дадим этой линии очень непривычное название: нормаль. Цель нормали — контролировать, куда указывает поверхность, чтобы когда свет отразиться от этой поверхности, она могла использовать нормаль для вычисления получившегося отражения. Когда свет падает на полигон, мы сравниваем угол луча света с нормалью полигона. Луч отражается под тем же углом относительно направления нормали:

image

Другими словами, отражение света будет симметрично относительно нормали полигона. Именно так работает большинство отражений в реальном мире. По умолчанию лучи света отражаются от всех полигонов совершенно перпендикулярно к их поверхности (как должны это делать в реальной жизни), потому что нормали полигона по умолчанию перпендикулярны к поверхности полигона. Если в нормалях будут пробелы, то мы увидим их как отдельные поверхности, поскольку свет отразится в одном или другом направлении.

image

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

image

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

Именно этим мы управляем, задавая smoothing groups (3ds Max, Blender) или указывая рёбра как hard или smooth (Modo, Maya): мы сообщаем программе, какие переходы между гранями должны быть плавными, а какие — жёсткими.

Вот сравнение одной сферы из 288 полигонов с жёсткими и плавными переходами:

image

Потенциально мы можем задать нечто вроде параллелепипеда, чтобы все его вершины имели усреднённые нормали. 3D-редактор будет стремиться сгладить его поверхность, чтобы она выглядела как единая плавная поверхность. Для 3D-редактора это вполне логично, но выглядит очень странно, потому что у нас есть объект, который очевидно должен иметь несколько отдельных поверхностей (каждая грань параллелепипеда), однако программа пытается показать их как одну плавную поверхность.

image

Именно поэтому в 3D-редакторах обычно есть параметр углов сглаживания: если у нас есть два связанных полигона под углом, превышающем угол сглаживания, то их переход будет плавным, а соединение полигонов под углом меньше угла сглаживания будет жёстким. Благодаря этому крутые углы между поверхностями будут отображаться как разные поверхности, как это и бывает в реальном мире.

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

Так как мы меняем способ отражения света от объекта, можно также сделать так, чтобы очень простой объект отражал свет, как сложный. Это называется картой нормалей. Мы используем текстуру для изменения направления света, отражающегося от 3D-объекта, заставляя его выглядеть сложнее, чем он есть на самом деле.

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

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

С каждой вершиной может быть связано одна или несколько нормалей. Если она имеет одну нормаль, то можно назвать её усреднённой нормалью вершины, а если несколько — то разделённой нормалью вершины.

Давайте возьмём два полигона, соединённых ребром. Если переход между двумя гранями плавный (если мы указали его как плавный в Maya/Modo, или обе имеют одинаковую smoothing group в Max/Blender), то каждая вершина имеет одну нормаль, которая является средней нормалей полигонов (поэтому она и называется усреднённой нормалью вершины). Важное примечание: до недавнего времени каждый 3D-редактор использовал собственный способ вычисления усреднённых нормалей вершин, то есть карты нормалей, вычисленные в одной программе, в другой могли выглядеть совершенно иначе. Подробнее об этом я расскажу во второй части туториала.

image

Если переход жёсткий (hard edge или разные smoothing groups), то каждая вершина имеет несколько нормалей: по одной для каждой соединённой вершины, выровненной по их нормалям. При этом между нормалями образуется пробел, который выглядит как две разные поверхности. Именно это называется разделённой нормалью вершины.

image

image

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

При запекании карты нормалей мы по сути говорим программе изменить направление, которому следуют нормали lowpoly-модели, так, чтобы они соответствовали направлению в highpoly-модели; поэтому lowpoly-модель будет отражать свет так же, как highpoly. Вся эта информация хранится в текстуре под названием «карта нормалей». Давайте рассмотрим пример.

Допустим, у нас есть вот такая низкополигональная модель (lowpoly). Плоская поверхность с четырьмя вершинами и настроенными UV, которые программа запекания будет использовать для создания карты нормалей.

image

И она должна получить информацию о нормалях от этой высокополигональной (highpoly) модели, нормали которой сложнее.

image

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

Программа запекания берёт lowpoly-модель и испускает лучи, следуя по направлениям нормалей lowpoly (именно поэтому нам нужно контролировать нормали lowpoly). Эти лучи имеют ограниченную длину чтобы не получать информацию нормалей от далёких граней (обычно это расстояние называется bake distance или cage distance). Когда эти лучи сталкиваются с highpoly, программа запекания вычисляет, как отразить эти лучи, чтобы они следовали по направлению нормалей highpoly, и сохраняет эту информацию в карту нормалей.

image

Вот результат запекания для нашего примера:

image

У нас есть текстура, которую движок использует для изменения нормалей lowpoly, чтобы свет отражался от этой lowpoly-модели так же, как он отражался бы от highpoly-версии. Не забывайте, что это только текстура, которая не влияет на силуэт lowpoly-модели (невозможно изменить способ отражения света от модели, если свет не падает на эту модель).

Хотя понятно, что можно «считать» внешний вид highpoly по внешнему виду карты нормалей, очевидно, что карты нормалей — это не обычные текстуры, потому что они хранят информацию не о цвете, а о нормалях. Также это значит, что карты нормалей нельзя рассматривать как обычные текстуры; к тому же, как мы увидим, они обладают особыми параметрами сжатия и гамма-коррекции.

Можно воспринимать карту нормалей как набор из трёх текстур в оттенках серого, хранящийся в одном изображении:

image

Первое изображение сообщает движку, как эта модель должна отражать свет, падающий справа; оно хранится в красном канале текстуры карты нормалей.

Второе изображение сообщает движку, как модель должна отражать свет, падающий снизу*; оно хранится в зелёном канале текстуры карты нормалей.

*В некоторых программах свет падает не снизу, а сверху, то есть могут быть «левосторонние» и «правосторонние» карты нормалей. Как мы увидим позже, это может вызывать некоторые проблемы.

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

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

Нормали — это векторы, которые используются для определения того, как свет отражается от поверхности. Их можно использовать для контроля над переходом между гранями (усреднением нормалей соединённых вершин для создания плавного перехода или разделением их для создания жёсткого перехода), но также их направление можно изменять, чтобы lowpoly-модель отражала свет так же, как более сложная модель.

Эта информация хранится в трёх отдельных каналах изображения, и 3D-редактор считывает её, чтобы понять, в каком направлении должна смотреть поверхность модели.

В следующей статье цикла мы поговорим о том, как можно запекать эти детали из highpoly-модели в lowpoly.

  • карты нормалей
  • запекание нормалей
  • 3d-редакторы
  • normal mapping
  • Работа с 3D-графикой
  • Разработка игр

Что такое нормаль в 3d

На форуме периодически возникают вопросы по поводу использования нормалок, потому решил напcиать небольшой ликбез на эту тему.

Простыми словами нормаль — это направление куда «смотрит» вертекс. Выражается в координатах XYZ для каждого вертекса. С помощью нормалей формируютя группы сглаживания или хард/софт эджи, которые, в свою очередь, задают характер «поверхности» полигонов.

Редактирование нормалей позволяет расширить возможности моделирования. К примеру плоскую поверхность можно сделать визуально фигурной либо наоборот.

Абсолютно идентичные по геометрии плоскости, но имеющие разные нормали на вертексах.

Так же можно сделать обьемную форму визуально плоской, выровняв нормали в одном направлении

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

Это проблему решает карта нормалей, которая содержит в каждом пикселе координаты нормали, закодированные в RGB каналах в виде координат XYZ. Такая карта огранчиена уже количеством пикселей, а это более милиона при разрешении 1024х1024, что во много раз превышает количество вертексов и позволяет добавить более подробные детали на поверхность.

Таким образом Normal Map коллосально расширяет возможности детально прорабатывать относительно «легкие» модельки. Однако возникает вопрос, как эту нормалку получить.

Самый верный и правильный способ, это «запекание» с более детальной модели. Процесс запекания кодирует нормали с хайполи модели в координаты RGB, учитывая так же нормали самой лоуполи, так называемая «компенсация».

О бейке нормалей есть полно информации и это достаточно обьемная тема тянет на отдельную статью, потому ограничусь основными моментами.

Для корректного запекания нужна хорошая UV мапа. Основное правило простое, все харды (или грани между группами сглаживания) обязательно должны иметь разрез на UV, иначе будет виден шов. Можно запечь на модель с одной группой сглаживания и забить на швы в нужных местах, но тогда нормалка будет с жуткими градиентами (та самая компенсация нормалей лоуполи) что в дальнейшем обязательно вылезет боком. Чем меньше градиенты на нормалке, тем с ней легче работать. При подготовле лоуполи нужно настроить группы сглаживания, сделать разреры ЮВ по нужным граням, и уже потом продолжать резать по необходимости.

Готовую нормалку нельзя корректировать как обычную текстуру, любые манипуляции с яркостью, насыщенностью, контрастом и прочее нарушат те самые RGB координаты, и нормалка будет отображаться некорректно. Подрисовывание возможно, но требуется опыт.

При загрузке нормалки нужно обязательно учитывать гамма коррекцию (sRGB) Для нормалки она не используется.

Normal Map имеет два формата: OpenGL и DirectX, которые различаются направлением зеленого канала. Потому обязательно учитывайте какой формат используется вашим рендер движком. Во всех современных движках есть параметр, флипающий зеленый канал без использования сторонних редакторов.

На этом все. Вопросы приветствуются, при необходимости могу дополнить статью или написать новую.

Творческих успехов всем!

Современная терминология 3D графики — Normal Mapping

Нормалмаппинг — это улучшенная разновидность техники бампмаппинга, описанной ранее, расширенная ее версия. Бампмаппинг был разработан Блинном (Blinn) еще в 1978 году, нормали поверхности при этом методе наложения рельефа изменяются на основе информации из карт высот (bump map). В то время как бампмаппинг всего лишь изменяет существующую нормаль для точек поверхности, нормалмаппинг полностью заменяет нормали при помощи выборки их значений из специально подготовленной карты нормалей (normal map). Эти карты обычно являются текстурами с сохраненными в них заранее просчитанными значениями нормалей, представленными в виде компонент цвета RGB (впрочем, есть и специальные форматы для карт нормалей, в том числе со сжатием), в отличие от 8-битных черно-белых карт высот в бампмаппинге.

В общем, как и бампмаппинг, это тоже «дешевый» метод для добавления детализации к моделям сравнительно низкой геометрической сложности, без использования большего количества реальной геометрии, только более продвинутый. Одно из наиболее интересных применений техники — существенное увеличение детализации низкополигональных моделей при помощи карт нормалей, полученных обработкой такой же модели высокой геометрической сложности. Карты нормалей содержат более подробное описание поверхности, по сравнению с бампмаппингом и позволяют представить более сложные формы. Идеи по получению информации из высокодетализированных объектов были озвучены в середине 90-х годов прошлого века, но тогда речь шла об использовании для Displacement Mapping. Позднее, в 1998 году, были представлены идеи о перенесении деталей в виде карт нормалей от высокополигональных моделей в низкополигональные.

Normal Mapping

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

Карты нормалей обычно создаются на основе двух версий модели, низко- и высокополигональной. Низкополигональная модель состоит из минимума геометрии, основных форм объекта, а высокополигональная содержит все необходимое для максимальной детализации. Затем, при помощи специальных утилит они сравниваются друг с другом, разница рассчитывается и сохраняется в текстуре, называемой картой нормалей. При ее создании дополнительно можно использовать и bump map для очень мелких деталей, которые даже в высокополигональной модели не смоделировать (поры кожи, другие мелкие углубления).

Карты нормалей изначально были представлены в виде обычных RGB текстур, где компоненты цвета R, G и B (от 0 до 1) интерпретируются как координаты X, Y и Z. Каждый тексель в карте нормалей представлен как нормаль точки поверхности. Карты нормалей могут быть двух видов: с координатами в model space (общей системе координат) или tangent space (термин на русском — «касательное пространство», локальная система координат треугольника). Чаще применяется второй вариант. Когда карты нормалей представлены в model space, то они должны иметь три компоненты, так как могут быть представлены все направления, а когда в локальной системе координат tangent space, то можно обойтись двумя компонентами, а третью получить в пиксельном шейдере.

Bump Maps - Normal Maps

Современные приложения реального времени до сих пор сильно проигрывают пререндеренной анимации по качеству изображения, это касается, прежде всего, качества освещения и геометрической сложности сцен. Количество вершин и треугольников, рассчитываемых в реальном времени, ограничено. Поэтому очень важны методы, позволяющие снизить количество геометрии. До нормалмаппинга были разработаны несколько таких методов, но низкополигональные модели даже с бампмаппингом получаются заметно хуже более сложных моделей. Нормалмаппинг хоть и имеет несколько недостатков (самый явный — так как модель остается низкополигональной, это легко видно по ее угловатым границам), но итоговое качество рендеринга заметно улучшается, оставляя геометрическую сложность моделей низкой. В последнее время хорошо видно увеличение популярности данной методики и использование ее во всех популярных игровых движках. «Виной» этому — комбинация отличного результирующего качества и одновременное снижение требований к геометрической сложности моделей. Техника нормалмаппинга сейчас применяется почти повсеместно, все новые игры используют ее максимально широко. Вот лишь краткий список известных ПК игр с использованием нормалмаппинга: Far Cry, Doom 3, Half-Life 2, Call of Duty 2, F.E.A.R., Quake 4. Все они выглядят намного лучше, чем игры прошлого, в том числе из-за применения карт нормалей.

Quake 4 UT2007

Есть лишь одно негативное последствие применения этой техники — увеличение объемов текстур. Ведь карта нормалей сильно влияет на то, как будет выглядеть объект, и она должна быть достаточно большого разрешения, поэтому требования к видеопамяти и ее пропускной способности удваиваются (в случае несжатых карт нормалей). Но сейчас уже выпускаются видеокарты с 512 мегабайтами локальной памяти, пропускная способность ее постоянно растет, разработаны методы сжатия специально для карт нормалей, поэтому эти небольшие ограничения не слишком важны, на самом деле. Гораздо больше эффект, который дает нормалмаппинг, позволяя использовать сравнительно низкополигональные модели, снижая требования к памяти для хранения геометрических данных, улучшая производительность и давая весьма достойный визуальный результат.

Меню

  • VJ новости
    • VJ события
    • новости VJ программ
    • Новости VJ видео
    • Новости VJ железа
    • Видео инсталляции
    • Остальные новости

    «Ненормальные» нормали

    Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

    Отписаться от уведомлений вы всегда сможете в профиле автора.

    Типовой диалог с заказчиком, который принес «готовую к печати» модель.

    — Вы говорите, что подготовили 3D модель для печати? Но у Вас тут нормали перевернутые…

    — Нормали? Какие «нормали»? Вы о чем?

    Если Вы знаете, что такое «нормали», то можете дальше не читать – эта статья не для Вас.

    Плоскость однозначно определяется тремя точками. Нормаль – это вектор, перпендикулярный плоскости. Направление вектора определяется по «правилу буравчика» (оно же «правило винта», «правило штопора», «правило правой руки» и т.д. – кому что ближе и понятнее).

    «Ненормальные» нормали

    Иными словами, если смотреть на треугольник и «обходить» его вершины против часовой стрелки, то вектор будет направлен к нам, а видимая поверхность треугольника называется лицевой. Если обходить вершины треугольника по часовой стрелке, то вектор будет направлен от нас, видимая сторона называется оборотной или изнанкой.

    Файлы формата stl описывают твердые тела, поверхность которых является набором треугольников, у которых нормали должны быть направлены наружу — из тела модели

    «Ненормальные» нормали

    Очень много моделей, которые приносят дизайнеры, непригодны для печати на 3D принтерах из-за «легкомысленного» отношения к нормалям. К сожалению, это заблуждение присуще и начинающим дизайнерам, и дизайнерам, которые уже много лет создают 3D модели, но не сталкивались с 3D печатью на принтерах, а потому у них не было острой необходимости задумываться о нормалях и перевернутых гранях.

    Далеко не все пакеты 3D моделирования имеют удобные средства отслеживания правильности расположения нормалей и перевернутые грани довольно трудно разглядеть. Вот, например, картинка из SketchUp. Перевернутая грань чуть темнее, чем лицевая (рис. слева).

    «Ненормальные» нормали

    Вам плохо видно? Мне тоже. Ситуацию можно улучшить, изменив цвет отображения перевернутых граней в настройках SketchUp. Теперь лучше? (рис. справа)

    Ошибки, возникающие от перевернутых граней, проявляются при соединении/вычитании объектов. На рисунке слева приведены два объекта с разной ориентацией граней (у серого куба правильно – нормали наружу, у желтого неправильно – внутрь). Соединим два куба вместе с небольшим перекрытием. Получился параллелепипед (рисунок справа), который на экране выглядит правильным.

    «Ненормальные» нормали

    Давайте попробуем его напечатать на принтере. Как видим, объект «развалился» на две части именно из-за перевернутых граней.

    «Ненормальные» нормали

    Предусмотреть все случаи, когда могут возникать перевернутые нормали (перевернутые грани) невозможно. Но наиболее часто источниками появления перевернутых граней являются:

    • Повороты фигур и последующее выдавливание, а также очередность таких операций
    • Использование разных методов создания объектов в одной модели
    • Ручное «заполнение дырок», образующихся на поверхности на разных этапах моделирования.

    Повороты фигур и выдавливание

    Создадим модель «условной» арки. Поскольку арка должна получиться симметричной относительно вертикальной оси, то логично нарисовать одну половину, а вторую получить зеркальным отражением первой. Затем соединить обе части.

    «Ненормальные» нормали

    На рис. A нарисована двумерная фигура для левой части арки. Далее копируем фигуру, зеркально отображаем ее и присоединяем к первой с небольшим перекрытием (рис. B). Обратите внимание: после зеркального поворота у желтой фигуры нормали повернуты в другую сторону! (рис. C). Если теперь выдавить объединенную фигуру на нужную толщину, то левая и правая части будут иметь нормали, направленные в разные стороны — у левой части внутрь тела, а у правой наружу (рис. D).

    «Ненормальные» нормали

    Внешне модель будет выглядеть абсолютно корректно (рис. E), а принтер напечатает ее вот так (рис. F).

    «Ненормальные» нормали

    • После зеркального отображения сначала перевернуть нормали у одной из фигур, а потом выдавить
    • Выдавить до объединения отдельно левую и правую (зеркальную) фигуры и получить два объекта. Затем выделить левый объект и перевернуть нормали наружу, после чего соединить два объекта
    • Не создавать зеркальную фигуру, а выдавить левую фигуру и получить объект. Потом сделать копирование и зеркальный поворот объекта, а затем соединить оба объекта

    Большинство пакетов 3D моделирования имеют несколько методов создания моделей. Один из них – это проектирование из готовых базовых объектов типа параллелепипед, цилиндр, сфера, конус, призма, тор и т.д. Как правило, при генерации таких объектов разработчики позаботились о том, чтобы нормали у таких объектов были направлены правильно, наружу (рис. слева).

    «Ненормальные» нормали

    Другой метод – это создание двумерных фигур тем или иным способом и последующее выдавливание по третьей оси или по заданному пути для получения трехмерного объекта (рис. справа). В этом случае направление нормалей зависит и от алгоритмов работы пакета и от последовательности Ваших действий. Например, в нашем пакете при выдавливании фигуры по заданному пути нормали у тела направлены внутрь, а у созданной торцевой грани — наружу.

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

    Ручное «заращивание» дырок поверхности

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

    Существует много программ, которые позволяют находить и исправлять перевернутые грани. Например, netfabb, meshlab, meshmixer и другие. Некоторые программы моделирования имеют встроенные средства проверки поверхности перед экспортом в stl файл. Но для сложных поверхностей алгоритмы этих программ не всегда могут найти и исправить все перевернутые нормали. Поэтому лучше следить за правильным расположением нормалей с самого начала при создании объектов. Ведь все знают, что запутать веревку можно за несколько секунд, а распутывать её потом можно часами.

    Если Вы хотите сами подготовить модель для печати на 3D принтере, то рекомендуем установить у себя на компьютере любую программу для 3D-печати, например, Cura (последняя стабильная версия на момент написания статьи v.15.04). Загрузите в нее Вашу модель и посмотрите послойно, как будет печататься Ваша «полностью подготовленная к печати» модель.

    И если Ваш принтер вместо прямоугольной рамки (рис. слева) собирается печатать вот такую ерунду (рис. справа),

    «Ненормальные» нормали

    не спешите кричать, что компьютер «глючит» или что принтер «сошёл с ума». Посмотрите внимательно – может у Вашей модели «ненормальные» нормали?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *