Я ищу метод для создания 3D-моделей для использования в видеоиграх. Идея заключается в виртуальных примитивах, которые являются просто точками со связанными данными для размера, формы, материала и вращения.
Например, астероид может начинаться как две простые сферы, которые пересекаются. Материал из пыльной породы, который по алгоритму снятия шкурки обеспечивает гладкие песчаные изгибы и иногда зубчатые валуны. Вероятно, в итоге получится что-то вроде кусковой арахисовой формы.
После этого добавьте шарики меньшего размера с материалом пустоты или кратера, усыпанным вокруг объекта. Это приведет к образованию кратероподобных участков на поверхности арахиса, и кожа подгонится под нее. В конце концов у вас получится полу правдоподобное представление об астероиде.
Теперь, имея в виду, мой вопрос, есть ли приличные примеры или общедоступные примеры алгоритмов скининга, которые могут найти поверхность модели и создать гладкую, равномерно распределенную четырехслойную сетку, которую затем можно текстурировать?
Еще немного информации; Я смотрю на методы CSG для базовых моделей (сложение и вычитание объема), а затем смотрю на другие методы для пересмотра всего этого.
Скиннинг — это искусство, а не научный процесс (и его практически невозможно автоматизировать), потому что скинг — это визуальное приближение движения. Чтобы получить что-то полностью автоматическое, вам нужно будет либо предположить размещение кости, либо просто предположить, что ее вообще нет.
Вот пример. Это проект с открытым исходным кодом, который обрабатывает автоматически, основываясь на том факте, что предоставленная сетка является гуманоидом.
http://igl.ethz.ch/projects/fast/
РЕДАКТИРОВАТЬ: Подожди, ты имеешь в виду наоборот? Разве это не похоже на марширующие кубики? http://en.wikipedia.org/wiki/Marching_cubes
Это захватывающий вопрос, и, без сомнения, есть много способов сделать это. Лично я, вероятно, начну с получения базовых фигур в формате .obj, которые легко анализировать и создавать программно, а затем делать именно это в моем коде: настроить или рандомизировать вершины, которые вы экспортируете из программы моделирования, чтобы создать бесконечное число множество похожих, но немного разных объектов, таких как астероиды. Конечно, если вам нужно больше, чем астероиды, вы вернетесь к другому файлу .obj. Трудно сказать лучший метод для вашего случая, так как я думаю, что некоторые эксперименты потребуются независимо от того, что вы пытаетесь.