Задача - посчитать объём любой 3д-модели. В идеале было бы конечно считать объём именно видимой части модели, но, похоже второму без первого не бывать.
Задача конечно не из простых, но всё же, занимался ли кто-нибудь подобным?
Если в максе, то задача не сложная, ну а если в q3d...
Чтож, оказалось всё гораздо сложнее и универсального решения, по всей вероятности, добиться довольно затратное дело, но, всё же примерная стратегия для расчёта объёма следующая:
Прежде всего нам необходимо определить какая у нас модель: выпуклая или вогнутая.
Если выпуклая, то всё просто, и объём находится как сумма всех объёмов тетраэдров, в основании которых находятся треугольники модели, образующие тремя вершинами однозначную плоскость, и вершиной в некоторой произвольной точке внутри модели.
Если вогнутая, то модель необходимо сначала разбивать на части (convex (http://compgeom.com/~piyush/papers/occluder.pdf)/non-convex (http://pdf.aminer.org/000/352/748/detection_between_nonconvex_polyhedral_models.pdf)). Для статических моделей можно написать плагин под макс или майку.
Имея выпуклую модель, найти объём каждой пирамиды не составит труда. Необходимо будет только знать координаты 4-ёх вершин, которые при смешанном произведении векторов (http://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B5%D1%88%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5) образуют объём параллелепипеда, полученный на основе координат трёх векторов. Для того, чтобы найти искомый объём нашего тетраэдра полученную величину следует разделить на +/- 6. Это и будет объём одной пирамиды.
Перебрав все вершины нашей модели получим объём всей модели.
А если сечь плоскостью, определить площадь в плоскости сечения, затем проинтегрировать?
Корпик верно говорит.
Для использования 3Д принтеров используют схожий алгоритм.
В сети есть множество опенсорсных проектов 3Д принтерев.