版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章 光照模型及紋理映射基本光照模型 .1 在現(xiàn)實生活中,當(dāng)光照在非透明物體上時,部分光線被物體吸收 ,剩余的部分光線被反射。人眼依靠這種反射光來感知物體的形 狀、顏色和其他細(xì)節(jié)。從光源投向物體的光稱為入射光,從物體 表面反射回的光稱為反射光。1.1 光照模型概述當(dāng)光照射到物體表面上時,將出現(xiàn) 3種情況: 光從物體表面反射,形成反射光 光穿透物體,形成透射光 光被物體吸收,轉(zhuǎn)化成為物體的內(nèi)能在上述三種情形的光線中,通常只有前 2種情形的光線會對人眼 產(chǎn)生視覺效果,使人察覺到物體的色彩變化。Ope nGL用一種近似的光照模型模擬現(xiàn)實世界的光照效果。在該模 型中,僅當(dāng)物體表面吸收和反射光線時,光
2、源才會起做作用。每 一個物體表面都假定是由某種特性的材料構(gòu)成的。一種材料可能 發(fā)出自己的光線,也可能在各個方向上發(fā)散一些射入的光線,還 有可能像鏡子一樣在某個方向強烈地反射入射光。1.2 光照分量在Ope nGL的簡化光照模型中,將光照分為4個獨立的組成部分 :輻射光、環(huán)境光、漫反射光和鏡面反射光。1) 輻射光輻射光是直接從物體或光源發(fā)出的,不受任何其他光源的影響2) 環(huán)境光環(huán)境光是這樣一種光線,它被環(huán)境多次反射,以致于連初始方向也難以確定。這種光線看起來就像來自于所有的方向,當(dāng)它照在一個物體表面時,它在所有的方向上等量地反射。3) 漫反射光在被照射物體表面的反射光中,那些均勻地向各個方向反射
3、 出去的光,稱為漫反射光,如黑板反射就屬于漫反射光4) 鏡面反射光鏡面反射光是指超一定方向的反射光,如點光源照射光滑金屬球表面時,會在球表面形成一個特別亮的區(qū)域,呈現(xiàn)所謂的高亮 (Highlight ,這就是光源在該物體表面形成的鏡面反射光(SpecularLight 。點光源照射表面光滑的物體時,高亮區(qū)域小而亮;而 點光源照射表面粗糙的物體時,高亮區(qū)域大而不亮。1.3 創(chuàng)建光源光源有許多特性,如顏色、位置、方向等。不同特性的 光源,作用在物體上的效果是不一樣的。1.3.1 定義一個簡單光源在Ope nGL中,定義一個光源是由函數(shù)glLight(來實現(xiàn)的,該函數(shù)的原型為: void glLig
4、ht(GLenum light,GLenum pname ;light為一個光源,pname為光源light指定一個單值的光源參數(shù),其取值及其含義如下表所示:pn ame功能缺省值GL AMBIENT環(huán)境光分量的強度(0.0,0.0,0.0,1.0GL FIFFUSE漫反射光分量的強度(1.0,1.0,1.0,1.0GL SPECULAR鏡面反射光分量的強度(1.0,1.0,1.0,1.0 IGL POSITION光源位置(0.0,0.0,0.0,0.0GL SPOT DIRECTION光源聚光方向(0.0,0.0,-1.0GL SPOT EXPONENT光源的聚光指數(shù)0.0GL SPOT C
5、UTOFF聚光的截至角180.0GL CONSTANT ATTENUATION光的常數(shù)衰減因子1.0GL LINEAR ATTENUATION光的線性衰減因子0.0GL QUADERTIC ATTENUATION光的二次衰減因子0.0光源的數(shù)目與具體的實現(xiàn)的系統(tǒng)有關(guān),但至少支持8個光源它們用符號名稱GL_LIGHTi相互區(qū)別,這里0 i 。glLightfv(GL_LIGHT0,GL_DIFFUSE,light_diffuse。glLightfv(GL_LIGHT0,GL_SPECULAR,light_specular。glLightfv(GL_LIGHT0,GL_POSITION,light
6、_positio n。光源定義完畢后,必須調(diào)用glEnable(GL_LIGHT0打開該光源,否則該光源對場景中的物體不起作用。啟用光源和激活光源在Ope nGL中,如果需要使用光源,首先必須啟用光照。啟動光照的函數(shù)為:glEnable(GL_LIGHTING。取消光照的函數(shù)為:glDisable(GL_LIGHTING。對于具體定義的各個光源,可以為每個光源指定是否使用和停止使用。以上一個光源GL_LIGHT0為例。使用GL_LIGHT0光源的函數(shù) 為:glEnable(GL_LIGHTO,停止使用 GL_LIGHTO 光源的函數(shù)為:gIDisab le(GL_LIGHT0 。1.4 光源屬
7、性 光源屬性主要有光的顏色強度、光源的位置、光源的衰減特 性和光源的聚光效果等。1.4.1 光源顏色定義光源的 GL_AMBIENT,GL_DIFFUSE 和GL_SPECULAR 屬性時,參數(shù) params包含4個整數(shù)值或浮點值,它們分別用來指定光源的RGBA環(huán)境光、RGBA漫反射光和RGBA鏡面反射光。整數(shù)型數(shù)值被線性地映射 為浮點格式:最大的正數(shù)映射為1.0,最小點的負(fù)數(shù)映射為-1.0,0浮點型數(shù)值則直接映射。二者不被截斷。所有光源的GL_AMBIENT 環(huán)境光強度缺省為(0.0,0.0,0.0,1.0光源 GL_LIGHT0 的 DIFFUSE漫反射光強度缺省值為(1.0,1.0,1.
8、0,1.0,其他光源的漫反射光強度缺省值為(0.0,0.0,0.0,0.0。光源 GL_LIGHT0 的 GL_SPECULAR鏡面反射光強度缺省值為(1.0,1.0,1.0,1.0,其他光源的鏡面反射光強度缺省值為 (0.0,0.0,0.0,0.0。以下代碼將光源 GL_LIGHT0 的環(huán)境光顏色設(shè)置為藍色:GLfloat light_ambient=0.0,0.0,1.0,1.0 。 glLightfv(GL_LIGHT0,GL_AMBIENT,light_ambient 。1.4.2 光源的位置光源的位置有 2種,一種離場景無限遠(yuǎn),另一種在附近。遠(yuǎn)的 稱為方向光源,它射到物體上的光可以認(rèn)
9、為是平行的,現(xiàn)實生 活中,太陽就是這樣的光源。近的稱為位置光源,它的具體位 置決定了它對場景的作用效果,尤其是決定了光線的投射方向 ,臺燈就是這樣的位置光源。定義光源的GL_POSITION屬性時,參數(shù)param包含4個整數(shù)值或者浮點值,它們用來指定光源在齊次坐標(biāo)中的位置。整數(shù) 型和浮點型都直接映射,不被截斷。下面的代碼定義了光源GL_LIGHTO為方向光源,光源方向為(1.0,1.0,1.0。GLfloat light_position=1.0,1.0,1.0,0.0。 glLightfv(GL_LIGHTO,GL_POSITION,light_positio n 。下面的代碼定義了光源GL
10、_LIGHT0為位置光源,光源位置為(1.0,1.0,1.0。GLfloat light_position=1.0,1.0,1.0,1.0。 glLightfv(GL_LIGHT0,GL_POSITION,light_positio n 。光源的衰減自然世界中的光,光線的強度隨光源距離的增加而減少。因為 方向光源的距離是無限遠(yuǎn)的,隨距離的增加而衰減其光線強度 是沒有意義的,因此對方向光源的光線不進行衰減處理。對于 位置光源,Ope nGL使用下面的衰減因子來衰減光線的強度。衰減因子=K 其中,d為光源位置到物體頂點之間的距離。 kc為常數(shù)衰減因子(GL_CONSTANT_ATTENUATION
11、,默認(rèn)值為1. ke為線性衰減因子(GL_LINEAR_ATTENUATION,默認(rèn)值為0.0。 kq為二次衰減因子(GL_QUADRATIC_ATTENUATION,默認(rèn)值為 0.0、,、* ,、注意: GL_CONSTANT_ATTENUATION , GL_LINEAR_ATTENUATION 和GL_QUADRATIC_ATTENUATION 屬性時,參數(shù) params是一個整數(shù) 值或浮點值,且只能取非負(fù)值。1.4.4 聚光效果 控制光源聚光效果的參數(shù)有 3個,它們分別是:聚光的方向 GL_SPOT_DIRECTION、聚光的發(fā)散角GL_SPOT_CUTOFF和光源的強 度分布 GL_
12、SPOT_EXPONENT。定義光源的GL_SPOT_DIRECTION屬性時,參數(shù)paramS包含3 個整數(shù)值或浮點值,它們用來指定光源在齊次對象坐標(biāo)中的方 向。整型數(shù)值和浮點數(shù)值都直接映射。二者不被截斷。定義光源的GL_SPOT_CUTOFF屬性時,參數(shù)params是一個整 數(shù)值或浮點值,它們用來指定一個光源的最大發(fā)散角。整型數(shù) 值和浮點數(shù)值都直接映射。其取值范圍是 0,90和特殊值 180。 如果光照方向與它所照射的頂點的方向之間夾角大于聚光燈的 截止角,光線將被完全屏蔽。否則,光的強度將受到聚光指數(shù) 和發(fā)散因子所控制。缺省的聚光燈截止角是 180,它產(chǎn)生了均 勻的發(fā)散光。整數(shù)值或浮點值
13、,它們用來指定一個光源的強度分布。整型數(shù) 值和浮點數(shù)值都直接映射。其取值范圍為 0,128。有效的光強 度是按照光照方向與它所照射的頂點之間的方向之間的夾角的 余弦規(guī)律衰減的,一直衰減到聚光指數(shù)的冪。因此,較高的聚 光指數(shù)就會導(dǎo)致一個較高的匯聚光源,而不管其截止角究竟如 何。缺省的聚光指數(shù)是 0,它產(chǎn)生了均勻的光強衰減方式。下面的代碼定義了光源 GL_LIGHT0 的聚光方向為 (1.0,1.0,1.0 ,發(fā)散角為 45:glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,45.0 。GLfloat spot_direction=1.0,1.0,0.0 。 glLightfv(
14、GL_LIGHT0,GL_SPOT_DIRECTION,spot_direction 。1.5 小結(jié) 下面介紹使用一個多光源的實例,其中一個光源是標(biāo)準(zhǔn)的藍 色光源,另一個是紅色的聚光燈。代碼見附錄。也茨光源卻爭光源逼示2.紋理映射紋理映射是真實圖形制作的一個重要部分,運用紋理映射可 以方便地制作真是圖形,而不必花更多的時間去考慮物體的表面 紋理。如一張木制桌子其表面的木紋是不規(guī)范的,看上去又是那 么自然,如果在圖形制作中不用紋理映射,那么只是這張桌子面 紋理的設(shè)計,就要花費很大精力,而且設(shè)計結(jié)果也未必能像現(xiàn)實 中那么自然。如果運用紋理映射就非常方便,可以用掃描儀將這 樣的一張桌子掃成一個位圖。
15、然后具體的操作中,只需把桌面形 狀用多邊形畫出來,把桌面紋理貼上去就可以了。另外,紋理映射能夠在多邊形進行變換時仍保證紋理的圖案 與多邊形保持一致性。例如,以透視投影方式觀察墻面時,遠(yuǎn)端 的磚會變小,而近處的磚就會大一些。此外,紋理映射也可以用于其他方面。例如,使用一大片植 物的圖像映射到一些一些連續(xù)的多邊形上,以模擬地貌,或者大 理石,木紋等自然物質(zhì)的圖像作為紋理映射到相應(yīng)的多邊形上, 作為物體的真實表面。在Ope nGL中提供了一系列完整的紋理操作函數(shù),用戶可以 用它們構(gòu)造理想的物體表面,可以對光照物體進行處理,使其映 射到所處環(huán)境的景象,可以用不同方式應(yīng)用到曲面上,而且可以 隨幾何物體的
16、幾何屬性變化而變化,從而使制作的三維場景和三 維物體更真實,更自然。紋理映射只能工作在RGB模式下,在OpenGL中,進行紋理 映射的基本步驟如下:定義紋理;控制紋理;映射方式; 紋理坐標(biāo)。2.1 紋理的定義在最簡單的情況下,紋理是單個圖像。如同大多數(shù)圖像一樣,紋 理通常是一維和二維的,在一些應(yīng)用場合也使用三維紋理進行圖 形繪制。描述紋理的每個紋素可以由 1個、2個、3個或4個元素構(gòu) 成,由1個(R、G、B、A四元值的調(diào)制常數(shù)來表示任何內(nèi)容。2.1.1 一維紋理映射的定義在OpenGL中定義一維紋理的函數(shù)是glTexlmage1D(,原型為:voidglTexImage1D(GLenum ta
17、rget,Glint level,Glint components,GLsizei width,GLint border,GLenum format,GLenum type,const GLvoid* pixels。參數(shù)說明 :target指定紋理映射。在這里必須是GL_TEXTURE_1D。width指定紋理的寬,維紋理沒有高度,width必須是2n, n為正數(shù);border指定紋理的邊 界,必須是1或0; level指定多級分辨率的紋理圖像,只有一種分辨 率的level=0。component指定選用RGBA的哪些成分用于混合調(diào)整;pixe Is指定一個指針,指向紋理數(shù)據(jù)在內(nèi)存中的位置;f
18、ormat和type指定紋 理的映射格式和數(shù)據(jù)類型。ComponentSf定選用RGBA的哪些成分用于混合和調(diào)整,可 以是1,2,3,4。其中:1表示選用R成分;2表示選用R、A成分;3 表示選用R、G、B成分;4表示選擇R、G、B、A成分。Format可以接受一下符號常量: GL_COLOR_INDEX GL_RGB GL_RGBA GL_RED GL_GREEN GL_BLUE G L_A LPHA GL_LUMINANCE_ALPHAtype可以接受以下符號常量: GL_TYPE GL_UNSIDNED_BYTE GL_SHORT GL_INT GL_UNSIGNED_SHORT GL_
19、UNSIGNED_INT GL_FLOAT GL_BITMAP參數(shù)leve l用于指定不同分辨率的紋理,使用時自然要考慮紋理波 的問題。2.1.2 二維紋理映射的定義在OpenGL中,二維紋理的定義與一維紋理略有不同,使用函數(shù)gITexlmage2D(,該函數(shù)的原型為:voidglTexlmage2D(GLe numtarget,Glint level,GLenum components,GLsizei width,GLsizei height,Glintborder,GLenum gormat,GLenum type,const GLvoid*pixel參數(shù)說明:target旨定紋理映射,此
20、處必須是GL_TEXTURE_2D。level指定多級分辨率紋理圖像,當(dāng)只有一種分辨率時level=0; component啲含義與一維紋理一樣,是選擇用于調(diào)整和混合的成分,各取值及其 含義與一維紋理一樣;width指定紋理圖像的高度,必須是2n,n為 正數(shù);height指定紋理圖像的高,必須是 2,n為正數(shù);borde為邊 界寬,必須是0和 1 ; format和type分別指定紋理映射的格式和數(shù)據(jù) 類型。其取及其含義與一維紋理定義一致;pixel指定一個指針, 指向紋理數(shù)據(jù)在內(nèi)存中的位置。紋理演示實例口回區(qū)j簡單紋理映射演示部分代碼說明: 紋理生成函數(shù),該函數(shù)用于產(chǎn)生所需要的紋理數(shù)據(jù),源代
21、碼如下:void makelmage(voidfor (i = 0 。 i for (j = 0 。j r=(i*j%255 。 g=(4*i%255 。 b=(4*j%255 。Imageij0= (GLubyte r 。Imageij1= (GLubyte g 。Imageij2= (GLubyte b 。初始化函數(shù),在該函數(shù)中主要進行了生成紋理數(shù)據(jù)、設(shè)置像素存儲模式、定義二維紋理及其參數(shù)等操作,原代碼如下:void myinit(void glClearColor (0.0, 0.0, 0.0, 0.0。 glEnable(GL_DEPTH_TEST 。 glDepthFunc(GL_L
22、ESS。 makeImage(。 / 生成紋理數(shù)據(jù) glPixelStorei(GL_UNPACK_ALIGNMENT, 1 。 / 設(shè)置像素存儲模式 glTexImage2D(GL_TEXTURE_2D, 0, 3, ImageWidth, ImageHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, &Image000 。 / 定義二維紋理映射 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, GL_CLAMP 。 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T, GL_C
23、LAMP 。 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_NEAREST 。 glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_NEAREST 。 / 定義紋理映射參數(shù)glTexEnvf(GL_TEXTURE_ENV , GL_TEXTURE_ENV_MODE, GL_DECAL 。 / 數(shù)值紋理環(huán)境參數(shù)glEnable(GL_TEXTURE_2D 。 / 使用二維紋理 glShadeModel(GL_FLAT 。場景繪制函數(shù),在該函數(shù)中首先清除了顏色和緩沖區(qū),然后
24、繪制了2個定義紋理坐標(biāo)的四邊形,源代碼如下:void CALLBACK display(voidglClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT 。glVertex3f(-2.0, -1.0, 0.0。 glVertex3f(-2.0, 1.0, 0.0。 glVertex3f(0.0, 1.0, 0.0。 glVertex3f(0.0, -1.0, 0.0。 glVertex3f(1.0, -1.0, 0.0。 glVertex3f(1.0, 1.0, 0.0。 glVertex3f(2.41421, 1.0, -1.41421。 glVer
25、tex3f(2.41421, -1.0, -1.41421。glBegin(GL_QUADS 。glTexCoord2f(0.0, 0.0。glTexCoord2f(0.0, 1.0。glTexCoord2f(1.0, 1.0。glTexCoord2f(1.0, 0.0。glTexCoord2f(0.0, 0.0。glTexCoord2f(0.0, 1.0。glTexCoord2f(1.0, 1.0。glTexCoord2f(1.0, 0.0。glEnd( 。glFlush( 。2.2紋理數(shù)據(jù)的獲取在Ope nGL中的紋理映射所使用的紋理數(shù)據(jù),既可以是程序生成的一組數(shù)據(jù),也可以從外部文件中直接
26、讀取。直接創(chuàng)建法直接創(chuàng)建紋理的方法是利用函數(shù)直接設(shè)置各紋理像素點的RGB值,使用這種方法只能生成簡單的有一定的規(guī)律的紋理圖像,無法 模擬復(fù)雜的、比較自然的紋理圖像。不過 Ope nGL提供了從外部 圖像文件中讀取紋理的辦法。前面的實例就是采用程序直接生成 紋理數(shù)據(jù)的辦法,直接設(shè)置了各紋理像素點的 RGB顏色數(shù)值。2.1.2 讀取外部文件使用外部文件中的紋理數(shù)據(jù)最簡單的方法是利用Win dows下提供的一個函數(shù)auxDIBImageLoad(,該函數(shù)的原型為:AUX_RGBImageRec auxDIBImageLoad(LPCTSTR filename。該函數(shù)的功能是獲取紋理數(shù)據(jù),file n
27、ame指定讀取紋理的文件名 ,該函數(shù)可以讀取2種類型的文件格式:bmp格式和rgb格式,并 且能夠根據(jù)擴展名的不同,自動選擇讀取的方法。2.3 紋理坐標(biāo)2.3.1 紋理坐標(biāo)的指定在繪制紋理映射場景時,不僅要給出每個頂點定義的幾何坐標(biāo),同時還要定義紋理坐標(biāo)。經(jīng)過多次變換后,幾何坐標(biāo)決定頂點在屏幕上的繪制位置,而紋理坐標(biāo)決定紋理圖像中的哪一個元素賦 予該頂點。紋理圖像是方型數(shù)組,紋理坐標(biāo)通??梢远x成1D、2D、3D或4D的形式,稱為s,t,r和q坐標(biāo),以區(qū)別于物體坐標(biāo)(x,y,z,w和 其他坐標(biāo)。在OpenGL中,定義紋理坐標(biāo)函數(shù)是glTexCood*(,該函數(shù)的原型如下:void glTexC
28、oord1(GLi nt s。void glTexCoord2 (GLint s,GLint t 。void glTexCoord3 (GLint s,GLint t,GLint r 。void glTexCoord4 (GLint s,GLint t,GLint r,GLint q 。void glTexCoord v(const TYPE *v 。以上函數(shù)的功能為設(shè)置當(dāng)前紋理坐標(biāo),s,t,r,q指定紋理坐標(biāo),v指定一個指向一元、二元、三元或四元數(shù)組的指針,它將順次 指定相應(yīng)的紋理坐標(biāo)s,t,r和q。紋理映射的過程就是紋理坐標(biāo)和表示物體的幾何坐標(biāo)一一對應(yīng)的過程,下面的代碼是把裝入內(nèi)存的一塊紋理圖像映射到一個 幾何四邊形。glBegin(GL_QUAIDS/ 畫四邊形 glTexCoord2f(0.0,0.0。 glVertex3f(-4.0,-2.0,0.0。 glTexCoord2f(0.7,0.7。 glVertex3f(0.0,-2.0,0.0。 glTexCoord2f(1.0,0.7。 glVertex3f(0.0,2.0,0.0。 glTexCoord2f(0.0,0.7。 glVertex3f(-4.0,2.0,0.0。glEnd(。在紋理粘貼到物體以前,必須說明紋理怎樣和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生產(chǎn)主管每日工作培訓(xùn)
- 化工安全生產(chǎn)
- 江西省宜春市豐城市2023-2024學(xué)年三年級上學(xué)期第三次月考數(shù)學(xué)試卷
- 08 中華文化之傳統(tǒng)工藝-2025年中考英語新熱點時文閱讀
- 1.3地球的歷史(導(dǎo)學(xué)案)高一地理同步高效課堂(人教版2019必修一)
- 期中摸底測試(1-4單元)(試題)(含答案)2024-2025學(xué)年六年級上冊數(shù)學(xué)人教版
- 碩論開題全解析-從答辯準(zhǔn)備到學(xué)術(shù)規(guī)范
- 影響健康因素多 課件 2024-2025學(xué)年人教版(2024)初中體育與健康七年級全一冊
- 全省小學(xué)美術(shù)教師賽課一等獎人美版美術(shù)三年級下冊《恐龍的世界》課件
- 高中語文15永不消逝的歌聲課件蘇教版必修
- 自動化儀表工程施工及質(zhì)量驗收規(guī)范
- 外研版英語八年級上冊各模塊作文范文
- 正確選購叉車
- 移動式壓力容器充裝許可鑒定評審細(xì)則
- 石材運輸儲存方案
- 場景表模板(影視美術(shù)專業(yè))(劇本統(tǒng)籌表)
- 集裝箱內(nèi)裝倉庫倉儲最新協(xié)議
- 完整版旋挖樁施工方案
- 單樁負(fù)摩阻力計算例題
- STP生成樹協(xié)議講解PPT課件
- 音標(biāo)復(fù)習(xí)課件
評論
0/150
提交評論