国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于體素模型的彩色3D打印上色算法研究

2021-06-16 06:31郭強強張李超王森林蘭秀峰劉永輝
電子技術(shù)與軟件工程 2021年8期
關(guān)鍵詞:體素交點切片

郭強強 張李超* 王森林 蘭秀峰 劉永輝

(1.華中科技大學(xué) 湖北省武漢市 430074 2.武漢易制科技有限公司 湖北省武漢市 430074)

(3.中國海洋大學(xué)工程學(xué)院 山東省青島市 266100)

彩色3D 打印可以根據(jù)產(chǎn)品模型的顏色信息打印出全彩模型,呈現(xiàn)真實美觀的實物效果[1]。常見的STL 格式文件并不存儲顏色信息,因此不能用于彩色3D 打印。目前使用較多的彩色模型文件格式有較早研發(fā)和流行的AMF 文件[2]、微軟推出的3MF 文件、常見的三維文件格式OBJ 文件[3]等,本文選用AMF 文件進行彩色切片處理。由于3D打印是基于分層制造的原理進行加工,存在臺階效應(yīng),若只對模型表面進行顏色填充,層與層之間會裸露材料原始顏色,造成失真,所以彩色切片時需要一定的深度。胡漢偉等[4]研究了表面彩色AMF 模型快速切片算法,基于彩色三棱柱思想將模型顏色滲透到模型內(nèi)部以消除臺階效應(yīng)。本文在其算法的基礎(chǔ)上,建立具有一定精度彩色體素模型,可對模型任意位置實現(xiàn)顏色調(diào)控,并結(jié)合打印材料的半透明屬性等信息,應(yīng)用色彩處理策略,盡可能還原模型的真實顏色,使其具有較好的視覺效果。

1 前期準備工作

AMF 模型可以描述描述物體的幾何、顏色、材料、微結(jié)構(gòu)等信息[5],AMF 文件是一種基于XML 文件格式的可擴展標記語言文件格式,通過XML 解析器對AMF 文件解析后可以獲得模型的三角網(wǎng)格的幾何信息以及表面顏色信息,之后根據(jù)彩色切片算法[6-8]生成每一高度上的二維彩色位圖數(shù)據(jù),本文在獲得二維彩色位圖數(shù)據(jù)的基礎(chǔ)上,進行后續(xù)的彩色體素模型構(gòu)建和色彩處理算法研究。

2 彩色體素模型構(gòu)建

體素模型,是指用一個個的小立方體體素擬合和描述三維模型幾何信息和其他信息[9-11],與三角網(wǎng)格描述模型表面信息方式不同,體素模型同時可以表達模型的表面和內(nèi)部信息,體素精度可以根據(jù)需要進行設(shè)置,精度越高,體素越小,描述模型越精確;每個體素存儲的信息是可以擴展的,比如三維坐標信息,顏色信息,材質(zhì)信息,實體內(nèi)外信息等,可以根據(jù)需要繼續(xù)添加。由于體素存儲的信息量大,故體素模型占用的存儲空間也很大。

體素模型可以實現(xiàn)模型任意位置的體素操作[12],例如該處的顏色信息,材料信息等的編輯和操作,每個體素單元可以存儲坐標、顏色、材質(zhì)等多種信息。可以根據(jù)需求生成不同精度的體素模型。

為清楚表達AMF 模型的信息,本文建立如下體素數(shù)據(jù)結(jié)構(gòu):

(1)三維空間坐標:float x,y,z;

(2)當(dāng)前體素的RGBA 顏色值:unsigned char color[4];

(3)實體內(nèi)外標志:bool isInside;

圖1:掃描線算法示例

圖2:色彩處理漸變填充算法示意

AMF 模型的體素化算法是建立在彩色切片算法之上的,具體思路如下:讀取AMF 文件并解析,建立AMF 模型AABB 包圍盒,并將此包圍盒空間作為體素模型空間,設(shè)置體素精度。

(1)?z:z 方向體素精度,即z 切平面之間的間距。

(2)?y:y 方向體素精度,即二維彩色位圖的y 向像素尺寸。

(3)?x:x 方向體素精度,即二維彩色位圖的x 向像素尺寸。

體素精度確定好后,體素空間即被劃分。設(shè)體素空間的原點為模型AABB 包圍盒左下角坐標,設(shè)為(xmin,ymin,zmin);包圍盒右上角坐標為(xmax,ymax,zmax),則x 方向體素個數(shù)Xn=(xmax-xmin)/?x,同理可得y 和z 方向體素個數(shù)。設(shè)體素空間中某一點的實際坐標為(x,y,z),其體素坐標為(i,j,k);體素坐標與實際坐標轉(zhuǎn)化公式如下:

圖3:AMF 立方體模型

圖4:AMF 香蕉模型

該點的體素索引vindex為:

體素模型的體素坐標用形如(i,j,k)的形式存儲,其中0 ≤i ≤Xn,0 ≤j ≤Yn,0 ≤k ≤Zn;i,j,k 均要求大于等于0 是為了保證體素索引vindex非負,體素信息保存在數(shù)組數(shù)據(jù)結(jié)構(gòu)中。由上述公式可得到每個體素對應(yīng)存儲的實際坐標。循環(huán)遍歷i,j,k 可遍歷和覆蓋整個模型空間。

體素的實體屬性信息獲取依賴掃描線算法[13-15]。利用掃描線算法進行實體屬性內(nèi)外判定方法如下:

假定用Y 掃描線與輪廓切片算法生成的輪廓環(huán)求得一系列交點,如圖1 所示。輪廓環(huán)由P1 至P6 逆時針連接組成,有如下4 條掃描線l1到l4,求得交點A 到G。

(1)交點不與線段端點重合,如l2,按照交點x 坐標由小到大排序,并編號。A,B,C,D 編號為0,1,2,3。

(2)交點與線段端點重合,兩條線段的另一個端點位于掃描線同側(cè)。如l_1 的P6 交點和l_4 的P2 交點。此情況對交點編號時該點視為2 個重合點。l_1 的交點P6,F(xiàn),G 編號為0,1,2,3。

(3)交點與線段端點重合,兩條線段的另一個端點位于掃描線異側(cè)。如l_3 的P1 交點。此情況對交點編號時該點視為普通點,正常編號。l_3 的交點P1,E 編號為0,1。

按照如上方式確定交點編號后,體素模型的實體屬性

體素模型的色彩信息獲取需要調(diào)用彩色位圖填充算法,位圖是體素的二維表示,對應(yīng)于某一z 切平面的像素數(shù)據(jù),其像素點坐標(i,j)就是體素坐標的相應(yīng)分量。在每層切平面上調(diào)用彩色位圖填充算法,可獲取當(dāng)前切平面上所有像素點的顏色信息,將其賦值給對應(yīng)的體素,遍歷整個模型,即可得到體素模型的顏色信息分布和存儲[16]。

3 色彩處理算法

AMF 彩色模型建立后,在三維空間中實現(xiàn)對任意位置的體素的顏色進行編輯操作,在二維位圖上實現(xiàn)像素級的顏色調(diào)整;彩色位圖填充算法是在規(guī)定的表面色彩深度值下的表面顏色深度區(qū)域內(nèi)的點,其顏色選取為距離該點最近處的三角面片點的顏色。該算法的實現(xiàn)效果為將模型表面顏色沿著三角面片的法線方向向內(nèi)滲透規(guī)定值的厚度,得到的是顏色均一的深度層。此種色彩填充算法對于AMF 模型,由于沒有考慮打印材料的材質(zhì)特性和半透明屬性,在視覺效果上并不很好。下面提出隨表面距離逐漸變化的漸變顏色填充算法。

AMF 色彩處理漸變顏色填充算法原理及流程如下:在建立體素模型后,遍歷體素模型逐個體素進行上色,設(shè)當(dāng)前體素坐標為(i,j,k),通過體素坐標與實際坐標轉(zhuǎn)換公式(式2),計算得到當(dāng)前體素的實際坐標(x,y,z);由彩色位圖填充算法獲取當(dāng)前體素距離最近的表面三角面片的垂足的顏色值(r,g,b,a),并記錄當(dāng)前體素距最近三角面片的垂線的長度l;設(shè)定漸變色為(r0,g0,b0,a0);根據(jù)設(shè)定的表面顏色深度值SurfDepth,設(shè)定當(dāng)前體素的顏色值(r',g',b',a'),

遍歷完模型所有體素并上色,完成彩色體素模型的建立。

AMF 模型色彩處理漸變顏色填充算法示意如圖2 所示:假定表面三角面片的顏色為藍色,設(shè)定漸變色為綠色,漸變色調(diào)由藍色變?yōu)榫G色;對于當(dāng)前體素點P,距離其最近的三角面片為當(dāng)前所示三角形,其垂足點顏色值為藍色,垂線長度為l,設(shè)定的表面顏色深度為SurfDepth,由式4 即可求出該體素點的顏色值;在該體素所在的切片平面,填充得到的彩色位圖如下圖所示。對于色彩處理漸變顏色填充算法,在同一切平面上,彩色位圖上不同像素點的顏色值由于其距表面的垂線長度l 不同,即使它們對應(yīng)的垂足點顏色值相同,它們所要填充的顏色值也不相同,呈現(xiàn)漸變效果。

4 算法驗證

使用體素模型構(gòu)建及色彩處理填充算法,可以建立AMF 模型的彩色體素模型,并生成指定位置切平面的二維彩色位圖,體素模型建立后,可以修改任意位置處的體素顏色和材質(zhì)等信息??紤]打印材料的材質(zhì)和半透明屬性,以及想要實現(xiàn)的視覺效果,利用色彩處理填充算法可以對AMF 模型有一個可控、炫麗的上色效果。

下面分別以AMF 立方體和香蕉模型為例說明彩色體素模型的建立和色彩處理漸變填充算法。

如圖3(a)所示的立方體模型,模型坐標原點位于立方體中心,每個面的顏色都是純色,圖3(b)是z=0 處,表面顏色厚度SurfDepth=0.2時的彩色切片位圖結(jié)果,在表面顏色填充區(qū)域范圍內(nèi),模型顏色一致,不隨深度變化,超過厚度的區(qū)域,填充為材料本身顏色,這里為白色。

圖3(c)為立方體體素模型,模型的顏色填充策略使用漸變顏色填充方式,并設(shè)置不同的透明度,漸變顏色設(shè)置為由白色到模型表面顏色漸變,最靠近表面的顏色填充為白色,透明度最高,隨表面深度增加顏色漸變?yōu)楸砻骖伾担该鞫冉档?。圖3(d)為漸變色填充切片位圖結(jié)果,與圖3(b)相比,實現(xiàn)了漸變填充效果。

圖4(a)AMF 香蕉體素模型,顏色填充策略為表面顏色向內(nèi)部等厚滲透,所有體素均不透明,圖4(a)較真實的渲染了香蕉模型顏色。圖4(b)為z=10,表面顏色厚度SurfDepth=4 時的等厚滲透彩色切片位圖結(jié)果,該模型的z 軸方向沿紙面方向朝外;圖4(c)為漸變色填充的香蕉體素模型,漸變色為白色向表面顏色值漸變,最靠近表面的顏色為白色,透明度最高,越靠近模型內(nèi)部,顏色越偏表面顏色,越不透明,超過表面顏色填充區(qū)域,填充顏色為材料顏色,這里為白色。圖4(d)為漸變色填充切片位圖,可以看出顏色由表面向內(nèi)部漸變?yōu)楸砻鎸嶋H顏色值。通過圖4(a)和(c),(b)和(d)的對比,可以看出彩色體素模型對顏色的修改效果和漸變填充上色效果。

5 結(jié)語

本文建立體素空間并獲取體素的實際坐標和實體屬性信息后,提出色彩處理填充算法對模型進行上色處理,本文使用漸變顏色填充算法,修改體素模型的顏色屬性,根據(jù)設(shè)定的表面顏色厚度SurfDepth,沿著表面法線方向向內(nèi)部填充漸變顏色,模型最靠近表面顏色為白色,透明度最高,越靠近內(nèi)部,顏色越深,透明度降低,超過表面顏色填充區(qū)域,模型顏色填充為材料實際顏色。

本文通過構(gòu)建AMF 彩色體素模型,并根據(jù)色彩處理填充策略可以對待打印的彩色制件有很好的上色效果,并可以根據(jù)打印材料的材質(zhì)信息和半透明屬性提出特定的上色需求,這對于可以任意修改任意位置顏色屬性的AMF 彩色體素模型而言都十分容易。

猜你喜歡
體素交點切片
基于多級細分的彩色模型表面體素化算法
運用邊界狀態(tài)約束的表面體素加密細分算法
閱讀理解
基于體素格尺度不變特征變換的快速點云配準方法
基于SDN與NFV的網(wǎng)絡(luò)切片架構(gòu)
腎穿刺組織冷凍切片技術(shù)的改進方法
冰凍切片、快速石蠟切片在中樞神經(jīng)系統(tǒng)腫瘤診斷中的應(yīng)用價值比較
指數(shù)函數(shù)與冪函數(shù)圖象的交點的探究性學(xué)習(xí)
墨汁染色在組織切片中的應(yīng)用