Редактор 3D-объектов

Для создания простых 3d-объектов не нужно создавать сложного редактора, и поэтому не нужны сотни модификаторов и интерфейсных элементов. В идеале можно обойтись 3-4 инструментами. Сформулировал необходимые требования, текстурирование не учел, это отдельная тема. Если вы видели какие-то удобные фишки в других редакторах, скажите.

Во первых должны быть оси, на основе которых можно будет алигноваться.
01.gif

Рисование формы объекта. При рисовании линии/простой геометрической формы отображается ее размер. Линии изначально располагаются вдоль осей. При рисовании равносторонняя форма обозначается диагональным пунктиром.
02.gif

Возможно выделение и выдавливание поверхности. Выдавливаемая поверхность параллельна своему родителю.
03.gif

При ведении курсором по линиям/граням подсвечивается их центр.
04.gif

Линия, разрез плоскости ведется параллельно соседним граням, перпендикулярно грани, от которой ведется или снапиться к точкам. Кроме того в снапинге учитываются углы в 90, 45, 30 градусов.
05.gif
06.gif

Выделяться для перемещения могут поверхности, линии граней, точки. Их перемещение происходит с учетом осей или соседних граней. Т.е. в этом случае грань перемещается вниз-вверх. Если бы куб был наклонен, то грань перемещалась бы с учетом угла его граней. При близости к соседней параллельной грани они снапятся. Если отпустить кнопку мыши образуют единую грань.
07.gif

Естественно может выделяться по нескольку точек-граней-поверхностей.
08.gif
11.gif

Выдавливание образует новый ряд поверхностей. Для простого увеличения размера поверхность достаточно перетащить. Поверхность можно масштабировать относительно ее центра или любого из углов. В этом случае относительно нижнего правого.
09.gif

Разрезание поверхностей происходит относительно ее угла наклона. Т.е. линия разреза рисуется на ней.
10.gif

Несколько соседних поверхностей выдавливаются относительно общего центра. Не имеющие общих граней — каждый относительно своего.
12.gif

Поверхность и линию можно скопировать и вставить. При соединении плоскости ее точки снапятся к ближайшим точкам. Так же как и грани к граням.
13.gif

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

Выдавливание внутрь при пересечении с противоположной стороной объекта образует сквозной проем. В этом случае выдавливания за пределы объекта нет.
15.gif

И естественно дробление поверхностей на прямоугольники-треугольники автоматическое.
16.gif

Самое главное в простых 3d-редакторах — снаппинг и алигнование относительно осей и собственных точек, поверхностей и граней.

Редактор 3D-объектов: 22 комментария

  1. На предпоследней картинке, создано отверстие — это и есть булева операция.

    Да еще же можно сделать так, что будет пересечение объекта самого себя, придется как то объединять(тоже булева операция)… что тогда? :)

  2. >sergart Says:
    Фаски это наше все, но они увеличат кол-во полигонов, что нежелательно. Лучше сделать программную обработку грани или работать текстурой.

    >Super Man Says:
    Если это реализовано в простых редакторах, то и Вова это сможет, я уверен. Или он это уже сделал, спросить пока не могу.

  3. Советую сделать импорт моделей таких как *.3ds, *.obj, *.ma. Но с ограничением полигонов например в 500 треугольников. Просто вы сейчас изобретаете велосипед(мини редактор), а многие люди например умеют моделлить в 3d studio max, Maya и т.д. им будет проще сделать модельку с лимитом в 500 треугольников и просто импортировать через сервер в ваш внутренний формат.

  4. Хотелось бы подискусиировать по теме «Оптимизация честной Z-сортировки 12.07.2007 Антон Волков» (почему там не отвечают? наверно мотрите только последние темы). Вы меня уж извините я тут недавно… Просто интересный у вас проект.

  5. >Просто вы сейчас изобретаете велосипед(мини редактор), а многие люди например умеют моделлить в 3d studio max, Maya
    У нас уже есть импортер из 3ds. Что касается mesh-редактора — это лишь малая часть. Модели нужно текстурировать, объединять, держать в библиотеках, скриптовать и пр.

  6. Волкову привет!

    Чем дольше смотрю на ваш проект, тем больше дух захватывает.

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

    Глядя на ваше описание редактора, не могу с собой не согласиться! :)

  7. Прочитав предложение «Если вы видели какие-то удобные фишки в других редакторах, скажите» хотел тут же написать, что по простоте использования идеальным является SketchUp, но прочитав тему внимательнее понял, что у вас практически такой же интерфейс.

    Правда, там есть ещё и такая фишка, как выдавливание (вдавливание) линии.
    Поэтому отрезание угла там делается в два движения:
    1. нарисовать линию на грани;
    2. опустить угловую линию.

  8. Wings3D посмотрел. Необычный подход к моделингу. Кое что взял на заметку. Спасибо!

    2devilfish: Не удивительно. Иван тяготеет к скетчапу. Поэтому это отразилось на его видении редактора. Многие из нашей команды больше привычны в 3DS MAX, так что, я думаю, финальный редактор будет сочетать в себе разные подходы.

  9. То что ребята делают вполне понятно и заслуживает уважения. Смысл в том что Adobe уже давно могли встроить аппаратную поддержку во Flash. Это их стратегическое упущение и вот почему:
    1) У них громадный рынок.
    2) И есть ресурсы.
    Но они ступили и теперь быстро навёрстывают упущенное потому как конкуренты наступают на пяты. Например Unity3D там 95% того что сейчас делают ребята из Альтернативы и Adobe уже есть, но вот только рынок Unity3D в сравнении с Adobe детский сад. Посему ребята хотелось бы сказать что вы чертовски угадали тренд!
    По поводу редактора хочу добавить что для примера лучше возьмите IDE Unity3D и тогда вы откушаете очень большой кусок рынка у них поскольку множество аниматоров так или иначе умеют работать с Flash, но они вынуждены юзать Unity3D поскольку там уже почти всё что нужно есть. Так обратите внимание на мой пост и удачи вам в нелёгком бою!

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