python — 3D * .stl модель поверхности конвертировать в 2D изображение?

Хорошо, чтобы начать с позвольте мне быть ясным, я не заинтересован в преобразовании стека изображений в 3D-модель.

У меня есть файл * .stl (триангулированная сетка поверхности) & Я хотел бы нарезать его обратно в стек изображений. Я посмотрел на Slic3r & Meshmixer но они оба выдают только Gcode.

Таким образом, учитывая, что у меня есть вершины всех точек на поверхности (что случайно не выпукло) & их связь. Какие библиотеки могут помочь с этим?

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

Мне комфортно с Python & C ++ в толчке, но я хочу расширить свой кругозор.

1

Решение

Например, если вы получили вашу сетку для рендеринга с OpenGl (любым способом внутри вашего приложения), а затем, чтобы получить свой фрагмент, вы просто:

  1. установите камеру так, чтобы плоскость проецирования экрана была параллельна срезу …
  2. очистить экранный буфер как обычно с glClearColor установить цвет фона
  3. Очистите буфер глубины с помощью glClearDepth установить Z-координату среза в пространстве камеры
  4. задавать glDepthFunc(GL_EQUAL)
  5. сделать сетку

Что-то вроде:

// here set view
glClearColor( 0.0,0.0,0.0,0.0 ); // <0.0,1.0> r,g,b,a
glClearDepth( 0.5 );             // <0.0,1.0> ... 0.0 = z_near, 1.0 = z_far
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glDepthFunc(GL_EQUAL);
// here render mesh

Это сделает только фрагмент, для которого фрагменты Z==Slice coordinate, Это также может быть сделано GLSL выбрасывая все фрагменты с разными Z, DirectX должно быть что-то подобное (я им не пользуюсь, поэтому точно не знаю).

Как большинство сеток BR модели (пусто), тогда вы получите окружность вашего среза, так что вам, скорее всего, придется заполнить его позже, чтобы удовлетворить ваши потребности …

Вы также можете поэкспериментировать с рендерингом толстого среза … где Z находится вокруг предварительно определенного значения …

1

Другие решения

Если решение HTTP API подходит для вашей цели, я бы предложил следующее ресурс:
Серверная 3D-сетка для рендеринга миниатюрных изображений от http://manifold.metamatic.us

Вы можете отправить свою трехмерную сетку (STL, OBJ, 3DS) в конечную точку API и получить ответ JSON. Он будет содержать URL-адрес для рендеринга 2D-изображения вашей 3D-модели среди других результатов 3D-измерений, таких как объем, площадь, ограничивающая рамка, время сборки.

Клиентские библиотеки, которые взаимодействуют с конечной точкой API Manifold и написаны на python, PHP, JavaScript и даже сценариях командной строки cURL, также имеется в наличии.

Я надеюсь, что это поможет в вашем поиске. Прошу прощения, если вы не искали решение для черного ящика и вместо этого пытались реализовать 3D-рендеринг самостоятельно.

0

По вопросам рекламы [email protected]