Моделирование низкополигонной шестерёнки

Эта фигура должна быть строго геометрической, поэтому таскание точек мышью туда-сюда недопустимо. Обойдёмся без этого.

Полученную модель можно загрузить здесь : chesterenka_step_by_step.zip. В разных мешах находятся разные этапы моделирования шаг за шагом. Открывайте её в редакторе и смотрите как чего делалось.

  1. Выполняем рутинные начальные действия:
    1. Создаём новую модель. File->New.
    2. Создаём один Mesh Model->Mesh->Insert. Кликаем по нему, чтобы выбрать.
    3. Создаём один фэйс Model->Face->Insert. Выбираем его.
    4. Создаём одну материю. Material->Insert. Выбираем её.
    5. Грузим текстуру Material->Load Texture. Допустим вот такую :

      Выбираем её.
    6. Ставим галочку, Model->Texture Enable, чтобы текстура включилась.
    7. Выбираем эту текстуру в созданной фэйс группе. Model->Face->Material.
  2. Создаём примитив Куб.
    1. Primitives->Type->Box.
    2. Выставляем ему позицию Primitives->Position->X = 2 чтобы он был смещён от центра на 2 единицы. Это будет наш первый зуб шестерёнки.
    3. Нажимаем кнопку Create Primitives->Create. Появляется куб.
  3. Создаём второй зубец.
    1. Для этого переключаемся в режим треугольников кнопкой F1 или через меню. Включаем режим Select All кнопкой F2, чтобы выделялись не только видимые треугольники, а вообще все попавшие в выделенную область. Нажимаем кнопку Shift, и выделяем рамкой созданный куб. После этого все его треугольники выделяются.
    2. Теперь нажимаем на Model->Triangles->Clone и все выделенные треугольники будут клонированы. Если заглянуть теперь в список треугольников Model->Triangles, то будет видно, что треугольников в нём стало вдвое больше, и вновь добавленные в конец списка оказались выделены.
    3. Далее надо выделить точки только что клонированных треугольников. Для этого сначала снимаем выделение со всех уже выделенных точек кнопкой Deselect/Selec All Model->Points->Deselect/Selec All, , для того, чтобы не манипулировать с не имеющими отношения к делу И жмём на Select points of selected triangles. Model->Triangles->Select points of selected triangles При этом выделятся точки принадлежащие выделенным треугольникам, и теперь мы можем перейти к непосредственным манипуляциям с ними.
    4. Включаем закладку Points ( если она ещё не включена ), выбираем под ней закладку all, для манипуляций со всеми выделенными точками. В данном случае нам нужно повернуть выделенные точки, относительно центра будущей шестерёнки, то есть относительно точки (0, 0, 0) на 60 градусов. Для этого ставим галочку Point. Это означает, что вращение будет происходить относительно заданной точки, а не относительно общего центра выделенных точек или их центра масс. Чтобы задать центр вращения идём в меню Edit->User point->Set position. И выставляем (0, 0, 0).
    5. Теперь возвращаемся к окошку Model->Points->All кликаем на окошко Rotate->Z, нажимаем Shift и вращаем ролик мыши на 6 позиций. Это будет соответствовать 60 градусам. Всё. Второй зуб шестерёнки на своём месте. Если бы мы не нажимали Shift, то поворот был бы на 6 градусов. Если бы вместо Shift нажали на Ctrl, то на 0.6 градусов. А если бы Shift+Ctrl, то на 0.06 градусов. Также при помощи сочетаний этих клавиш можно регулировать степень воздействия и в других окошках закладки all. Если же нужно задавать более тонкие значения, то можно нажать на окошке правую кнопку мыши, и установить их через меню.
  4. Повторяем предыдущий пункт четыре раза, чтобы сделать все шесть зубов шестерёнки. Возможно это может показаться слишком сложным, но при понимании что и зачем делается, и при некоторой привычки, всё происходит довольно быстро.
    Клонируем, деселект поинтс, селект поинтс выделенных треугольников, вращаем роликом мыши.
  5. Создание диска.
    1. Сделав зубы шестерёнки из шести кубов, надо заняться созданием её диска. Для этого выделяем внутренние верхние точки кубов. Всего их 12. Где верх, где низ в данном случае не важно, так как потом мы сделаем тоже самое и с другой стороны. Для выделения точек нужно переключиться в режим точек кнопкой F1 и кликать по ним левой кнопкой мыши с нажатым Shift. Точность попадания мышью в точку при этом задаётся в меню Edit->Points selections size. Чтобы снять выделение с точки нужно кликнуть по ней правой кнопкой мыши. Также можно не кликать, а выделять точки рамкой.
    2. Выбрав 12 точек, жмём на кнопку Model->Points->Delaunay. К сожалению не знаю ни как это слово переводится на русский, ни как произносится по-английски. Если кто знает - напишите. Так вот, этот алгоритм по имеющимся точкам создаёт поверхности. Но так как он ориентирован на двухмерное пространство нам надо указать ему плоскость в которой должна находится создаваемая нами поверхность. То есть выбираем X-Y и нажимаем на Ok. И вот поверхность диска создана. Чтобы посмотреть её в треугольниках надо нажать F5.
      Если вы не знаете куда смотрит нормаль, то можно экспериментировать нажимая Ctrl+Z, чтобы вернутся на шаг назад, если получилось плохо, и повторить действие ещё раз. Также можно сделать Delaunay на плоскость камеры, предварительно расположив её так, чтобы все точки могли на неё проецироваться.
  6. Проделываем предыдущий пункт с нижними внутренними точками кубов, чтобы сделать вторую половину диска. Быстро снять выделение со всех точек можно кликнув средней кнопкой мыши с нажатой клавишей Shift. В режиме треугольников также снимается выделение с треугольников.
  7. Отекстуривание диска.
    1. Теперь полученный диск нужно отекстурить. Для этого выделяем все треугольники диска, так как именно их мы будем отекстуривать, и переключаемся в редактор текстуры кнопкой F4.
    2. Когда включён редактор текстуры, то становится доступна закладка Rect, расположенная радом с закладкой all. то есть Model->Texture coord->Rect. Rect - это рамка ограничивающая область в которой мы будем располагать точки текстурируемого объекта. Зададим ей размер побольше. Что-нибудь типа ( -1.5, 1.5, 1.5, -1.5 ). И нажимаем на кнопку Reposit selected points Model->Texture coord->Rect->Reposit selected points. На вопрос о нормали указываем Z up. Всё. Текстурные координаты выделенных треугольников расположились в заданной области. И мы можем кнопкой F4 вернуться из редактора текстуры в редактор модели и посмотреть на отекстуренный диск.
  8. Теперь у нас есть диск и зубцы, но между зубцами есть промежутки и их надо заделать. Для этого переходим в режим точек. Снимаем выделения со всех точек. И выделяем только 4 точки обозначающие пространство между какими-нибудь двумя зубцами. Жмём на кнопку
    Delaunay ...
    Create triangles from selected points
    , ( эта опция создаёт треугольник, если выделено три точки, четырёхугольник, если выделено четыре или поверхность из треугольников по алгоритму Delaunay, если выделено больше ) и у нас появляется четырёхугольник с углами из выделенных четырёх точек, таким образом дыра закрывается. Если при нажатии на кнопку держать нажатым Shift, то созданный четырёхугольник будет отекстурен всей тексутрой полностью. При использовании этой опции нормаль создаваемого четырёхугольника всегда смотрит на камеру.
  9. Повторяем предыдущее действие пять раз, со всеми оставшимися дырами.
  10. Шестерёнка готова, но у нас остался небольшой брак, в виде внутренних поверхностей кубов. Но их легко удалить. Выделяем их все мышью, и жмём на Model->Triangles->Delete .
    Есть также и другой способ. Можно выделить все видимые треугольники, поворачивая модель к камере разными сторонами, и обводя её рамкой . Потом нажать на Model->Triangles->Invert selection ( инвертировать выделение ) и нажать на Model->Triangles->Delete чтобы удалить все невидимые треугольники.

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

Результат:

точек48
треугольников96
текстурных координат16
размер ( байт )1544
загрузитьgearwheel.zip

Модель шаг за шагом : chesterenka_step_by_step.zip.
В разных мешах - разные этапы создания модели.


P.S. В качестве дополнения из середины шестерёнки можно вырезать треугольник. Делается это так:

  1. Включаем треугольники кнопкой F5. Выделяем пару находящихся в центре шестерёнки, бок о бок друг с другом треугольников, и нажимаем на кнопку Turn edge of 2 selected jont triangles. В результате общая грань у них меняется. И таким образом, пользуясь этой опцией, нужно добиться, чтобы в центре появился большой равносторонний треугольник.
  2. Выделяем этот треугольник, и жмём на кнопку Model->Triangels->Build countur. Благодаря ей треугольник можно вдавить внутрь и создать таким образом внутреннее пространство треугольника.
    В появившемся окне нужно указать ось -Z, так как вдавливаем вниз, и величину вдавливания - один. Так как толщина шестерёнки равна единице.
  3. Удаляем треугольник Model->Triangles-Delete.
  4. Повторяем пункт 1, чтобы получить снизу такой же треугольник как и сверху. После чего удаляем центральный треугольник.

©  LODka3D  2006
Hosted by uCoz