亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

八叉樹串行化的制作方法

文檔序號(hào):11293343閱讀:285來(lái)源:國(guó)知局
八叉樹串行化的制造方法與工藝



背景技術(shù):

三維(3d)打印是可用來(lái)描述用于制造3d物體的工藝的術(shù)語(yǔ)。在3d打印中,增材工藝可以用來(lái)連續(xù)地把材料(例如,構(gòu)造材料和/或打印液體)分層堆放以創(chuàng)建3d物體。3d物體幾乎可以是任意形狀。打印的3d物體的分辨率可以受限于用來(lái)打印3d物體的3d打印機(jī)的分辨率。

附圖說(shuō)明

圖1示出了根據(jù)本公開的計(jì)算設(shè)備的示例的框圖。

圖2示出了根據(jù)本公開的用于八叉樹串行化的系統(tǒng)的示例的框圖。

圖3示出了根據(jù)本公開的字的示例。

圖4示出了根據(jù)本公開的八叉樹的示例。

圖5示出了根據(jù)本公開的用于八叉樹串行化的方法的示例的流程圖。

圖6示出了根據(jù)本公開的包括處理資源和存儲(chǔ)可執(zhí)行指令的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)的系統(tǒng)的示例的圖。

具體實(shí)施方式

八叉樹串行化可包括讀取來(lái)自八叉樹樹數(shù)據(jù)結(jié)構(gòu)中的節(jié)點(diǎn)的數(shù)據(jù),對(duì)來(lái)自節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行編碼,和/或?qū)?lái)自節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行解碼。讀取來(lái)自八叉樹結(jié)構(gòu)中的節(jié)點(diǎn)的數(shù)據(jù)可包括獲取打印特性(例如,3d物體的形狀規(guī)格和/或3d物體的材料規(guī)格)。如本文所用的,八叉樹樹數(shù)據(jù)結(jié)構(gòu)為有序的節(jié)點(diǎn)集合。3d物體為可沿x軸、y軸和z軸表示的物體。形狀規(guī)格限定了3d物體的形狀(例如幾何形狀)。材料規(guī)格限定了形成3d物體的材料和/或材料屬性(例如,彈性、強(qiáng)度、和/或顏色,以及其它材料屬性)。八叉樹串行化還可包括記錄和/或?qū)懪c節(jié)點(diǎn)相對(duì)應(yīng)的數(shù)據(jù),以創(chuàng)建3d物體的樹數(shù)據(jù)結(jié)構(gòu)表示。如本文所用的,八叉樹串行化是將八叉樹數(shù)據(jù)轉(zhuǎn)換為字節(jié)流。相反,八叉樹去串行化可包括將字節(jié)流轉(zhuǎn)換為八叉樹。通常,八叉樹數(shù)據(jù)存儲(chǔ)在易失性存儲(chǔ)器內(nèi),而字節(jié)流存儲(chǔ)在非易失性存儲(chǔ)器內(nèi)。

在若干其它方法中,可以使用表面網(wǎng)格執(zhí)行3d打印,每種3d物體采用單一材料。這種方法典型地受限于每個(gè)所打印的3d物體的單一材料。

為了解決這種限制(例如每個(gè)所打印的3d物體的單一材料的限制),若干其它方法可以依賴基于中央處理單元(cpu)的臺(tái)式應(yīng)用,以生成3d打印機(jī)可以用來(lái)生成3d物體的數(shù)據(jù)。然而,即使在這種基于cpu的應(yīng)用中,多種材料的使用可能依賴于手工(即,由基于3d的臺(tái)式應(yīng)用的用戶)將各材料分配給各個(gè)非結(jié)構(gòu)化的表面網(wǎng)格(unstructuredsurfacemesh)。結(jié)果,在這種方法中,材料取決于物體的形狀。進(jìn)一步地,除了其它缺陷,手工將每一種材料分配給每個(gè)網(wǎng)格很費(fèi)時(shí),未提供可重用的材料模板,和/或未提供多種材料之間的連續(xù)漸變。而且,這種方法不能打印由復(fù)雜和/或相當(dāng)大的數(shù)據(jù)集表示的3d物體(例如,無(wú)法如想要地打印這種物體)。例如,3d打印機(jī)可能沒有足夠的硬件和/或存儲(chǔ)器來(lái)接收和/或存儲(chǔ)基于cpu的臺(tái)式應(yīng)用所提供的大數(shù)據(jù)集(例如,作為單個(gè)數(shù)據(jù)包提供給打印機(jī))。

相反,本公開的若干示例提供了具有編碼和/或解碼多材料體素和/或八叉樹數(shù)據(jù)結(jié)構(gòu)的能力的八叉樹串行化,使得數(shù)據(jù)結(jié)構(gòu)中的任意體素能夠被標(biāo)識(shí)。進(jìn)一步地,本公開的示例提供了串行化和/或去串行化機(jī)制,以將存儲(chǔ)器對(duì)象寫入存儲(chǔ)位置,從存儲(chǔ)器位置讀取存儲(chǔ)器對(duì)象,和/或基于所讀取的存儲(chǔ)器對(duì)象重構(gòu)八叉樹數(shù)據(jù)結(jié)構(gòu)。

圖1示出了根據(jù)本公開的計(jì)算設(shè)備的示例的框圖。計(jì)算設(shè)備100可以包括經(jīng)鏈路104連接到存儲(chǔ)器資源106(例如,計(jì)算機(jī)可讀介質(zhì)(crm)、機(jī)器可讀介質(zhì)(mrm)、數(shù)據(jù)庫(kù)等)的處理資源102。存儲(chǔ)器資源106可以包含若干計(jì)算模塊。圖1的示例示出了確定模塊108、串行化模塊109和去串行化模塊110。如本文所用的,計(jì)算模塊可以包括程序代碼,(例如,計(jì)算機(jī)可執(zhí)行指令,硬件,固件,和/或邏輯),但至少包括處理資源102可執(zhí)行的指令(例如,采用模塊的形式),以執(zhí)行本文參考圖2至6更詳細(xì)描述的動(dòng)作、任務(wù)和功能。

如本文所用且如本文將更詳細(xì)解釋的,確定模塊108,可以包括由處理資源102執(zhí)行的指令,以順序地評(píng)估八叉樹結(jié)構(gòu)中的兩個(gè)或更多節(jié)點(diǎn),直至到達(dá)葉節(jié)點(diǎn),其中兩個(gè)或更多個(gè)節(jié)點(diǎn)包括非葉節(jié)點(diǎn)和葉節(jié)點(diǎn)。在一些示例中,確定模塊108可以包括由處理資源102執(zhí)行的指令,以響應(yīng)于該節(jié)點(diǎn)為葉節(jié)點(diǎn),確定該節(jié)點(diǎn)是否為空節(jié)點(diǎn)(voidnode)或填充節(jié)點(diǎn)(fillednode)。

如本文所用的,“非葉節(jié)點(diǎn)”為具有后代節(jié)點(diǎn)(例如子節(jié)點(diǎn))的八叉樹節(jié)點(diǎn),而“葉節(jié)點(diǎn)”為無(wú)后代節(jié)點(diǎn)(例如子節(jié)點(diǎn))的節(jié)點(diǎn)。在一些示例中,非葉節(jié)點(diǎn)可以攜帶八叉樹結(jié)構(gòu),而葉節(jié)點(diǎn)可攜帶系統(tǒng)的物理屬性。作為一個(gè)示例,葉節(jié)點(diǎn)可以攜帶至少一個(gè)關(guān)于系統(tǒng)的打印特性。如本文所用的,“打印特性”為位置(例如,坐標(biāo)、大小等)、材料和/或描述要打印什么和/或要在哪里打印以形成3d物體的其它相關(guān)聯(lián)的量。在一些示例中,葉節(jié)點(diǎn)攜帶的打印特性可規(guī)定單一材料類型或材料標(biāo)識(shí)。

例如,打印特性可以描述3d物體的形狀(例如,幾何形狀)。單個(gè)形狀規(guī)格可以描述3d物體,或多個(gè)形狀規(guī)格中的每一個(gè)可以描述3d物體的多個(gè)部分。材料規(guī)格可以描述材料和/或與形成3d物體的材料相關(guān)聯(lián)的若干材料屬性值。也就是說(shuō),材料規(guī)格可以由材料值(例如,多個(gè)材料屬性值)定義。

串行化模塊109可以包括由處理資源102執(zhí)行的指令,以基于與兩個(gè)或更多節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的各個(gè)頭(header)中的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,生成串行化的八叉樹文檔,其中相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符將兩個(gè)或更多節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為包括葉節(jié)點(diǎn)和至少一個(gè)非葉節(jié)點(diǎn)。如本文所用的,“節(jié)點(diǎn)標(biāo)識(shí)符”為存儲(chǔ)在與節(jié)點(diǎn)相關(guān)聯(lián)的字(word)的頭中、可以將節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)或葉節(jié)點(diǎn)的標(biāo)示(例如,整數(shù))。

如本文進(jìn)一步討論的,在一些示例中,生成串行化的八叉樹文檔可以包括響應(yīng)于確定節(jié)點(diǎn)為非葉節(jié)點(diǎn),將第一整數(shù)記錄在與該節(jié)點(diǎn)相關(guān)聯(lián)的頭中。生成串行化的八叉樹文檔可以進(jìn)一步包括響應(yīng)于確定節(jié)點(diǎn)為空的葉節(jié)點(diǎn),將第二整數(shù)記錄在與該節(jié)點(diǎn)相關(guān)聯(lián)的頭中。在一些示例中,材料類型可以被定義為空,響應(yīng)于確定節(jié)點(diǎn)為空的葉節(jié)點(diǎn),可以將空的材料類型記錄在與節(jié)點(diǎn)相關(guān)聯(lián)的有效負(fù)載中。

去串行化模塊110可以包括由處理資源120執(zhí)行的指令,以響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,遞增計(jì)數(shù)器。在一些示例中,去串行化模塊110可以包括由處理資源102執(zhí)行的指令,以響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將子節(jié)點(diǎn)的位置記錄在八叉樹結(jié)構(gòu)中。

在一些示例中,去串行化模塊110可以包括由處理資源102執(zhí)行的指令,以響應(yīng)于在頭中的、將節(jié)點(diǎn)標(biāo)識(shí)為空的葉節(jié)點(diǎn)的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,將表示空的一個(gè)整數(shù)或多個(gè)整數(shù)記錄在與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)相對(duì)應(yīng)的字的各自的有效負(fù)載中,并響應(yīng)于在頭中的、標(biāo)識(shí)填充的葉節(jié)點(diǎn)的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,將信息記錄在與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)相對(duì)應(yīng)的字的各自的有效負(fù)載中。

圖1所示的若干模塊(例如,確定模塊108,串行化模塊109和去串行化模塊110)可以與其它模塊相結(jié)合,或是其它模塊的子模塊。模塊可以存儲(chǔ)在如圖1所示的存儲(chǔ)器資源106中,和/或包含在同一計(jì)算設(shè)備內(nèi)。在另一示例中,若干模塊(例如,確定模塊108、串行化模塊109和去串行化模塊110)可以包括在(諸如在分布式計(jì)算環(huán)境(例如,云計(jì)算環(huán)境)中的)不同存儲(chǔ)器資源(例如,crm等)上分離且不同的位置處的個(gè)體模塊。進(jìn)一步地,執(zhí)行與特定模塊(例如,確定模塊108,串行化模塊108,去串行化模塊110)相關(guān)聯(lián)的指令的處理資源102,可以用作引擎,諸如圖2所示的示例性引擎。如本文所用的,若干模塊和/或若干引擎可包括比所示的那些更多或更少的引擎/模塊。

圖2示出了根據(jù)本公開的用于八叉樹串行化的系統(tǒng)220的示例的框圖。系統(tǒng)220可以執(zhí)行本文描述的若干功能和操作(例如,八叉樹串行化)。系統(tǒng)220可以包括數(shù)據(jù)存儲(chǔ)221。圖2的示例示出了確定引擎224、串行化引擎226和去串行化引擎228。系統(tǒng)220可以包括硬件,例如以晶體管邏輯和/或特定用途集成電路(asic)、固件的形式,以及軟件,例如以機(jī)器可讀且可執(zhí)行的指令(例如,機(jī)器可讀介質(zhì)中存儲(chǔ)的程序指令)的形式,其共同可以形成如結(jié)合圖1所討論的計(jì)算設(shè)備。

在圖2的示例中,確定引擎224可以包括硬件和/或硬件與編程(例如可執(zhí)行指令)的組合,但是至少包括硬件,以順序地評(píng)估八叉樹結(jié)構(gòu)中的兩個(gè)或更多個(gè)節(jié)點(diǎn),直至到達(dá)葉節(jié)點(diǎn),其中兩個(gè)或更多個(gè)節(jié)點(diǎn)包括非葉節(jié)點(diǎn)和葉節(jié)點(diǎn)。

串行化引擎226可以包括硬件和/或硬件與編程的組合,但至少包括硬件,以基于與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的相應(yīng)的頭中的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符、生成串行化的八叉樹文檔,其中相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為包括葉節(jié)點(diǎn)和至少一個(gè)非葉節(jié)點(diǎn)。在一些示例中,節(jié)點(diǎn)標(biāo)識(shí)符可以包括將節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)(例如,0)的第一整數(shù),或節(jié)點(diǎn)標(biāo)識(shí)符可以包括將節(jié)點(diǎn)標(biāo)識(shí)為葉節(jié)點(diǎn)的第二整數(shù)(例如,1)。示例不限于此,且第一整數(shù)可以將節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)或葉節(jié)點(diǎn)(例如,如果節(jié)點(diǎn)為非葉節(jié)點(diǎn),第一整數(shù)可以為0,且如果節(jié)點(diǎn)為葉節(jié)點(diǎn),第一整數(shù)可以為1),同時(shí)第二整數(shù)可以響應(yīng)于將節(jié)點(diǎn)標(biāo)識(shí)為葉節(jié)點(diǎn)的第一整數(shù),將節(jié)點(diǎn)標(biāo)識(shí)為空或填充(例如,如果葉節(jié)點(diǎn)為空,第二整數(shù)可以為0,且如果葉節(jié)點(diǎn)為填充,第二整數(shù)可以為1)。示例不受限于這些具體的整數(shù)值。

去串行化引擎228可以包括硬件和/或硬件與編程的組合,但至少包括硬件,以響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,遞增計(jì)數(shù)器,并且響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將子節(jié)點(diǎn)的位置記錄在八叉樹結(jié)構(gòu)中。

在一些示例中,去串行化引擎228可以包括硬件和/或硬件與編程的組合,但至少包括硬件,以響應(yīng)于在頭中的、將節(jié)點(diǎn)標(biāo)識(shí)為空的葉節(jié)點(diǎn)的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,將表示空的整數(shù)記錄在與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)相對(duì)應(yīng)的字的各自的有效負(fù)載中,并響應(yīng)于在頭中的、標(biāo)識(shí)填充的葉節(jié)點(diǎn)的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,將信息記錄在與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)相對(duì)應(yīng)的字的各自的有效負(fù)載中。

圖2所示的確定引擎224、串行化引擎226及去串行化引擎228和/或圖1中的確定模塊108、串行化模塊109及去串行化模塊110可以為其它引擎/模塊的子引擎/模塊,和/或結(jié)合起來(lái)執(zhí)行特定系統(tǒng)和/或計(jì)算設(shè)備內(nèi)的特定的動(dòng)作、任務(wù)和功能。進(jìn)一步地,結(jié)合圖1及圖2描述的引擎和/或模塊可以位于單個(gè)系統(tǒng)和/或計(jì)算設(shè)備中,或駐于分布式計(jì)算環(huán)境(例如云計(jì)算)中的分離且不同的位置處。示例不限于這些示例。

圖3示出了根據(jù)本公開的字301的示例。在一些示例中,字301可以包含用于節(jié)點(diǎn)(例如,圖4中圖示的節(jié)點(diǎn)440-1)的代碼。字301可以包括有效負(fù)載部分332和/或頭部分334。字301可以包含用于圖形處理單元(gpu)加速的32位;然而,示例不限于包含特定數(shù)目的位的字。

在字包含32位的示例中,例如,有效負(fù)載部分332可以包含24位,并且頭部分334可以包含8位。在一些示例中,字301的頭部分334可以記錄節(jié)點(diǎn)是否為葉節(jié)點(diǎn)(例如圖4中圖示的節(jié)點(diǎn)440-1)或非葉節(jié)點(diǎn)(例如,圖4中圖示的空的葉節(jié)點(diǎn)442-1,填充的葉節(jié)點(diǎn)444-1)。

圖4示出了根據(jù)本公開的八叉樹結(jié)構(gòu)403的示例。八叉樹結(jié)構(gòu)403可以包括可以與八叉樹403的層級(jí)關(guān)系(hierarchalrelationship)相對(duì)應(yīng)的多個(gè)陣列(例如,陣列_i445,陣列_(i+1)446,陣列_(i+2)447,陣列_(i+3)448等)。例如,節(jié)點(diǎn)440-1可以為父節(jié)點(diǎn),并能位于陣列i445。父節(jié)點(diǎn)440-1的所有子女(例如,陣列_(i+1)446中的節(jié)點(diǎn))可以位于陣列_(i+1)446等。在一些示例中,可以根據(jù)特定的順序,將每個(gè)陣列的子節(jié)點(diǎn)放置在它們各自的陣列中。在這方面,父節(jié)點(diǎn)440-1,……,440-n可以確定其子女中的每一個(gè)的位置和/或唯一地標(biāo)識(shí)其子女中的每一個(gè)。作為一個(gè)示例,節(jié)點(diǎn)440-1可以確定其子女中的每一個(gè)的位置和/或唯一地標(biāo)識(shí)其子女中的每一個(gè),例如,陣列_(i+1)446的節(jié)點(diǎn)。

多個(gè)陣列中的每一個(gè)可以包括一個(gè)或多個(gè)節(jié)點(diǎn)440-1,…,440-n,442-1,…,442-n,444-1,444-2,…,444-n等(本文統(tǒng)稱為節(jié)點(diǎn)440、442、444)。多個(gè)節(jié)點(diǎn)440、442、444中的每一個(gè)可以表示節(jié)點(diǎn),該節(jié)點(diǎn)或?yàn)榉侨~節(jié)點(diǎn)(例如,節(jié)點(diǎn)440)、或?yàn)榭盏娜~節(jié)點(diǎn)(例如,節(jié)點(diǎn)442)、或?yàn)樘畛涞娜~節(jié)點(diǎn)(例如,節(jié)點(diǎn)444)的節(jié)點(diǎn)。在圖4的示例中,不同類型的節(jié)點(diǎn)由不同的陰影表示。例如,用網(wǎng)紋網(wǎng)狀線填充的節(jié)點(diǎn)(例如,節(jié)點(diǎn)440)為非葉節(jié)點(diǎn),用斜線填充的節(jié)點(diǎn)(例如,節(jié)點(diǎn)444)為填充的葉節(jié)點(diǎn),無(wú)填充的節(jié)點(diǎn)(例如,節(jié)點(diǎn)442)為空的葉節(jié)點(diǎn)。

如果節(jié)點(diǎn)為葉節(jié)點(diǎn)440,可以將至少一個(gè)打印特性(例如,材料標(biāo)識(shí)等)記錄在字301的有效負(fù)載部分332。如果節(jié)點(diǎn)為非葉節(jié)點(diǎn)442、444,可以將子節(jié)點(diǎn)的位置記錄在字301的有效負(fù)載部分332。例如,字301的有效負(fù)載部分332可以記錄在陣列_(i+1)446中的子節(jié)點(diǎn)的位置。

在一些示例中,字301的頭部分334可以記錄子節(jié)點(diǎn)是否為葉節(jié)點(diǎn)440或非葉節(jié)點(diǎn)442、444。這可以為八叉樹文檔提供額外的檢錯(cuò)。字301的頭部分334可以用于記錄子節(jié)點(diǎn)是不重要(trivial)的還是重要(non-trivial)的。如本文所用的,“不重要”節(jié)點(diǎn)為在與該節(jié)點(diǎn)相關(guān)聯(lián)的有效負(fù)載部分332中沒有信息的節(jié)點(diǎn),而“非不重要”節(jié)點(diǎn)為非葉節(jié)點(diǎn)、或者在與節(jié)點(diǎn)相關(guān)聯(lián)的有效負(fù)載部分332中包含信息的葉節(jié)點(diǎn)。例如,字301的頭部分334可以記錄節(jié)點(diǎn)442是不重要的(例如,空),或頭部分334可以記錄節(jié)點(diǎn)440、444是非不重要的。在這個(gè)示例中,可以通過(guò)在陣列中不記錄不重要子女,節(jié)省存儲(chǔ)空間。

在這方面,字301的頭部分334可以提供充足的信息,允許識(shí)別每個(gè)子女,而無(wú)需記錄和/或檢查字301的有效負(fù)載部分332中包含的信息。

根據(jù)若干示例,如上所述,可以基于被編碼在字301的頭334中的信息,構(gòu)造和/或遍歷八叉樹結(jié)構(gòu)403。例如,可以從非葉(例如,根)節(jié)點(diǎn)開始,構(gòu)造八叉樹結(jié)構(gòu)。在圖4的示例中,陣列_i445包含一個(gè)元素:非葉節(jié)點(diǎn)440-1。

針對(duì)八叉樹403中的每個(gè)額外層(例如,每個(gè)額外陣列),可以響應(yīng)于非葉節(jié)點(diǎn),對(duì)計(jì)數(shù)器進(jìn)行遞增。例如,計(jì)數(shù)器可以記錄系統(tǒng)內(nèi)的非葉節(jié)點(diǎn)的數(shù)目。針對(duì)八叉樹結(jié)構(gòu)403中的每個(gè)非葉節(jié)點(diǎn),可以通過(guò)從計(jì)數(shù)器減1并乘以8,來(lái)確定相應(yīng)的非葉節(jié)點(diǎn)的第一代子女。示例不限于此;然而,例如,當(dāng)記錄具有不均勻大小的子女時(shí),可以對(duì)子女的數(shù)目進(jìn)行計(jì)數(shù)。

在一些示例中,可以通過(guò)從陣列_i445開始并讀取非葉(例如,根)節(jié)點(diǎn)440-1,遍歷八叉樹結(jié)構(gòu)403??梢曰谂c非葉節(jié)點(diǎn)440-1相關(guān)聯(lián)的字301的頭334中包含的信息,定位第一子節(jié)點(diǎn)(例如,441-1)。在八叉樹結(jié)構(gòu)403中,陣列(例如,陣列_(i+1)446)中的接下來(lái)的7個(gè)元素也是非葉節(jié)點(diǎn)440-1的子女??梢灾貜?fù)此過(guò)程,直至到達(dá)填充的葉節(jié)點(diǎn)444,可以從與填充的葉節(jié)點(diǎn)444相關(guān)聯(lián)的字301的有效負(fù)載332獲取打印特性。

在一些示例中,八叉樹結(jié)構(gòu)403可以與體素的網(wǎng)格(例如,體素的3d網(wǎng)格)相關(guān)聯(lián)。如本文所用的,體素表示3d空間上的值。體素可以為與3d空間相關(guān)聯(lián)的體積。體素可以具有實(shí)體值、空值或3d空間的不同定義的描述的值??梢曰隗w素相對(duì)其它體素的位置,推斷該體素的位置。

八叉樹403可以表示任意形狀(例如,凸面、凹面和/或有孔),并且可以攜帶表示任意材料分布(例如,材料類型和/或材料屬性)的節(jié)點(diǎn)屬性。八叉樹可以通過(guò)使用最大可能的體素來(lái)表示均勻區(qū)域,壓縮體素?cái)?shù)據(jù)結(jié)構(gòu)。如本文所用的,當(dāng)樹數(shù)據(jù)結(jié)構(gòu)(例如,八叉樹)中的體素(例如,節(jié)點(diǎn))具有形狀、材料類型和/或材料屬性的均勻性,而不具有與多個(gè)鄰近節(jié)點(diǎn)交叉的形狀邊界、材料類型邊界和/或材料屬性邊界時(shí),區(qū)域是均勻的。

在一些示例中,可以將八叉樹結(jié)構(gòu)403寫入到用于未來(lái)使用或其它應(yīng)用的文件。也就是說(shuō),八叉樹串行化可以允許將八叉樹被輸出到或以流的形式傳輸?shù)?d打印機(jī)。例如,被創(chuàng)建以在第一3d打印機(jī)上打印3d物體的八叉樹可以被重用,以在具有與第一3d打印機(jī)的打印分辨率不同的打印分辨率的第二3d打印機(jī)上打印3d物體,而不必重建八叉樹。

在一些示例中,在八叉樹結(jié)構(gòu)403的每個(gè)層(例如,每個(gè)陣列),可以將節(jié)點(diǎn)標(biāo)識(shí)符寫入到與節(jié)點(diǎn)(例如,節(jié)點(diǎn)440-1)相關(guān)聯(lián)的字301的頭334。在一些示例中,節(jié)點(diǎn)標(biāo)識(shí)符可以為0,如果節(jié)點(diǎn)為非葉節(jié)點(diǎn),可以將該節(jié)點(diǎn)標(biāo)識(shí)符寫入到與該節(jié)點(diǎn)相關(guān)聯(lián)的頭334??梢詫⒐?jié)點(diǎn)標(biāo)識(shí)符寫入到頭334中的特定塊(例如,塊335)。然而,示例不限于此,可以將節(jié)點(diǎn)標(biāo)識(shí)符寫入到頭334中的任意塊。在一些示例中,如果節(jié)點(diǎn)(例如,442,444)為葉節(jié)點(diǎn),如果葉節(jié)點(diǎn)為空(例如,442),可以將1寫入到頭334,并且如果葉節(jié)點(diǎn)是填充的(例如,444),有效負(fù)載332可以被寫入。在葉節(jié)點(diǎn)444的情況下,可以將計(jì)數(shù)器移位2,且該過(guò)程可以再次從非葉節(jié)點(diǎn)440開始。

圖5示出了根據(jù)本公開的用于八叉樹串行化的方法550的示例的流程圖。在552,方法550可以包括順序地評(píng)估八叉樹結(jié)構(gòu)中的兩個(gè)或更多個(gè)節(jié)點(diǎn),直至到達(dá)葉節(jié)點(diǎn),其中兩個(gè)或更多個(gè)節(jié)點(diǎn)包括葉節(jié)點(diǎn)和非葉節(jié)點(diǎn)。

在554,方法550可以包括基于與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的頭中的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,生成串行化的八叉樹文檔,其中相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為包括至少一個(gè)葉節(jié)點(diǎn)和至少一個(gè)非葉節(jié)點(diǎn)。在一些示例中,串行化的八叉樹文檔可以具有與立體平版印刷方法產(chǎn)生的文件大小相比相對(duì)小的文件大小。這個(gè)相對(duì)較小的大小可能至少部分是由于可以跳過(guò)節(jié)點(diǎn)標(biāo)識(shí)符提供的不重要(例如空)節(jié)點(diǎn)。也就是說(shuō),通過(guò)使用節(jié)點(diǎn)標(biāo)識(shí)符忽略不重要節(jié)點(diǎn),八叉樹的整個(gè)結(jié)構(gòu)可被保存,而無(wú)需讀取、存儲(chǔ)或?qū)懭氩恢匾?jié)點(diǎn)的數(shù)據(jù)。在一些示例中,如上所述,相對(duì)較小的文件大小可能至少部分是由于八叉樹串行化可以產(chǎn)生相對(duì)大的表示均勻區(qū)域的體素。

在556,方法550可以包括響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將至少一個(gè)打印特性記錄在與節(jié)點(diǎn)相關(guān)聯(lián)的相應(yīng)的有效負(fù)載中。

在558,方法550可以包括響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將節(jié)點(diǎn)的第一子節(jié)點(diǎn)的位置記錄在與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)相關(guān)聯(lián)的相應(yīng)有效負(fù)載中。

在一些示例中,方法550可以包括基于與第一子節(jié)點(diǎn)關(guān)聯(lián)的相應(yīng)的頭中包含的信息,確定第一子節(jié)點(diǎn)是否為葉節(jié)點(diǎn)或非葉節(jié)點(diǎn)。方法550可以進(jìn)一步包括響應(yīng)于將子節(jié)點(diǎn)標(biāo)識(shí)為葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將至少一個(gè)打印特性記錄在與子節(jié)點(diǎn)相關(guān)聯(lián)的相應(yīng)的有效負(fù)載中,并且響應(yīng)于將第一子節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將第二子節(jié)點(diǎn)的位置記錄在與第一子節(jié)點(diǎn)相關(guān)聯(lián)的相應(yīng)的有效負(fù)載中。在一些示例中,可以響應(yīng)于將第一子節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,將第二子節(jié)點(diǎn)的位置和包括第二子節(jié)點(diǎn)的陣列中的接下來(lái)7個(gè)子節(jié)點(diǎn)的位置記錄在第一子節(jié)點(diǎn)的頭和/或有效負(fù)載中。示例不限于此,并且一旦響應(yīng)于將父節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的父節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符確定第一子女的位置,陣列中的第一子節(jié)點(diǎn)之后的7個(gè)節(jié)點(diǎn)可以是父節(jié)點(diǎn)的子女。

在一些示例中,方法550可以包括響應(yīng)于將兩個(gè)或更多個(gè)節(jié)點(diǎn)中的節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)識(shí)符,記錄第一節(jié)點(diǎn)的8個(gè)子節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)的各自的位置。例如,與節(jié)點(diǎn)相關(guān)聯(lián)的頭可以包括8位,并且8位中的每一位可與第一節(jié)點(diǎn)的8個(gè)子節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)的相應(yīng)位置相對(duì)應(yīng)。

方法550可以包括將與八叉樹結(jié)構(gòu)中的8個(gè)子節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的至少一個(gè)節(jié)點(diǎn)屬性記錄在與非葉節(jié)點(diǎn)相關(guān)聯(lián)的頭中。如本文所用的,“節(jié)點(diǎn)屬性”為子節(jié)點(diǎn)的聚合屬性的標(biāo)示。例如,可以記錄聚合的8個(gè)子節(jié)點(diǎn)的和、加權(quán)和、和/或布爾(boolean)屬性。在一些示例中,在對(duì)八叉樹進(jìn)行解碼時(shí),可以將節(jié)點(diǎn)屬性與存儲(chǔ)在與父節(jié)點(diǎn)相關(guān)聯(lián)的頭中的信息進(jìn)行比較,以提供檢錯(cuò)。

圖6示出了根據(jù)本公開的包括處理資源602和存儲(chǔ)可執(zhí)行指令的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)661的系統(tǒng)660的示例的圖。例如,系統(tǒng)660可以為圖2的示例性系統(tǒng)220的實(shí)現(xiàn)。

處理資源602可以配置為執(zhí)行存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)661上的指令。例如,非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)661可以是任意類型的易失性或非易失性存儲(chǔ)器或存儲(chǔ)設(shè)備,諸如隨機(jī)存取存儲(chǔ)器(ram)、閃存、只讀存儲(chǔ)器(rom)、存儲(chǔ)卷、硬盤或其組合。當(dāng)被執(zhí)行時(shí),指令可以使處理資源602執(zhí)行諸如關(guān)于圖5描述的方法的八叉樹串行化。

示例性介質(zhì)661可以存儲(chǔ)可由處理資源602執(zhí)行的指令662,以順序地評(píng)估八叉樹結(jié)構(gòu)中的兩個(gè)或更多個(gè)節(jié)點(diǎn),直至到達(dá)葉節(jié)點(diǎn),其中兩個(gè)或更多個(gè)節(jié)點(diǎn)中至少包括一個(gè)非葉節(jié)點(diǎn)。在一些示例中,處理資源602可以執(zhí)行指令662以執(zhí)行圖5的方法的框552。

示例性介質(zhì)661可以進(jìn)一步存儲(chǔ)指令664。指令664可被執(zhí)行為基于與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的頭中的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符,生成串行化的八叉樹文檔。在一些示例中,頭中的相應(yīng)的節(jié)點(diǎn)標(biāo)識(shí)符可以將節(jié)點(diǎn)標(biāo)識(shí)為非葉節(jié)點(diǎn)、空的葉節(jié)點(diǎn)或填充的葉節(jié)點(diǎn)。串行化的八叉樹文檔可以具有與立體平版印刷方法產(chǎn)生的文件大小相比相對(duì)小的文件大小。

示例性介質(zhì)661可以進(jìn)一步存儲(chǔ)可由處理資源602執(zhí)行的指令,以響應(yīng)于與非葉節(jié)點(diǎn)相對(duì)應(yīng)的相應(yīng)的標(biāo)識(shí)符,確定八叉樹結(jié)構(gòu)中的子節(jié)點(diǎn)的位置。在一些示例中,示例性介質(zhì)661可以進(jìn)一步存儲(chǔ)可由處理資源602執(zhí)行的指令,以響應(yīng)于與填充的葉節(jié)點(diǎn)相對(duì)應(yīng)的相應(yīng)的標(biāo)識(shí)符,讀取與兩個(gè)或更多個(gè)節(jié)點(diǎn)中的至少一個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的打印特性。

在本公開中,參考構(gòu)成部分本公開的附圖,在附圖中舉例示出如何可以實(shí)施本公開的若干示例。這些示例以足夠的細(xì)節(jié)被描述,以使得本領(lǐng)域技術(shù)人員可以實(shí)施本公開文件的示例,并且可以理解的是可以使用其它示例,并且可以做出過(guò)程、電和/或結(jié)構(gòu)的修改,而不背離本公開的范疇。

本文的附圖遵循編號(hào)規(guī)定,其中第一數(shù)字與附圖編號(hào)相對(duì)應(yīng),其余的數(shù)字標(biāo)識(shí)附圖中的元件或組件??梢栽黾?、交換和/或刪去本文各圖中所示的元件,以便提供本公開的若干額外示例。附圖中提供的元件的比例和的相對(duì)尺寸旨在圖示本公開的示例,而不該在限制意義上采用。

說(shuō)明書示例提供了本公開的系統(tǒng)及方法的應(yīng)用及用途的描述。因?yàn)榭梢晕幢畴x本公開的系統(tǒng)及方法的精神及范圍作出許多示例,本說(shuō)明書記載了許多可能的示例性配置及實(shí)施中的一些。

如本文所用的,“一個(gè)”或“若干”某物可以指一個(gè)或更多個(gè)這種事物。例如,“若干小工具”可能指一個(gè)或更多個(gè)小工具。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1