2013-08-08 4 views
8

Я ищу способ создания 3D-моделей для использования в видеоиграх. Идея - это виртуальные примитивы, которые являются просто точками со связанными данными для размера, формы, материала и вращения.Создание 3D-моделей с помощью примитивной скинировки

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

После этого добавьте меньшие шары с материалом пустоты или кратера, напертым вокруг объекта. Это создало бы кратерные области на поверхности арахиса, и кожа подстраивалась под нужды. В конце концов у вас будет полуправдоподобное представление астероида.

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

Дополнительная информация; Я смотрю на методы CSG для базовых моделей (добавление и вычитание тома), а затем смотрю на другие методы для ремеширования всего этого.

+2

Вы посмотрели на [CGAL] (http://www.cgal.org/). Они имеют множество алгоритмов геометрии открытого источника для [генерации сетки] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html#part_XI), [обработки] (http: //www.cgal. org/Manual/latest/doc_html/cgal_manual/contents.html # part_XII) и [polyhedra] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html#part_VII). Раздел [NEF Polyhedra] (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Nef_3/Chapter_main.html) выглядит особенно близким к тому, о чем вы говорили. –

+0

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

+1

Если вы хотите иметь сценарии, которые генерируют 3D-модели с использованием методов CSG, нет лучшего программного обеспечения, чем [OpenSCAD] (http://www.openscad.org/). Он использует вышеупомянутый CGAL на задней панели, но предоставляет интерфейс для создания параметрической модели на основе скриптов. Я использую его в течение многих лет для 3D-печати и люблю его. Он также имеет интерфейс командной строки, поэтому вы можете выполнить его сценарий из оболочки unix или command.exe. Однако он не сможет интегрироваться в вашу игру в реальном времени. Это потребует от вас заранее создать свои модели, и я не уверен, что вы ищете. – Jestin

ответ

2

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

Вот пример. Это проект с открытым исходным кодом, который автоматически копируется на основе того факта, что предоставленная сетка является гуманоидом. http://igl.ethz.ch/projects/fast/

EDIT: Подождите, вы имеете в виду наоборот? Разве это не похоже на маршевые кубы? http://en.wikipedia.org/wiki/Marching_cubes

+0

На самом деле что-то ближе к «фрикаделькам» в блендере или создателю существа Споры. Я стараюсь избегать использования вокселей из-за присущей им массивности данных. По большому счету, реалистичная планета была бы просто сумасшедшей по отношению к делу, терабайтами информации воксела. Но несколько пересекающихся виртуальных примитивов были бы намного проще. –

1

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

Смежные вопросы