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

Мне нужно создать простое программное обеспечение, которое должно быть в состоянии создавать 3D-модели простым и удобным способом. У меня очень сильные навыки работы с Java, и я решил использовать Java3D или Java Monkey Engine для своего бэкэнда. Я хотел бы услышать ваши идеи о том, как такой проект может быть запущен. Что бы вы сделали в первую очередь?

Любые идеи и предложения будут высоко оценены!


person Peter    schedule 24.01.2012    source источник
comment
Немного векторной геометрии/исчисления вам не повредит (надеюсь, это до боли очевидно!). Планируйте функции, которые вы хотите реализовать, прежде чем начать, потому что, если вы будете действовать определенным образом, вам может быть сложно реализовать новые функции, как вы о них думаете. Тщательно продумайте структуры данных, которые вы планируете использовать, и типы файлов, которые вы планируете поддерживать. Это большой проект; будьте готовы к тому, что его будет столько же.   -  person Zéychin    schedule 25.01.2012
comment
@Zéychin Векторная геометрия обязательна). Я собираюсь очень тщательно спланировать свои функции (этап проектирования). Я понимаю, что это будет большой проект, поэтому я прошу людей высказать свое мнение и идеи.   -  person Peter    schedule 25.01.2012


Ответы (1)


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

Например, вы представляете себе процесс редактирования, в котором вы создаете свои 3D-объекты, комбинируя «примитивные» объекты, такие как прямоугольные параллелепипеды, сферы, цилиндры и т. д., с помощью подхода, называемого Конструктивная объемная геометрия добавление, вычитание или пересечение трехмерных объемов друг с другом.

Или вы видите, что используете подход, подобный тому, который предлагает Rhino3d (среди многих других мне нравится только один work in), где вы можете рисовать кривые и выполнять такие операции, как вращение вокруг оси для создания поверхности вращения или лофтинговые кривые вдоль траектории для создания поверхности, выдавливание для придания поверхности объема и так далее.

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

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

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

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

person russw_uk    schedule 24.01.2012
comment
Я буду использовать перчатки данных в реальном времени и kinect, чтобы получить точное положение рук, я буду использовать подход деформации, не могли бы вы предложить мне какую-нибудь хорошую книгу о том, как использовать этот подход. - person Peter; 25.01.2012
comment
Боюсь, я не знаю ни одной книги, специально посвященной моделированию с использованием этой техники, но базовая реализация будет включать в себя создание сетки, а затем привлечение или отталкивание точек в этой сети в зависимости от положения вашего инструмента моделирования (кончиков пальцев) относительно к ближайшим точкам модели, пропорционально расстоянию между инструментом и точкой, по вектору между ними. Если количество точек в объекте слишком мало, это будет выглядеть не очень хорошо, поэтому вы можете посмотреть в Интернете такие темы, как Adaptive subdivision, чтобы добавить дополнительные точки в сетку в областях, которые вы хотите деформировать. - person russw_uk; 26.01.2012