OBJ文件格式詳解_第1頁
OBJ文件格式詳解_第2頁
OBJ文件格式詳解_第3頁
OBJ文件格式詳解_第4頁
OBJ文件格式詳解_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、3D中的OBJ文件格式詳解常見到的*.obj文件有兩種:第一種是基于COFF(Common Object File Format)格式的OBJ文件(也稱目標(biāo)文件),這種格式用于編譯應(yīng)用程序;第二種是Alias|Wavefront公司推出的OBJ模型文件。本文對(duì)第二種obj模型文件進(jìn)行分析。3D文件格式,常見的有幾種 "*.3ds","*.max","*.lw","*.mb","*.dxf","*.obj"。但是,OBJ文件的具體特征,卻很少有人能給出較為圓滿的描述。很多人認(rèn)識(shí)

2、OBJ文件是從使用Poser開始的,Poser是一款人體建模軟件,要把Poser生成的人體導(dǎo)出到其它3D軟件中進(jìn)行再加工,就用到了OBJ文件。OBJ文件是一種標(biāo)準(zhǔn)的3D模型文件格式,很適合用于3D軟件模型之間的互導(dǎo)。比如在3dsMax或LightWave中建了一個(gè)模型,想把它調(diào)到Maya里面渲染或動(dòng)畫,導(dǎo)出OBJ文件就是一種很好的選擇。目前幾乎所有知名的3D軟件都支持OBJ文件的讀寫,不過很多軟件需要通過插件才能做到這一點(diǎn)。 另外,作為一種優(yōu)秀的文件格式,很多游戲引擎也都支持OBJ文件的讀取。 3D軟件模型之間的互導(dǎo)是一件很常見的事情,不幸的是,目前的3D軟件模型導(dǎo)出功能都不那么完美

3、,經(jīng)常會(huì)出現(xiàn)缺面少線的情況,有時(shí)還會(huì)遇到導(dǎo)出的模型根本打不開的情況。OBJ文件是一種文本文件格式,比起二進(jìn)制文件為主、連每個(gè)塊的用途也得試探來試探去的3DS,文本文件為主的OBJ對(duì)我們更友好。與3DS文件的樹狀塊結(jié)構(gòu)不同,OBJ文件只是很單純的字典狀結(jié)構(gòu),沒有塊ID來表征名字而是簡(jiǎn)單地用易懂的表意字符來表示。總之看上去是賞心悅目的樣子,而苦處也就只有實(shí)際寫導(dǎo)入代碼的時(shí)候才知道了- -。OBJ文件優(yōu)化了存儲(chǔ)但劣化了讀寫。如果Maya自身的模型出錯(cuò),也可以先轉(zhuǎn)成OBJ格式,修改之后再導(dǎo)回Maya。OBJ文件 - 概念OBJ文件是Wavefront公司為它的一套基于工作站的3D建模和動(dòng)畫軟件&quo

4、t;Advanced Visualizer"開發(fā)的一種文件格式,這種格式同樣也以通過Maya讀寫。OBJ文件是一種文本文件,可以直接用寫字板打開進(jìn)行查看和編輯修改。另外,有一種與此相關(guān)二進(jìn)制文件格式(使用".MOD"后綴),二進(jìn)制格式作為專利未公開,因此在這里我們不作討論。OBJ最近的有文檔的版本是v3.0,代替以前的v2.11版本。OBJ3.0格式支持多邊形(Polygon),直線(Lines),表面(Surfaces),和自由形態(tài)曲線(Free-form Curves)。直線和多角形通過它們的點(diǎn)來描述,曲線和表面則根據(jù)于它們的控制點(diǎn)和依附于曲線類型的額外信息來

5、定義。這些信息支持規(guī)則和不規(guī)則的曲線,包括那些基于貝塞爾(Bezier)曲線,B樣條(B-spline),基數(shù)(Cardinal/Catmull-Rom樣條),和泰勒方程(Taylor equations)的曲線。1、OBJ文件 - 特點(diǎn)(1)OBJ是一種3D模型文件,因此不包含動(dòng)畫、材質(zhì)特性、貼圖路徑、動(dòng)力學(xué)、粒子等信息。(2)OBJ文件主要支持多邊形(Polygons)模型。雖然OBJ文件也支持曲線(Curves)、表面(Surfaces)、點(diǎn)組材質(zhì)(Point Group Materials),但Maya導(dǎo)出的OBJ文件并不包括這些信息。(3)OBJ文件支持三個(gè)點(diǎn)以上的面,這一點(diǎn)很有用。

6、很多其它的模型文件格式只支持三個(gè)點(diǎn)的面,所以我們導(dǎo)入Maya的模型經(jīng)常被三角化了,這對(duì)于我們對(duì)模型的再加工甚為不利。(4)OBJ文件支持法線和貼圖坐標(biāo)。在其它軟件中調(diào)整好貼圖后,貼圖坐標(biāo)信息可以存入OBJ文件中,這樣文件導(dǎo)入Maya后只需指定一下貼圖文件路徑就行了,不需要再調(diào)整貼圖坐標(biāo)了。 2、OBJ文件 - 基本結(jié)構(gòu)OBJ文件不需要任何種文件頭(File Header),盡管經(jīng)常使用幾行文件信息的注釋作為文件的開頭。OBJ文件由一行行文本組成,注釋行以一個(gè)“井”號(hào)(#)為開頭,空格和空行可以隨意加到文件中以增加文件的可讀性。有字的行都由一兩個(gè)標(biāo)記字母也就是關(guān)鍵字(Keyword)開

7、頭,關(guān)鍵字可以說明這一行是什么樣的數(shù)據(jù)。多行可以邏輯地連接在一起表示一行,方法是在每一行最后添加一個(gè)連接符()。注意連接符()后面不能出現(xiàn)空格或tab格,否則將導(dǎo)致文件出錯(cuò)。下列關(guān)鍵字可以在OBJ文件使用。在這個(gè)列表中, 關(guān)鍵字根據(jù)數(shù)據(jù)類型排列,每個(gè)關(guān)鍵字有一段簡(jiǎn)短描述。頂點(diǎn)數(shù)據(jù)(Vertex data):v 幾何體頂點(diǎn) (Geometric vertices)vt 貼圖坐標(biāo)點(diǎn) (Texture vertices)vn 頂點(diǎn)法線 (Vertex normals)vp 參數(shù)空格頂點(diǎn) (Parameter space vertices)自由形態(tài)曲線(Free-form curve)/表面屬性(su

8、rface attributes):deg 度 (Degree)bmat 基礎(chǔ)矩陣 (Basis matrix)step 步尺寸 (Step size)cstype 曲線或表面類型 (Curve or surface type)元素(Elements):p 點(diǎn) (Point)l 線 (Line)f 面 (Face)curv 曲線 (Curve)curv2 2D曲線 (2D curve)surf 表面 (Surface)自由形態(tài)曲線(Free-form curve)/表面主體陳述(surface body statements):parm 參數(shù)值 (Parameter values )trim

9、外部修剪循環(huán) (Outer trimming loop)hole 內(nèi)部整修循環(huán) (Inner trimming loop)scrv 特殊曲線 (Special curve)sp 特殊的點(diǎn) (Special point)end 結(jié)束陳述 (End statement)自由形態(tài)表面之間的連接(Connectivity between free-form surfaces):con 連接 (Connect)成組(Grouping):g 組名稱 (Group name)s 光滑組 (Smoothing group)mg 合并組 (Merging group)o 對(duì)象名稱 (Object name)顯示

10、(Display)/渲染屬性(render attributes):evel 導(dǎo)角插值 (Bevel interpolation) c_interp 顏色插值 (Color interpolation) d_interp 溶解插值 (Dissolve interpolation) lod 細(xì)節(jié)層次 (Level of detail) usemtl 材質(zhì)名稱 (Material name) mtllib 材質(zhì)庫 (Material library) shadow_obj 投射陰影 (Shadow casting) trace_obj 光線跟蹤 (Ray tracing) ctech 曲線近似技術(shù)

11、 (Curve approximation technique) stech 表面近似技術(shù) (Surface approximation technique)3、OBJ文件 - 實(shí)例: 下面通過實(shí)例來具體講解。 OBJ文件記錄一個(gè)四邊形的代碼: v -0.58 0.84 0 v 2.68 1.17 0 v 2.84 -2.03 0 v -1.92 -2.89 0 f 1 2 3 4讓我們來創(chuàng)建一個(gè)OBJ文件,不過這一回我們不用3D軟件,而是用寫字板來創(chuàng)建。 打開寫字板,把上面的5行代碼寫上去,可以適當(dāng)加一點(diǎn)注釋。&

12、#160;保存文件為文本格式,文件名為"myObj.obj",。注意:代碼最后一定要按一下回車把光標(biāo)切換到下一行,就是說加一個(gè)換行符(n)。否則會(huì)看到如下錯(cuò)誤信息: / Error: line 1: OBJ file line 5: index out of range. / / Error: line 1: Error reading file. /在Maya中導(dǎo)入"myObj.obj"文件,看見了吧,導(dǎo)入了一個(gè)四邊形。這個(gè)四邊形的形狀是完全由前面的那5行代碼決定的。       

13、     下面我們來分析一個(gè)這些代碼。 v -0.58 0.84 0 畫一個(gè)四邊形需要四個(gè)頂點(diǎn),這是第一個(gè)頂點(diǎn),"v"表示頂點(diǎn)(vertex),"-0.58"為這個(gè)頂點(diǎn)的X軸坐標(biāo)值,"-0.84"為Y軸坐標(biāo)值,"0"為Z軸坐標(biāo)值。這是第一個(gè)頂點(diǎn),它的索引號(hào)是1。索引號(hào)是畫面時(shí)要用到的。 v 2.68 1.17 0 v 2.84 -2.03 0 v -1.92 -2.89 0 這分別是第二、三、四個(gè)頂點(diǎn),它們的索引號(hào)分

14、別是2,3,4?,F(xiàn)在開始畫面,"f"表示面(face),1,2,3,4是前面那四個(gè)頂點(diǎn)的索引號(hào)。請(qǐng)注意畫這個(gè)面連接點(diǎn)的順序,是從第一個(gè)點(diǎn)出發(fā),依次連接第二、三、四個(gè)點(diǎn)。如果連接的順序不同所生成的面也會(huì)截然不同,例如"f 1 2 4 3"會(huì)產(chǎn)生一個(gè)交迭的面,如圖。 面的連接點(diǎn)是按順時(shí)針排列或逆時(shí)針排列,將決定面的法線方向(面的反正)。 例如:"f 1 2 3 4"面的法線向外,"f 4 3 2 1"面的法線向里。 面的連接點(diǎn)順序錯(cuò)誤,是導(dǎo)致導(dǎo)入模型產(chǎn)生碎面的一個(gè)重要原因。一個(gè)面不能出現(xiàn)兩個(gè)以上相同的頂點(diǎn),這也是檢查O

15、BJ文件出錯(cuò)的一個(gè)要點(diǎn)。例如:"f 1 2 3 4 3",有兩個(gè)相同的頂點(diǎn),索引號(hào)是3。一個(gè)面出現(xiàn)兩個(gè)相同頂點(diǎn),可能造成程序的內(nèi)存分配錯(cuò)誤。下面來研究一下Maya導(dǎo)出的OBJ文件。 在Maya中創(chuàng)建一個(gè)多邊形立方體,選中這個(gè)立方體,選擇菜單"File -> Export Selection."導(dǎo)出格式為OBJ,文件名為"cube.obj",如果沒有此格式,請(qǐng)?jiān)赑lug-in Manager中載入"objExport.mll"。 用寫字板打開"cube.obj",可以看到如下代碼:

16、 # The units used in this file are centimeters. g default v -0.500000 -0.500000 0.500000 v 0.500000 -0.500000 0.500000 v -0.500000 0.500000 0.500000 v 0.500000 0.500000 0.500000 v -0.500000 0.500000 -0.500000 v 0.500000 0.500000 -0.500000 v -0.500000 -0.5

17、00000 -0.500000 v 0.500000 -0.500000 -0.500000 vt 0.000000 0.000000 vt 1.000000 0.000000 vt 0.000000 1.000000 vt 1.000000 1.000000 vt 0.000000 2.000000 vt 1.000000 2.000000 vt 0.000000 3.000000 vt 1.000000 3.000000 vt 0.000000 4.000000 vt 1.0000

18、00 4.000000 vt 2.000000 0.000000 vt 2.000000 1.000000 vt -1.000000 0.000000 vt -1.000000 1.000000 vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000 vn 0.000000 0.000000 1.000000 vn 0.000000 1.000000 0.000000 vn

19、 0.000000 1.000000 0.000000 vn 0.000000 1.000000 0.000000 vn 0.000000 1.000000 0.000000 vn 0.000000 0.000000 -1.000000 vn 0.000000 0.000000 -1.000000 vn 0.000000 0.000000 -1.000000 vn 0.000000 0.000000 -1.000000 vn 0.000000 -1.000000 0.000000 vn 0.000000 -1.00

20、0000 0.000000 vn 0.000000 -1.000000 0.000000 vn 0.000000 -1.000000 0.000000 vn 1.000000 0.000000 0.000000 vn 1.000000 0.000000 0.000000 vn 1.000000 0.000000 0.000000 vn 1.000000 0.000000 0.000000 vn -1.000000 0.000000 0.000000 vn -1.000000 0.000000 0.000000

21、60;vn -1.000000 0.000000 0.000000 vn -1.000000 0.000000 0.000000 s off g pCube1 usemtl initialShadingGroup f 1/1/1 2/2/2 4/4/3 3/3/4 f 3/3/5 4/4/6 6/6/7 5/5/8 f 5/5/9 6/6/10 8/8/11 7/7/12 f 7/7/13 8/8/14 2/10/15 1/9/16 f 2/2/17 8/11/18 6/12/19 4/4/20 

22、;f 7/13/21 1/1/22 3/3/23 5/14/24 這個(gè)文件看起來稍復(fù)雜一些,用到了許多關(guān)鍵詞,你可以對(duì)照前面的列表查看一下每個(gè)關(guān)鍵詞的意思。 我來解釋一下。 "vt 1.000000 0.000000"這句"vt"代表點(diǎn)的貼圖坐標(biāo)。 "vn 0.000000 0.000000 -1.000000"這句"vn"代表點(diǎn)的法線。"s off"表示關(guān)閉光滑組。 "usemtl initialShadingGroup"表

23、示使用的材質(zhì)。 "f 7/13/21"這時(shí)在面的數(shù)據(jù)中多了貼圖坐標(biāo)uv點(diǎn)和法線的索引號(hào),索引號(hào)分別用左斜線(/)隔開。 格式:"f 頂點(diǎn)索引/uv點(diǎn)索引/法線索引"。 "g pCube1"表示組,這里的成組與Maya中的成組不一樣,這里的成組是指把"g pCube1"后出現(xiàn)的面都結(jié)合到一起,組成一個(gè)整的多邊形幾何體。把"cube.obj"文件修改一下就知道成組的意思了。把"s off"這句后面的代碼替換成以下代碼: usemtl ini

24、tialShadingGroup g pCube_Face1 f 1/1/1 2/2/2 4/4/3 3/3/4 g pCube_Face2 f 3/3/5 4/4/6 6/6/7 5/5/8 g pCube_Face3 f 5/5/9 6/6/10 8/8/11 7/7/12 g pCube_Face4 f 7/7/13 8/8/14 2/10/15 1/9/16 g pCube_Face5 f 2/2/17 8/11/18 6/12/19 4/4/20 g pCube_Face6&

25、#160;f 7/13/21 1/1/22 3/3/23 5/14/24 導(dǎo)入Maya后可以看到,立方體的每個(gè)面是分離的,每個(gè)面的名稱分別是"pCube_Face(16)",可見組的名稱其實(shí)就是單獨(dú)幾何體的名稱??刹豢梢杂弥形拿麕缀误w(組)呢?試試就知道了,把前面的代碼改成: usemtl initialShadingGroup g 立方體面1 f 1/1/1 2/2/2 4/4/3 3/3/4 g 立方體面2 f 3/3/5 4/4/6 6/6/7 5/5/8 g 立方體面3 f 5/5/9

26、 6/6/10 8/8/11 7/7/12 g 立方體面4 f 7/7/13 8/8/14 2/10/15 1/9/16 g 立方體面5 f 2/2/17 8/11/18 6/12/19 4/4/20 g 立方體面6 f 7/13/21 1/1/22 3/3/23 5/14/24試一下,會(huì)發(fā)現(xiàn)模型順利的導(dǎo)入了。雖然物體的名稱都變亂碼了,可這并不是很嚴(yán)重的事。 不過使用中文名并不總是這么順利,把"g 立方體面1"這行改為"g 選擇"再試試看,這回導(dǎo)入時(shí)模型根本無法出現(xiàn),只會(huì)出現(xiàn)如下的錯(cuò)誤

27、信息: / Error: line 1: Your OBJ file contains a line which is too long to be parsed. Please edit your obj file. / / Error: line 1: Error reading file. / 由此可見,物體命名的不規(guī)范也是導(dǎo)致OBJ文件出錯(cuò)的原因之一。 關(guān)于Maya的物體命名,英文名是很保險(xiǎn)的,標(biāo)點(diǎn)符號(hào)中只有下劃線(_)可用,數(shù)字不能用放到名稱的開頭,盡量不要用中、日、韓等雙字節(jié)文字。 OBJ文件不支持有孔的多邊形面。 舉個(gè)例

28、子說明一下: 選擇Maya的創(chuàng)建多邊形工具(Polygons -> Create Polyon Tool),在視圖中畫一個(gè)四邊形,不要按回車,按Ctrl在四邊形中間點(diǎn)一下,可以繼續(xù)在四邊形中挖一個(gè)洞。把這個(gè)有孔的多邊形存成OBJ格式,在導(dǎo)入Maya時(shí),會(huì)發(fā)現(xiàn)多邊形少了一塊。如果你把這也看成錯(cuò)誤,現(xiàn)在至少你已經(jīng)知道錯(cuò)誤的原因了,就是OBJ文件不支持有孔的多邊形面。OBJ文件 - 實(shí)際問題: 現(xiàn)在來討論一點(diǎn)比較實(shí)際的問題吧,就是一旦你遇到了一個(gè)出錯(cuò)的OBJ文件,倒底該怎么辦? 當(dāng)你打開OBJ文件后,往往會(huì)看到有幾萬行的代碼,你恐怕還沒本事情一眼看出錯(cuò)誤所在行,除

29、非程序的錯(cuò)誤信息中已經(jīng)告訴你錯(cuò)誤行。如果你不知道錯(cuò)誤在哪里,可以用排除法,弄清楚肯定正確的代碼范圍,通過縮減錯(cuò)誤代碼范圍定位錯(cuò)誤。例如,你先新建一個(gè)空的OBJ文件,把有錯(cuò)的OBJ文件代碼粘貼一半過來,然后把這個(gè)只有一半代碼的新OBJ文件導(dǎo)入Maya。如果這時(shí)沒有錯(cuò)誤信息,說明錯(cuò)誤行是在另一半代碼中,可以從另一半代碼中再粘貼一部分代碼試試看;如果這時(shí)出現(xiàn)錯(cuò)誤,說明錯(cuò)誤行就在粘貼的代碼中,可以把粘貼過來的代碼刪去一部分再試試看。就這樣,逐步縮減范圍直到找到錯(cuò)誤行為止。 這種方法雖然很麻煩,不過頗為有效。如果你不會(huì)編程,又遇到非常緊急的情況,這種方法還是值得一試的。OBJ文件 - 細(xì)節(jié):&

30、#160;掌握了這么多差不多也夠用了,不過由于網(wǎng)上詳細(xì)講解OBJ文件的中文文檔很少,我還是再講一些例子,給大家提供多一點(diǎn)的信息吧。簡(jiǎn)單的OBJ格式寫法。 # Simple Wavefront file v 0.0 0.0 0.0 v 0.0 1.0 0.0 v 1.0 0.0 0.0 f 1 2 3 面可以使用負(fù)值索引,有時(shí)用負(fù)值索引描述面更為簡(jiǎn)便。 "f -4 -3 -2 -1"這句索引值"-3"表示從"f"這行往上數(shù)第3個(gè)頂點(diǎn),就是"v -0.5000

31、00 0.000000 -0.800000",其它的索引值以此類推。 因此與這一行等效的正值索引寫法為:"f 1 2 3 4" v -0.500000 0.000000 0.400000 v -0.500000 0.000000 -0.800000 v -0.500000 1.000000 -0.800000 v -0.500000 1.000000 0.400000 f -4 -3 -2 -1 OBJ文件不包含面的顏色定義信息,不過可以引用材質(zhì)庫,材質(zhì)庫信息儲(chǔ)存在一個(gè)后綴是".mtl"

32、;的獨(dú)立文件中。關(guān)鍵字"mtllib"即材質(zhì)庫的意思。 材質(zhì)庫中包含材質(zhì)的漫射(diffuse),環(huán)境(ambient),光澤(specular)的RGB(紅綠藍(lán))的定義值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。 "usemtl"指定了材質(zhì)之后,以后的面都是使用這一材質(zhì),直到遇到下一個(gè)"usemtl"來指定新的材質(zhì)。 下面的例子說明了指定材質(zhì)的方法。 Cube with Materials: # This cub

33、e has a different material # applied to each of its faces. mtllib master.mtl v 0.000000 2.000000 2.000000 v 0.000000 0.000000 2.000000 v 2.000000 0.000000 2.000000 v 2.000000 2.000000 2.000000 v 0.000000 2.000000 0.000000 v 0.000000 0.000000 0.000000 v 2.

34、000000 0.000000 0.000000 v 2.000000 2.000000 0.000000 # 8 vertices g front usemtl red f 1 2 3 4 g back usemtl blue f 8 7 6 5 g right usemtl green f 4 3 7 8 g top usemtl gold f 5 1 4 8 g left usemtl orange f 5 6 2 1&

35、#160;g bottom usemtl purple f 2 6 7 3 # 6 elements 貝塞爾片面(Bezier Patch): Maya不能導(dǎo)出OBJ格式的貝塞爾片面,卻能夠?qū)胨?。?dǎo)入的貝塞爾片面自動(dòng)轉(zhuǎn)換為Nurbs表面。 # 3.0 Bezier patch v -5.000000 -5.000000 0.000000 v -5.000000 -1.666667 0.000000 v -5.000000 1.666667 0.000000 v -5.000000 5.0000

36、00 0.000000 v -1.666667 -5.000000 0.000000 v -1.666667 -1.666667 0.000000 v -1.666667 1.666667 0.000000 v -1.666667 5.000000 0.000000 v 1.666667 -5.000000 0.000000 v 1.666667 -1.666667 0.000000 v 1.666667 1.666667 0.000000 v 1.666667 5.000000 0.000000 v 5.000000 -5.000000 0.000000 v 5.000000 -1.666667 0.000000 v 5.000000 1.666667 0.000000 v 5.000000 5.000000 0.000000 # 16 vertices cstype bezier deg 3 3 # Example of line

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論