欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種描述三維輕量化模型的方法

文檔序號:6606088閱讀:397來源:國知局
專利名稱:一種描述三維輕量化模型的方法
技術領域
本發(fā)明涉及計算機領域,特別是一種計算機三維模型的描述與顯示的方法。
背景技術
目前業(yè)界對三維輕量化模型的概念并沒有明確的定義,根據本發(fā)明的具體內容將其界定為在滿足顯示要求的前提下,產品模型最大化地實現了數據量的壓縮和冗余信息的剔除,產品模型能夠快速瀏覽。三維CAD模型一般采用精確的數學形式表達模型的幾何信息,可提供零件模型的幾何信息與拓撲信息,方便設計者對產品模型進行精確地分析。包含在產品模型中工程設計信息可方便設計者捕捉和維護產品設計意圖與產品設計約束等信息,甚至還包含模型繪制的歷史過程信息。目前已存在了幾種輕量化模型數據格式,如STL,OBJ等,分別作如下簡介。(I)STL 格式STL文件格式是美國3DSyStem公司首先提出的一種文件格式,已被工業(yè)界認為是目前快速成型領域的標準零件描述文件格式,這種文件格式將三維模型表面離散化為三角形面片,每個三角形面片由三個頂點坐標和一個面法向量來描述"三角形大小可選,三角形面片劃分得越小,對實體表面的逼近精度就越高"現在流行的CAD軟件如Solidworks, UG, Pro/e等都提供了對格式文件的輸出接口。(2) OBJ文件格式OBJ文件格式是Warefont公司為它的一套基于工作站的建模和動畫軟件功能開發(fā)的一種文件格式,OBJ格式支持多邊形(Polygon),直線(lines),表面(surfaces),和自由形態(tài)曲線(Frea-Form Curves)。OBJ文件的特點如下(1)是一種3D模型文件,因此不包含動畫,材質特性,貼圖路徑,動力學,粒子等信息。( 文件主要支持多邊形戶模型 (Polygons)。(3) OBJ文件支持三個點以上的面。(4)文件支持法線和貼圖坐標。除STL,OBJ文件格式以外還有3dxml,vrml等,都可以表達三維輕量化模型。但是,現有技術中這種以數學形式表達的幾何CAD模型需要耗費大量的時間用于模型的顯示,難以實現對大模型的實時操作,特別是在部件裝配規(guī)劃中,必須頻繁地調入其子零件,以表達裝配的位置、姿態(tài)、順序等,而在此操作過程中是不需要對零件本身進行修改的。為達到裝配規(guī)劃中的實時操作,必須采用模型輕量化技術,即對模型進行簡化和壓縮,以提高其裝載和顯示速度。主要拋棄其精確的數學表達的幾何信息和造型歷史信息,僅保留其用以顯示的三角面片信息,經過這樣的輕量化處理以后,模型文件的體積變得更小, 是原模型的10%左右。

發(fā)明內容
針對上述現有技術的缺陷,本發(fā)明的目的是提供一種描述三維輕量化模型的方法,可展示產品的原理,應用于產品的應用維護。
為達到上述目的,本發(fā)明采用如下技術方案一種描述三維輕量化模型的方法,包括如下步驟第一步,生成節(jié)點;所述節(jié)點的信息由兩部分組成基本屬性信息和基本圖形信息;第二步,為每個節(jié)點建立基本屬性信息;第三步,為每個節(jié)點建立基本圖形信息;第四步,判斷是否已經處理完了所有的所述節(jié)點,如果處理完畢,則轉到第五步, 如果沒有,則跳轉到第一步,反復上述步驟;第五步,生成輕量化數據文件,所生成的文件內容包括兩個部分文件頭和文件體。本發(fā)明的描述三維輕量化模型的方法,其中所述基本屬性信息包括代號、名稱、描述、局部坐標系、顏色、透明度。本發(fā)明的描述三維輕量化模型的方法,其中所述基本圖形信息包括實體表面信息、三維輪廓線信息、標注信息、其它類信息。本發(fā)明的描述三維輕量化模型的方法,其中所述基本圖形信息可用基本圖元進行描述。本發(fā)明的描述三維輕量化模型的方法,其中所述基本圖形信息用于表示實體、曲面、曲線。本發(fā)明的描述三維輕量化模型的方法,其中所述文件體里包括產品樹、節(jié)點、圖元
fn息ο本發(fā)明的描述三維輕量化模型的方法,其中為每個節(jié)點分配一個唯一的ID號。本發(fā)明的描述三維輕量化模型的方法,其中每個節(jié)點的子節(jié)點個數和各個子節(jié)點的ID號都和該節(jié)點本身的信息一起寫入到所述生成的數據文件中,且根節(jié)點的ID被最先寫入。本發(fā)明的描述三維輕量化模型的方法,其中所述方法形成的數據以文件的形式存在。本發(fā)明的描述三維輕量化模型的方法在網絡應用領域有非常強大的優(yōu)勢。由三維模型輕量化數據格式所生成的文件,體積體,表達的信息豐富。在具體的應用過程中,可以通過網絡將輕量化數據從服務端傳到客戶端。由于它體積小,數據傳輸的時間短,可以實現在些實時瀏覽。


圖1是本發(fā)明描述三維輕量化模型的方法的流程圖;圖2是本發(fā)明描述三維輕量化模型的方法中三維輕量化模型的結構圖;圖3是本發(fā)明描述三維輕量化模型的方法所生成的數據文件的結構圖。
具體實施例方式下面結合附圖對本發(fā)明描述三維輕量化模型的方法的實施方式進行詳細說明。參見圖1,本發(fā)明描述三維輕量化模型的方法包括
第一步生成節(jié)點;節(jié)點信息由兩部分組成基本屬性信息、基本圖形信息。第二步為每個節(jié)點建立基本屬性信息;基本屬性信息包括代號、名稱、描述、局部坐標系、顏色、透明度等。這些信息是描述模型的基本信息,在以后操作模型過程中,會用到這些信息。第三步為每個節(jié)點建立基本圖形信息;包括實體表面信息、三維輪廓線信息、標注信息、其它類信息等。這些信息可用基本圖元來描述。主要基本圖元有1. DRAW_Tree,用于描述產品樹。2.DRAW_Node,用于描述產品節(jié)點。3. LFRAME,用于定義坐標變換的參數。利用LFRAME就可以對模型進行任意的剛體變換,并映射到3D空間中。4. PNT3D,用于定義3D空間中的點和向量。5. C0L0R_DEF,用于存儲顏色信息的結構。6.B0X3D,用于存儲包圍盒信息。7. L0D_DRAff_DATA,用于訪問層次化描述數據。8. DRAff_DATA_GROUP,用于描述模型幾何信息。9. SQLine,用于存儲一條線。10. FACE_ELEMENT_F,用于存儲面的幾何信息。11. STriangle16,用于存儲三角形三個頂點的索引值。12. Note,用于存儲節(jié)點的標注信息。第四步判斷是否處理完所有節(jié)點,如果處理完,則進行第五步,如果沒有則重復
第一步。第五步生成輕量化數據文件,生成的文件內容構成如圖3所示;該文件內容包括兩個部分,一是文件頭,二是文件體,文件體里包括產品樹、節(jié)點、圖元信息。參見圖2,本發(fā)明描述三維輕量化模型的方法通過產品樹、節(jié)點、圖元來描述一個三維輕量化模型。其中(1)產品樹;產品樹按父子關系,由葉節(jié)點構成。(2)節(jié)點;各個節(jié)點由基本屬性信息和基本圖形信息構成。其中基本屬性信息包括代號、名稱、描述、局部坐標系、顏色、透明度;基本圖形信息由基本圖元構成。(3)圖元;節(jié)點的基本圖形描述是由基本圖元的組合而成,基本圖元由以下幾部分組成三維實體表面,是指離散的三角片;三維輪廓線,是指離散的空間線段集,用表達實體、曲面、曲線;標注信息,是指局部坐標及其內部的線段集與文字描述;其它類,是指空間線段組成的圖塊。本發(fā)明的發(fā)明點在于產品樹、節(jié)點、圖元的描述與組織方式,如圖2所示,本申請從應用角度看確立了如何描述產品樹、節(jié)點、圖元及相互之間的關系。在本申請的具體實施方式
中,通過本申請?zhí)岢龅姆椒ㄋ纬傻臄祿晕募男问酱嬖?。以下將以偽碼的形式詳細描述本申請的實現過程其中,產品樹、節(jié)點、圖元主要數據類型的偽碼描述如下。
1. DRAff_Tree (產品樹)產品樹由節(jié)點構成,節(jié)點可包含下一級子節(jié)點。偽碼如下Struct Tree{DRAff_N0DE nodes 口 ;}2. DRAff_Node (節(jié)點)讀取文件時,獲得的信息首先存儲到DRAW_N0DE結構中,然后根據信息的內容將其拷貝到與之對應的其他數據結構中。偽碼如下struct DRAff_N0DE{int32LFRAMEC0L0R_DEFB0X3DPNT3Dreal64L0D_DRAW_DATA*int32CStringCstring};其中nNodeld為節(jié)點的ID號;Iframe為節(jié)點的局部坐標架,存儲從上層節(jié)點到該節(jié)點需要進行的坐標變換參數;color為該節(jié)點本身的顏色;boxNode為以該節(jié)點為根節(jié)點的子樹上所有模型的包圍盒;相應地,pntCenter和fRadius構成包圍球;IodDrawData存儲了指向各個層次LOD數據的指針,編號越高,對應的LOD數據越粗糙,目前最多可定義10 層L0D,不足10層的IodDrawData數組中對應位置為空值;m_nLodTolLevel為該節(jié)點擁有的LOD層數;m_StrName為當前節(jié)點的名稱;note為批注信息。3. LFRAME定義了坐標變換的參數。具體定義如下struct LFRAME{PNT3D 0 ;PNT3D OX, 0Y, OZ ;};其中0為局部坐標原點在上層坐標系中的坐標,0X,0Y,OZ分別為局部坐標系3個坐標軸在上層坐標系中對應的單位向量。這3個向量必須是兩兩正交的單位向量,并且構成右手坐標系。利用LFRAME就可以對模型進行任意的剛體變換,并映射到3D空間中。4.PNT3D
nNodeld ; Iframe ; color ; boxNode ; pntCenter ; fRadius ;
IodDrawData[10]; m_nLodToILevel ; m_strName ; note ;
定義3D空間中的點和向量,包含x、y、ζ三個分量,定義如下struct PNT3D{real64x, y, ζ ;};5. C0L0R_DEF用于存儲顏色信息的結構,具體定義如下typedef struct colordef_tag{uchar r, g, b ;uchar reserved ;}C0L0R_DEF ;其中r、g、b分別代表紅、綠、藍三個顏色分量,reserved為保留分量。6. B0X3D存儲AABB包圍盒信息,具體定義如下struct B0X3D{real64 xl, yl, zl ;real64 xh, yh, zh ;};xl、yl、zl為包圍盒頂點在3個方向上坐標分量的最小值;xh、yh、zh則代表坐標
分量最大值。7. L0D_DRAff_DATA通過該結構訪問LOD數據,具體定義如下struct L0D_DRAff_DATA{real64 fTol ;int32 nTri ;DrawDataGroupArray drawDataGroupArr ;};其中ftol表征離散數據偏離模型的程度;nTri為該LOD擁有三角片的總數; drawDataGroupArr 存儲 LOD 的分組幾何數據,其中 DrawDataGroupArray 是 CArray 包裝 DRAff_DATA_GROUP 結構的數組。8. DRAff_DATA_GROUP包裝了模型幾何信息,具體定義如下struct DRAff_DATA_GROUP{FaceElementFArray faceElementArr ;
70128]QLineArray boundaryffireArr ;
0129]};
0130]其中faceElementArr包含了模型體各個面的幾何信息;boundaryWireArr為模型的邊界線。FaceElementFArray 是包裝了 FACE_ELEMENT_F 結構的 CArray 數組,QLineArray 是包裝了 SQLine結構的數組。
0131]9.SQLine0132]該結構用于存儲一條線,定義如下0133]struct SQLine0134]{0135]int32nCount ;0136]PNT3D氺pPntArr ;0137]ι0138]其中nCoimt為這條線上點的數目;pPntArr指向存儲0139]10.FACE—ELEMENT—F0140]存儲了面的幾何信息,具體定義如下0141]struct FACE_—ELEMENT—F0142]{0143]int32face_id ;0144]int32nVertCount ;0145]int32nNormalCount ;0146]int32nTriangleCount ;0147]float氺pPntArr ;0148]float^pNormalArr ;0149]STriangle16 ^pTriangleArr ;0150]}.0151]其中face—id為面的標識;nVertCount為面的頂點數
向量數目;nTriangleCoimt為面的三角片數目;pPntArr指向存儲點坐標信息的首地址; PNormalArr指向存儲法向量信息的首地址;pTriangleArr指向三角形索引信息的首地址。因為3D空間中頂點坐標和法向量都有3個分量,所以pPntArr和pNormalArr指向的內存中存儲的float數據個數為分別為nVertCount和nTriangleCount的3倍。索引值為 i 的點,x、y、ζ 坐標值分別存儲在 pPntArr [3*i]、pPntArr [3*i+l]、PntArr [3*i+2] 處。當該面為平面時,所有頂點的法向量都相同,所以法向量只有1個;當該面為曲面時,法向量的數目與頂點的數目相同,法向量和頂點一對應。10. STrianglel6存儲三角形三個頂點的索引值,定義如下struct STrianglel6{GLushort m_pl, m_p2, m_p3 ;};
其中m_pl、m_p2、m_p3分別代表三角形三個頂點在頂點數組中的索引值,由于同一頂點往往同時屬于多個三角形,使用頂點數組合三角形索引的方式可以節(jié)省很多內存空間。以上的實施例僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設計精神的前提下,本領域普通工程技術人員對本發(fā)明的技術方案做出的各種變形和改進,均應落入本發(fā)明的權利要求書確定的保護范圍內。
權利要求
1.一種描述三維輕量化模型的方法,其特征在于,包括如下步驟第一步,生成節(jié)點;所述節(jié)點的信息由兩部分組成基本屬性信息和基本圖形信息;第二步,為每個節(jié)點建立基本屬性信息;第三步,為每個節(jié)點建立基本圖形信息;第四步,判斷是否已經處理完了所有的所述節(jié)點,如果處理完畢,則轉到第五步,如果沒有,則跳轉到第一步,反復上述步驟;第五步,生成輕量化數據文件,所生成的文件內容包括兩個部分文件頭和文件體。
2.根據權利要求1所述的描述三維輕量化模型的方法,其特征在于,所述基本屬性信息包括代號、名稱、描述、局部坐標系、顏色、透明度。
3.根據權利要求1所述的描述三維輕量化模型的方法,其特征在于,所述基本圖形信息包括實體表面信息、三維輪廓線信息、標注信息、其它類信息。
4.根據權利要求1或3所述的描述三維輕量化模型的方法,其特征在于,所述基本圖形信息可用基本圖元進行描述。
5.根據權利要求1、3或4所述的描述三維輕量化模型的方法,其特征在于,所述基本圖形信息用于表示實體、曲面、曲線。
6.根據權利要求1-5中任意一項所述的描述三維輕量化模型的方法,其特征在于,所述文件體里包括產品樹、節(jié)點、圖元信息。
7.根據權利要求1-6中任意一項所述的描述三維輕量化模型的方法,其特征在于,為每個節(jié)點分配一個唯一的ID號。
8.根據權利要求7所述的描述三維輕量化模型的方法,其特征在于,每個節(jié)點的子節(jié)點個數和各個子節(jié)點的ID號都和該節(jié)點本身的信息一起寫入到所述生成的數據文件中, 且根節(jié)點的ID被最先寫入。
9.根據權利要求1-8中任意一項所述的描述三維輕量化模型的方法,其特征在于,所述方法形成的數據以文件的形式存在。
全文摘要
一種描述三維輕量化模型的方法,包括如下步驟第一步,生成節(jié)點;所述節(jié)點的信息由兩部分組成基本屬性信息和基本圖形信息;第二步,為每個節(jié)點建立基本屬性信息;第三步,為每個節(jié)點建立基本圖形信息;第四步,判斷是否已經處理完了所有的所述節(jié)點,如果處理完畢,則轉到第五步,如果沒有,則跳轉到第一步,反復上述步驟;第五步,生成輕量化數據文件,所生成的文件內容包括兩個部分文件頭和文件體。從而提供一種描述三維輕量化模型的方法,可展示產品的原理,應用于產品的應用維護。
文檔編號G06T17/00GK102339476SQ201010228490
公開日2012年2月1日 申請日期2010年7月16日 優(yōu)先權日2010年7月16日
發(fā)明者王可 申請人:北京瑞風協同科技股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
赤城县| 高州市| 甘泉县| 太和县| 安陆市| 锡林郭勒盟| 襄城县| 德格县| 安康市| 华池县| 界首市| 甘谷县| 临桂县| 宿迁市| 舟山市| 延长县| 密云县| 苍溪县| 锡林郭勒盟| 伊川县| 崇仁县| 舟曲县| 清苑县| 介休市| 明光市| 安丘市| 安阳县| 凉山| 石景山区| 德江县| 涟源市| 兴和县| 融水| 天镇县| 南木林县| 噶尔县| 恭城| 新蔡县| 宁阳县| 东台市| 宁国市|