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

?

基于圖形學(xué)算法的紋理映射技術(shù)的研究與實(shí)現(xiàn)

2018-12-14 09:05吳發(fā)輝張玲余文森
現(xiàn)代電子技術(shù) 2018年24期
關(guān)鍵詞:計(jì)算機(jī)圖形學(xué)

吳發(fā)輝 張玲 余文森

關(guān)鍵詞: 紋理映射技術(shù); 計(jì)算機(jī)圖形學(xué); 兩步紋理映射; 環(huán)境紋理映射; 樣條曲線; 參數(shù)曲面

中圖分類號(hào): TN911.73?34; TP393 ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2018)24?0071?04

Research and implementation of texture mapping technology based on graphics algorithm

WU Fahui, ZHANG Ling, YU Wensen

(Wuyi University, Wuyishan 354300, China)

Abstract: It is difficult for the current texture mapping technology to give the general expression due to the changeable geometrical shapes of the object, resulting in application limitations of the texture mapping technology. Therefore, the Catmull algorithm and Blinn algorithm applicable for irregular polygon and parametric curved surface texture mapping are studied. The two?step texture mapping technology and environmental texture mapping technology are adopted to realize plane and parametric curved surface texture mapping by using the spline curve mode in OpenGL. The results show that the research content in this paper has great significance for promotion and application of the texture mapping technology.

Keywords: texture mapping technology; computer graphics; two?step texture mapping; environmental texture mapping; spline curve; parametric curved surface

一直以來(lái)紋理映射技術(shù)均是計(jì)算機(jī)圖形學(xué)研究的熱點(diǎn),傳統(tǒng)的紋理映射技術(shù)可以有效增加計(jì)算機(jī)圖形的真實(shí)感[1?2]。同時(shí)隨著近年來(lái)計(jì)算機(jī)圖形技術(shù)的發(fā)展,紋理映射技術(shù)已經(jīng)由傳統(tǒng)的軟件繪圖領(lǐng)域發(fā)展到硬件圖形領(lǐng)域。此外,該技術(shù)也被廣泛應(yīng)用到各種復(fù)雜物體的圖形渲染當(dāng)中[3]。由于物體表面多由不規(guī)則的多邊形或曲面組成,難以建立統(tǒng)一的參數(shù)表達(dá)式,因此給紋理映射技術(shù)的實(shí)現(xiàn)帶來(lái)了困難[4]。針對(duì)上述問(wèn)題,本文研究了適用于不規(guī)則多邊形以及參數(shù)曲面的二維紋理映射算法。

1 ?紋理映射的基本算法

紋理映射問(wèn)題的實(shí)質(zhì)是物體表面的參數(shù)化問(wèn)題。在已知物體表面參數(shù)信息的基礎(chǔ)上,可以將空間中紋理圖像直接映射到物體表面。常見的紋理映射算法包括Catmull算法和Blinn算法[5?6]。

Catmull屬于一種遞歸分割的方法用于顯示參數(shù)曲面,即利用子曲面產(chǎn)生的像素按照雙線差值的方法來(lái)計(jì)算該點(diǎn)的法線方向和光亮度。同時(shí),Catmull算法在對(duì)曲面進(jìn)行分割的同時(shí)也會(huì)對(duì)相應(yīng)的紋理空間進(jìn)行曲面分割[7]。按照同樣的處理方法可以使得每個(gè)子曲面的像素和紋理空間中指定的區(qū)域相對(duì)應(yīng),從而得到平均紋理顏色。其的原理如圖1所示。在實(shí)際處理過(guò)程中,一個(gè)像素包含多個(gè)子曲面的空間投影,如圖2所示。假設(shè)像素e所對(duì)應(yīng)的物體表面包含4個(gè)子曲面,定義光亮度[ri]為面S在其中的投影面積Se與S1+S2+S3+S4的比值,則紋理映射的光亮度為:

[Ie=i=14riIi] ? ? ? ? ? ?(1)

通過(guò)對(duì)計(jì)算和像素e相關(guān)的每個(gè)子曲面對(duì)其光亮度的貢獻(xiàn)值,得到紋理映射的最終亮度。

在使用Catmull方法進(jìn)行紋理映射變換時(shí),可以不用考慮紋理空間和物體之間的逆變換。但由于其算法本身的缺點(diǎn),使得其在紋理空間的顯示精度方面有一定的局限性。同時(shí)為了對(duì)子曲面的紋理映射空間進(jìn)行像素轉(zhuǎn)換的計(jì)算,Catmull方法會(huì)占用大量的存儲(chǔ)空間,該缺點(diǎn)也限制了其發(fā)展。

而Blinn方法的提出則克服了上述缺點(diǎn)。其能夠?qū)⑾袼乇硎镜膮^(qū)域投影在景物表面上,然后利用映射到紋理空間的顯示曲面得到與其對(duì)應(yīng)的紋理屬性。因此,在一般的紋理映射過(guò)程中,會(huì)根據(jù)實(shí)際使用的需求結(jié)合Catmull算法和Blinn算法對(duì)圖像進(jìn)行綜合處理,從而達(dá)到令人滿意的效果。

2 ?紋理映射技術(shù)

紋理映射技術(shù)主要是針對(duì)由多邊形組成的不規(guī)則物體的表面紋理映射處理技術(shù),一般包括兩步紋理映射技術(shù)、環(huán)境紋理映射技術(shù)[8?9]。

2.1 ?兩步紋理映射技術(shù)

兩步紋理映射技術(shù)的核心是利用一個(gè)中間映射媒介,來(lái)完成表面紋理映射技術(shù)的處理工作。

首先,建立三維物體的表面中間映射媒介S:

[T(u,v)→T′(x′,y′,z′)] ? ? (2)

然后,將中介物紋理映射到目標(biāo)物體表面:

[T′(x′,y′,z′)→O(x,y,z)] ? ?(3)

這樣,紋理空間得到的物體映射便可由上述兩個(gè)映射復(fù)合得到,如下:

[(u,v)→S(x′,y′,z′)→O(x,y,z)] (4)

式(3)~式(4)表明了“紋理空間→中介空間→景物空間”的映射關(guān)系。兩步紋理映射的關(guān)鍵在于合適的中介表面的建立,及其到景物空間之間特定的映射關(guān)系。通常情況下,考慮常見的中介幾何,例如平面、柱面、立方體以及球面等可以建立以下4種映射關(guān)系,如圖3所示。

上述4種映射關(guān)系中,反射光線的映射最為廣泛。此外,還可以根據(jù)不同的排列組合構(gòu)成16種映射關(guān)系,如表1所示。在實(shí)際應(yīng)用過(guò)程中,考慮到真實(shí)的物理環(huán)境以及其他條件的限制,兩步紋理映射技術(shù)可以構(gòu)成9種有效組合。

2.2 ?環(huán)境紋理映射技術(shù)

環(huán)境紋理映射技術(shù)可以更好地模擬光線跟蹤效果,是兩步紋理映射技術(shù)的一種延伸和發(fā)展[10]。環(huán)境紋理映射技術(shù)的核心思想是通過(guò)一個(gè)包圍物體的映射“環(huán)境”,將物體表面紋理映射在其內(nèi)表面。這里的環(huán)境是指一個(gè)可以將物體完全包圍的映射曲面,例如球面或者立方體面。圖4為球面環(huán)境紋理映射技術(shù)示意圖。

從視點(diǎn)出發(fā),任取物體表面的一點(diǎn)P,光線V經(jīng)過(guò)該點(diǎn)反射得到反射光線Vr。放射光線與中介面的交點(diǎn)E(u,v),即為映射點(diǎn),則有:

[u=121+1πarctanVryVrx] ? ?(5)

[v=12(Vrz+1)] ? ? ? ? ?(6)

[Vr=(Vrx,Vry,Vrz)] ? ? ? ?(7)

根據(jù)上述關(guān)系,從而得到紋理映射信息。環(huán)境紋理映射技術(shù)是兩步紋理映射技術(shù)的發(fā)展,能夠充分利用入射光線信息以及景物空間反射信息,從而提高了紋理映射技術(shù)的準(zhǔn)確度和真實(shí)感。

3 ?表面紋理映射的實(shí)現(xiàn)

3.1 ?平面紋理映射的實(shí)現(xiàn)

OpenGL是一個(gè)開放的三維圖形軟件包,對(duì)圖形數(shù)據(jù)具有高效的處理能力。因此,本文利用OpenGL對(duì)紋理映射技術(shù)進(jìn)行研究。OpenGL在實(shí)現(xiàn)紋理映射技術(shù)過(guò)程中的基本步驟主要包括紋理定義、紋理控制、映射方式的確定和紋理坐標(biāo)的確定。在OpenGL中,利用void glTexImage2D定義一個(gè)基本的二維函數(shù),函數(shù)信息主要包括GLenum target,Glint level,Glint components,GLsize width,GL height等。其中,對(duì)于一個(gè)二維紋理映射而言,參數(shù)GLenum target是一個(gè)常數(shù)。

紋理控制單位是通過(guò)函數(shù)void glTexParameter{if}[v](GLenum target,GLenum pname, TYPE param)來(lái)實(shí)現(xiàn)的。其中:target表明函數(shù)的種類;pname指出紋理映射的方法;同時(shí),紋理映射參數(shù)由param來(lái)確定。

映射方式通過(guò)調(diào)用函數(shù)glTexEnv()來(lái)實(shí)現(xiàn),在OpenGL中提供了三種函數(shù):GL_DECAL,GL_MODULATE和GL_BLEND,分別用于實(shí)現(xiàn)紋理RGB顏色。

紋理的坐標(biāo)通過(guò)glTexGoord()來(lái)確定。一般情況下,程序中直接采用.bmp文件進(jìn)行貼圖。若使用坐標(biāo)現(xiàn)實(shí)確定,則使平面坐標(biāo)和二維紋理映射(s,t)相對(duì)應(yīng)即可;若使用自動(dòng)生成坐標(biāo)方式,則需要使用紋理生成函數(shù)GL_ONJECT_LINEAR來(lái)完成相應(yīng)的功能。圖5為利用glTexGoord()函數(shù)完成的平面紋理映射貼圖。

3.2 ?參數(shù)曲面紋理映射的實(shí)現(xiàn)

在計(jì)算機(jī)中,大量的曲線和曲面均通過(guò)樣條曲線的形式存在。其中,B樣條曲線是目前CAD設(shè)計(jì)中使用最為廣泛的一種樣條曲線。已知控制點(diǎn)為[Pi],則B樣條曲線的表達(dá)式為:

[C(u)=i=0nPiBi,k(u)] ? ? ? (8)

式中,[Bi,k(u)]為基函數(shù),定義如下:

[Bi,0(u)=1, ? ? ti≤u≤ti+10, ? ? 其他] ? ? ? (9)

[Bi,k(u)=u-tiBi,k-1(u)ti+k-ti+(ti+k+1-u)Bi+1,k-1(u)ti+k+1-ti+1] (10)

式中,[[t1,t2,…,tn+k+1]]為樣條曲線的節(jié)點(diǎn)矢量矩陣。

<E:\現(xiàn)代電子技術(shù)201824\Image\89t5.tif>

圖5 ?平面紋理映射貼圖

Fig. 5 ?Plane texture mapping

三維設(shè)計(jì)中通常包括NURBS樣條曲線,定義為:

[P(u)=i=0nBi,k(u)WiVii=0nBi,k(u)Wk] ? ? ?(11)

式中:V為控制點(diǎn);W為權(quán)重因子;B為NURBS樣條曲線的基函數(shù),定義如下:

[Bi,0(u)=1, ? ? ti≤u≤ti+10, ? ? 其他] ? ? ?(12)

[Bi,k(u)=u-tiBi,k-1(u)ti+k-ti+(ti+k+1-u)Bi+1,k-1(u)ti+k+1-ti+1 ? ? ? ? ? ? ? ? ? ? tk-1≤u≤tn+1,k>0] ?(13)

式中,[u=[u0,u1,…,um]]為節(jié)點(diǎn)矢量,節(jié)點(diǎn)數(shù)為m+1,控制點(diǎn)數(shù)為n+1,節(jié)點(diǎn)數(shù)量和控制點(diǎn)數(shù)量之間滿足:

[m=n+1] ? ? ? ? ? (14)

由二維平面推廣到三維曲面可得,NURBS曲面的定義如下:

[P(u)=i=0nj=0mBi,k(u)B(v)Wi,jVi,ji=0nj=0mBi,k(u)B(v)Wi,j] (15)

式中,[Bi,k(u)]和[B(v)]分別為沿[u]方向與v方向的B樣條函數(shù)曲線。

OpenGL在繪制樣條曲線的過(guò)程中,使用n+1階Bezier多項(xiàng)式對(duì)其進(jìn)行計(jì)算:

[Bni(u)=niu′(1-u)n-i, i=0,1,2,…,n] (16)

定義C([u])為樣條曲線的求值器,且[u]的取值范圍為0~1,則表達(dá)式為:

[C(u)=i=0nBni(u)Pi] ? ? ? (17)

求值器的值為:

[Cu-u1u2-u1] ? ? ? ? (18)

對(duì)于二維曲面,求值器的表達(dá)式為:

[S(u,v)=i=0nj=0mBni(u)Bmj(v)Pij] ? ?(19)

式中,Pij由[m×n]個(gè)控制點(diǎn)控制。

在OpenGL實(shí)現(xiàn)中,利用函數(shù)glEvalCoord2{fd}(u,v)定義曲面上的一個(gè)頂點(diǎn)左邊。同時(shí),參數(shù)[u]和v分別為一個(gè)已知值。同時(shí),利用glMapGrid2(·)函數(shù)可以定義一個(gè)二維網(wǎng)絡(luò);然后可利用函數(shù)glEvalMesh(·)得到二維網(wǎng)格映射求值器。圖6為利用以上函數(shù)得到的曲面紋理映射。

4 ?結(jié) ?語(yǔ)

本文通過(guò)研究紋理映射技術(shù)的Catmull算法和Blinn算法,在此基礎(chǔ)上提出可以實(shí)現(xiàn)平面紋理映射的兩步紋理映射技術(shù),以及用于實(shí)現(xiàn)曲面紋理映射的環(huán)境紋理映射技術(shù)。利用OpenGL建立參數(shù)曲面模型,對(duì)參數(shù)曲面模型紋理映射技術(shù)進(jìn)行驗(yàn)證。結(jié)果表明,本文研究?jī)?nèi)容對(duì)于紋理映射技術(shù)的應(yīng)用與推廣具有重要意義。

參考文獻(xiàn)

[1] 邵緒強(qiáng),聶霄,王保義.GPU并行計(jì)算加速的實(shí)時(shí)可視外殼三維重建及其虛實(shí)交互[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2017,29(1):52?61.

SHAO Xuqiang, NIE Xiao, WANG Baoyi. GPU?based real?time 3D visual hull reconstruction and virtual?reality interaction [J]. Journal of computer?aided design & computer graphics, 2017, 29(1): 52?61.

[2] 樊養(yǎng)余,王軍敏,余建明.高效的光照、旋轉(zhuǎn)、尺度不變紋理分類算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2017,29(11):1989?1996.

FAN Yangyu, WANG Junmin, YU Jianming. An Efficient texture classification algorithm with illumination, rotation and scale invariance [J]. Journal of computer?aided design & computer graphics, 2017, 29(11): 1989?1996.

[3] SHI K L,YONG J H, SUN J G, et al. Gn blending multiple surfaces in polar coordinates [J]. Computer?aided design, 2010, 42(6): 479?494.

[4] YASUI Y, KANAI T. Surface quality assessment of subdivision surfaces on programmable graphics hardware [C]// Proceedings of Shape Modeling Applications. Genova: IEEE, 2004: 129?138.

[5] 魯大營(yíng),朱登明,王兆其.基于紋理的多分辨率流場(chǎng)可視化算法[J].計(jì)算機(jī)研究與發(fā)展,2015,52(8):1910?1920.

LU Daying, ZHU Dengming, WANG Zhaoqi. Texture?based multi?resolution flow visualization [J]. Journal of computer research and development, 2015, 52(8): 1910?1920.

[6] 曾云,饒志恒.紋理映射技術(shù)中Mip?Map的研究[J].微計(jì)算機(jī)信息,2012,28(4):1?2.

ZENG Yun, RAO Zhiheng. Research on Mip?Map of texture mapping [J]. Microcomputer information, 2012, 28(4): 1?2.

[7] 江昊,何明一.基于特征約束點(diǎn)的紋理映射算法[J].計(jì)算機(jī)仿真,2009,26(1):237?239.

JIANG Hao, HE Mingyi. Texture mapping based on feature and constrained points [J]. Computer simulation, 2009, 26(1): 237?239.

[8] 申世恒,李柏巖,劉曉強(qiáng),等.基于區(qū)域增長(zhǎng)和三角分割的局部紋理映射算法[J].合肥工業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,35(2):176?179.

SHEN Shiheng, LI Baiyan, LIU Xiaoqiang, et al. An algorithm for regional texture mapping based on region growing and triangulation [J]. Journal of Hefei University of Technology (Natural science), 2012, 35(2): 176?179.

[9] 袁啟明,施侃樂(lè),雍俊海,等.曲面二階幾何連續(xù)性的混合曲率評(píng)價(jià)與可視化[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2011,23(11):1830?1837.

YUAN Qiming, SHI Kanle, YONG Junhai, et al. The mixed curvature and the G2 continuity visualization of surfaces [J]. Journal of computer?aided design & computer graphics, 2011, 23(11): 1830?1837.

[10] SHI K L, YONG J H, SUN J G, et al. Gn blending multiple surfaces in polar coordinates [J]. Computer?aided design, 2010, 42(6): 479?494.

猜你喜歡
計(jì)算機(jī)圖形學(xué)
邊標(biāo)志算法中常見問(wèn)題及解決方法
計(jì)算機(jī)圖形學(xué)教學(xué)中的“差別”培養(yǎng)
計(jì)算機(jī)圖形學(xué)與圖形圖像處理技術(shù)
用面向科學(xué)思維的教學(xué)方法改進(jìn)計(jì)算機(jī)圖形學(xué)課程教學(xué)
三維投影變換的MATLAB實(shí)現(xiàn)
二維離散點(diǎn)集Delaunay三角網(wǎng)生長(zhǎng)算法的改進(jìn)
論數(shù)字媒體藝術(shù)教育中專業(yè)方向細(xì)分的必要性
基于計(jì)算思維的計(jì)算機(jī)圖形學(xué)教學(xué)改革與實(shí)踐
計(jì)算機(jī)圖形學(xué)教學(xué)改革淺論
多邊形裁剪算法實(shí)現(xiàn)與改進(jìn)
莱阳市| 长白| 大庆市| 雷山县| 鄄城县| 吴江市| 松桃| 化州市| 承德市| 墨脱县| 阜阳市| 金川县| 澳门| 文登市| 和顺县| 沂水县| 钟祥市| 禹城市| 池州市| 泰宁县| 金堂县| 格尔木市| 康乐县| 石景山区| 巴林右旗| 乡宁县| 宜兰市| 陕西省| 龙山县| 依兰县| 特克斯县| 习水县| 漳州市| 易门县| 微博| 彰武县| 鄄城县| 义马市| 柘城县| 淅川县| 云霄县|