Какой движок использовать для простой программы для 3д моделирования?
Хочу сделать Open source программу 3д моделирования для строителей, столяров и возможно печников.
Она будет максимально простой в освоении,но узкопрофильной т.к работать придется только с параллелепипедами и их модификациями (ибо доски еще можно запилить под углом).
Буду очень признателен, если посоветуете подходящий 3д движок для этого, потому что мне кажется писать это на голом OpenGL или Vulkcan - это забивать гвозди микроскопом.
Технические требования:
1) Возможность рисовать точки и прямые, которые задаются координатами в пространстве (В Qt Quick 3D например точки и прямые можно рисовать только на экране и рассчитывать местоположение поверх 3д нужно самому, что неудобно).
2) Возможность построить парралелипипед, "запилить" у него грань под углом и вращать его (желательно без необходимости самому считать тригонометрию).
3) 3 функции:
получить все объекты проецирующиеся в заданный прямоугольник на экране,
получить первый объект проецирующийся в заданную точку на экране,
получить координату сцены находящуюся на заданном расстоянии от заданной точки на экране.
(Данные функции потребуются для реализации перемешения камеры и привязки объектов при перетаскивании мышью к осям и точкам т.к они должны располагаться точно - вершина к вершине)
4) Поддержка Linux и Windows(опционально)
5) Возможность отрендерить 250 параллелепипедов даже на старых компьтерах, без необходимости ручной оптимизации...
6) Язык программирования: C++, Java, на крайний случай Python.
7) Миниум абстракций абстракций абстракций... или же хорошая документация и большое количество ответов на stack overflow и хабре.
Дополнительный функционал приветствуется, если не противоречит 7 пункту.
Я уже попробовал:
Qt quick 3d, но там 1 и 3 пункт мимо.
OpenCasCade - не подходит по 7 пункту. Очень много абстракций и очень мало примеров и документации. При этом мне нужно от силы 2% функционала.
а чем плохо на OpenGl? с движками разбираться больше, тут надо всего пару методов написать, типа добавления кубика в сцену и его вращения, это все в начальных уроках по OpenGl
Dmtm, Вот я тоже к такому выводу пришел, ибо все таки это более полезный опыт, чем курочить блендер) Тут накидали конечно еще движков на интерпретируемых языках, но мне они не импонируют т.к я уже имел опыт написания относительно большого приложения на Python)
Так что сейчас сижу - учу OpenGL, пока только не понял стоит ли GLU использовать, ибо говорят он c Qt не работает и вообще устарел.
Например Blender 3D - у него достаточно легко кастомизируется интерфейс. Пишете плагин, в котором:
прячете весь родной интерфейс блендера
рисуете свой интерфейс на основе стандартных контролов блендера
приклеиваете к своими кнопкам нужный функционал
пакуете свой билд блендера с плагином.
Да, этот тот же микроскоп, но это микроскоп-траснформер и один из мощнейших и крутейших 3D пакетов в мире и там уже есть все, что нужно для работы с 3D объектами. Т.е., надо будет писать только код GUI и общую логику работы, без необходимости залезать в ньюансы работы 3D движков. А если надо будет сделать что-то еще - либо оно там есть, либо есть плагин, либо это все достаточно легко делается без необходимости реализовывать ручками с нуля. И еще он OpenSource.