【STL切片算法文献笔记】基于GPU并行计算的3D打印切片算法

3D打印模型切片算法研究

文章目录

  • 3D打印模型切片算法研究
  • 论文介绍
  • 前言
  • 一、介绍
  • 二、基于反向光线追踪的切片算法
    • 1.反向光线追踪算法
    • 2.快速获取切片轮廓
  • 三、轮廓提取和NUBRS拟合优化
    • 1. Marching Square 轮廓提取算法
    • 2.基于NURBS基函数的切片数据拟合
  • 结论

论文介绍

Title: Slicing Algorithm and Partition Scanning Strategy for 3D Printing Based on GPU Parallel Computing
Author: Xuhui Lai and Zhengying Wei
State Key Laboratory for Manufacturing System Engineering, Xi’an Jiaotong University, Xi’an 710049, China;

前言


一、介绍

此切片算法用于电子束激光成型(EBAM)。
论述了当前行业对切片算法的研究。

二、基于反向光线追踪的切片算法

1.反向光线追踪算法

反向光线追踪算法的光线是从相机的位置发出的,与物体照明不同。之后,跟踪光线与模型交汇处的光线强度和颜色值,并将其映射到相应的体素上。该算法主要用于模型渲染等方面。在跟踪过程中,需要沿着光线的折射或反射方向进行迭代,直到光线强度小于设定值或投射到环境中。在3D模型切片中,我们只需要考虑对应的体素是否在模型中,与颜色、纹理等信息无关。因此,计算过程中不考虑光的折射和反射。当光线与模型相交时,对应的体素(像素)设置为黑色,否则为白色。为了保证轮廓提取的准确性,在成型过程中根据轮廓精度的要求对视野进行初始化。

2.快速获取切片轮廓

1)导入STL数据,获取bunding box。
2)定义切片高度,并把Stencil buffer值设置为0,就是所有的 格都不显示
3)选择从视点发出的光线与视野中的所有 格相交。 当射线与前向 格相交时,stencil buffer的值增加1,表示需要绘制该像素; 当光线与反向 格相交时,stencil buffer的值减1,表示该像素不需要绘制。
4)遍历完成后,将缓冲区中值为 1 或 2 的分片进行渲染,将值为 0 的分片丢弃。

从而获得图2STL模型的轮廓数据图3.

三、轮廓提取和NUBRS拟合优化

1. Marching Square 轮廓提取算法

以图3右侧所示的切片为例,采用MS(Marching Square)算法计算所有闭合轮廓坐标。根据采样点坐标的RGB值将图像数据转换成二维 格,并用 格点的凹凸状态标记颜色(0,0,0)和(255,255,255) 。实心代表凸 格点,空心代表凹 格点。 从选定的起点开始,取出左边、上、左上的 格点,组成一个小块。 四个 格点的状态该块可分为16种情况,如图4所示。图中蓝色箭头表示下一次搜索的方向。 依次遍历所有像素即可完成轮廓提取。

SINUMERIK 840D SL 的 BSPLINE 插补功能可以通过控制点和权重因子将离散坐标点平滑连接,并使用速度伺服确保成型过程中线速度恒定。 假设切片生成的轮廓坐标点为{Vk},k = 0, 1, . . . , n, 节点向量为 U = {u0, u1, . . . , um},任意坐标点 Vk 对应的节点为 uk。因此,可以基于 n 个坐标点构造 n+1 个线性方程组,如式(5)所示。其中控制点 Ci 为待确定的量, 并且节点值uk的取值范围属于[0, 1]。

GPU切片算法在整个测试过程中的效率明显高于Cura。 商业软件Magics的切片效率最高,稳定切片进程的CPU利用率保持在29.45%,但运行过程中会卡顿。 随着三角形块数的增加,Cura和Magics建立拓扑关系的时间会逐渐增加,这也是切片时间近似呈指数变化的原因之一。 GPU切片算法不需要建立拓扑关系,只需要遍历指定高度的体素即可。 随着 格数量的增加,并行计算导致GPU利用率逐渐提高,最高可达93%,最后一个模型切片只需要89.99s。

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览35148 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月15日
下一篇 2022年3月15日

相关推荐