亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于分形的三維海面研究及生成

        2011-10-27 07:41:00莊建東曾勇進(jìn)
        中國(guó)校外教育 2011年22期
        關(guān)鍵詞:效果方法

        ◆莊建東 曾勇進(jìn)

        (集美大學(xué)計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)教研室)

        基于分形的三維海面研究及生成

        ◆莊建東 曾勇進(jìn)

        (集美大學(xué)計(jì)算機(jī)工程學(xué)院計(jì)算機(jī)教研室)

        1 引言

        虛擬自然環(huán)境如地形、植物、海浪、云和火焰等的計(jì)算機(jī)模擬一直是計(jì)算機(jī)圖形學(xué)的重要研究課題之一,其中海浪的模擬相比其他自然環(huán)境的模擬更為復(fù)雜和困難。當(dāng)前對(duì)于海浪模擬仿真的建模方法根據(jù)具體實(shí)現(xiàn)原理可分為:基于計(jì)算流體力學(xué)方法、基于海浪譜方法、基于幾何造型方法和基于分形幾何方法。

        基于計(jì)算流體力學(xué)的方法雖然能夠生成逼真的海浪運(yùn)動(dòng)效果,但是由于其求解過(guò)程過(guò)于復(fù)雜,在實(shí)際應(yīng)用中一般很少使用。基于海浪譜方法只能模擬海浪的波動(dòng)效果而不能模擬海浪的翻轉(zhuǎn)卷曲效果?;趲缀文P头椒ㄊ歉鶕?jù)海浪的形態(tài)特點(diǎn),選擇幾何曲線或曲面構(gòu)造連續(xù)變化的海浪形狀?;诜中螏缀畏椒ㄒ话悴捎肍BM方法,生成海浪的分形曲面將生成點(diǎn)的坐標(biāo)設(shè)定為時(shí)間和空間相關(guān)的函數(shù),進(jìn)而生成海浪效果,同時(shí)通過(guò)插值的方法保證圖像的連續(xù)性有,因而在實(shí)際得到廣泛應(yīng)用。

        本文希望通過(guò)對(duì)海浪模擬仿真的建模方法的深入研究,以便能更好地了解和掌握如何通過(guò)計(jì)算機(jī)實(shí)現(xiàn)模擬自然界中的自然景觀技術(shù)打下基礎(chǔ)。

        2 靜態(tài)海浪生成的原理及算法

        分形幾何學(xué)的基本思想是:客觀事物具有自相似的層次結(jié)構(gòu),局部與整體在形態(tài)、功能、信息、時(shí)間、空間等方面具有統(tǒng)計(jì)意義上的相似性,成為自相似性。而懸浮微粒永不停息地做無(wú)規(guī)則運(yùn)動(dòng)的現(xiàn)象叫做布朗運(yùn)動(dòng)。分形理論最早是由美籍?dāng)?shù)學(xué)家曼德布羅特提出的,分形的重要特征之一就是自相似性,而海浪就可以看作是周期性的不同尺寸波形的疊加,這些不同尺寸的波形具有大尺度相關(guān)而小尺度相似的特征,且空間各向近似同性,即海浪具有自相似的特征,由這種自相似性可看出海浪具有分形特征。基于這個(gè)特征,可以利用少量數(shù)據(jù)生成具有較強(qiáng)真實(shí)感和實(shí)時(shí)性的海浪波動(dòng)效果。

        分形布朗運(yùn)動(dòng)(Fractional Brownian Motion)是由 B.Mandelbrot和、V.Ness于1968年針對(duì)隨機(jī)布朗運(yùn)動(dòng)的推廣,提出的一種統(tǒng)計(jì)自相似過(guò)程的數(shù)學(xué)模型,主要用于生成布朗運(yùn)動(dòng)過(guò)程。

        中點(diǎn)位移又叫做隨機(jī)中點(diǎn)位移法,是最簡(jiǎn)單和經(jīng)典的方法,是對(duì)分形布朗運(yùn)動(dòng)的直接應(yīng)用。一維隨機(jī)中點(diǎn)位移法的思想史:針對(duì)某一已知端點(diǎn)高程(或?qū)傩?的線段,其線段中點(diǎn)的高程(或?qū)傩?為其兩端點(diǎn)高程(或?qū)傩?的平均值再加一隨機(jī)位移量,位移后的兩線段再進(jìn)行上述中點(diǎn)細(xì)分并位移,遞歸直到滿(mǎn)足所需的分辨率為止。將其推廣到二維,依據(jù)表面構(gòu)網(wǎng)方式的不同,其模擬可分為三角形邊線細(xì)分法、方形-方形細(xì)分法、菱形-方形法等方法,其實(shí)現(xiàn)思想與一維類(lèi)似。本文采用的是菱形-方形法。

        2.1 菱形-方形法

        海浪分形曲面的生成使用FBM插值方法中的隨機(jī)中點(diǎn)位移算法.隨機(jī)中點(diǎn)位移算法一般包括三角形邊界法、方形法、菱形法、菱形-方形法等,下面介紹本文所采用的菱形-方形法.

        如圖1所示,首先從一個(gè)正方形的4個(gè)角點(diǎn)開(kāi)始,這4個(gè)角點(diǎn)A、B、C、D分別具有不同的高度值hA、hB、hC、hD值,然后計(jì)算出中點(diǎn)O的高度值hO,再根據(jù)4個(gè)角點(diǎn)的位置計(jì)算出四邊形各邊中點(diǎn)位置,同時(shí)計(jì)算出各邊中點(diǎn)的高度值:

        這樣在第一次細(xì)分過(guò)程中可以由一個(gè)正方形生成4個(gè)正方形,如圖1所示。其中●為初始正方形角點(diǎn),○為根據(jù)4個(gè)初始正方形角點(diǎn)生成的初始正方形中點(diǎn),■為根據(jù)4個(gè)初始角點(diǎn)和生成的正方形中點(diǎn)計(jì)算出的正方形4邊中點(diǎn),這樣就生成了4個(gè)新的正方形,同時(shí)計(jì)算各個(gè)點(diǎn)的高度值。以此類(lèi)推,第二次細(xì)分可生成16個(gè)正方形,第三次則可生成64個(gè),經(jīng)過(guò)i次細(xì)分生成的正方形為2(2i)個(gè)。

        由于生成各點(diǎn)高度不同,經(jīng)多次迭代后可生成一個(gè)近似曲面,這個(gè)曲面與真實(shí)海浪形狀比較接近,但是由于PC機(jī)硬件性能所限,迭代次數(shù)不能過(guò)多,以避免大量運(yùn)算可能產(chǎn)生的計(jì)算錯(cuò)誤。

        圖1 菱形-方形細(xì)分法

        2.2 基于分形的三維靜態(tài)海浪建模及實(shí)現(xiàn)算法

        2.2.1 分形海面繪制算法

        為了實(shí)現(xiàn)海浪運(yùn)動(dòng)效果,首先需要畫(huà)出靜態(tài)海浪曲面,沒(méi)分形前是1個(gè)正方形,第一次分形產(chǎn)生4個(gè)正方形,第二次細(xì)分可生成16個(gè)正方形,第三次則可生成64個(gè),經(jīng)過(guò)i次細(xì)分生成的正方形為22i個(gè)。

        同樣由于PC機(jī)硬件性能所限,迭代次數(shù)不能過(guò)多,以避免大量運(yùn)算可能產(chǎn)生的計(jì)算錯(cuò)誤,本課題最多只采用8次迭代。如圖所示經(jīng)過(guò)8次分形迭代所生成的靜態(tài)海浪曲面效果圖。

        圖2 八次分形迭代的靜態(tài)海浪曲面效果圖

        基于FBM方法的曲面生成算法如下:

        (1)確定迭代初始正方形個(gè)數(shù)g及迭代次數(shù)n。

        (2)確定隨機(jī)函數(shù)方程g()=(rand()%(r-1)-r/d)。

        (3)初始迭代次數(shù)m=0,然后對(duì)初始正方形的4個(gè)角點(diǎn)分別賦予隨機(jī)高度值hA、hB、hC、hD,并將生成的坐標(biāo)保存到坐標(biāo)數(shù)組中。

        (4)令當(dāng)前迭代次數(shù)m=m+1,計(jì)算當(dāng)次迭代所生成的所有點(diǎn)的坐標(biāo)值,并保存到坐標(biāo)數(shù)組中。(5)重復(fù)第4步,直到當(dāng)m=n-1時(shí)為最后一次迭代過(guò)程,結(jié)束迭代。(6)使用紋理映射方法將海浪源紋理映射到生成的曲面上,生成海浪分形圖形。

        3 運(yùn)動(dòng)海浪的生成的原理及算法

        海浪的運(yùn)動(dòng)特征很復(fù)雜,主要表現(xiàn)為形狀不規(guī)則,具有復(fù)雜性和隨機(jī)性。海浪的運(yùn)動(dòng)特征,可以概括為近似周期性的規(guī)則波形的疊加,即海浪的運(yùn)動(dòng)形態(tài)可以看作是由一系列具有不同頻率、波數(shù)、波高和傳播方向的規(guī)則波疊加而成,類(lèi)似于簡(jiǎn)單三維進(jìn)行波,根據(jù)海浪的這種運(yùn)動(dòng)特征可以使用多個(gè)正弦或余弦波疊加來(lái)近似地表示海浪的運(yùn)動(dòng)形態(tài)。

        3.1 海浪運(yùn)動(dòng)的幾何模型

        基于分形方法生成的海面是靜態(tài)的,為了實(shí)現(xiàn)海浪運(yùn)動(dòng)的效果,需將構(gòu)成海面點(diǎn)的高度值設(shè)為隨時(shí)間和空間變化的函數(shù),而海浪的運(yùn)動(dòng)形態(tài)可以看作是由一系列具有不同頻率、波數(shù)、波高和傳播方向的規(guī)則波疊加而成,類(lèi)似于簡(jiǎn)單三維進(jìn)行波,它的單一波形分量形式為:

        也就是說(shuō),在t時(shí)刻的波面可以看成是具有不同波高和不同頻率的n個(gè)波的總和。下面介紹各個(gè)參數(shù)的確定方法。

        表1 風(fēng)級(jí)、波浪高度和波動(dòng)周期的仿真參數(shù)

        3.2 海浪運(yùn)動(dòng)模擬算法

        為了模擬海面的運(yùn)動(dòng)效果,須將分形海浪生成點(diǎn)的波高設(shè)為與時(shí)間相關(guān)的函數(shù),使其隨著時(shí)間變化產(chǎn)生運(yùn)動(dòng)效果,具體實(shí)現(xiàn)算法如下:

        在八級(jí)海浪的情況下,經(jīng)過(guò)第七次迭代其效果如圖3所示。

        圖3 八級(jí)海浪的第七次迭代效果圖

        3.4 提高海浪運(yùn)動(dòng)模擬效果的OpenGL方法

        3.4.1 紋理映射技術(shù)

        紋理映射是將一個(gè)紋理圖像映射到三維物體表面來(lái)模擬景物表面細(xì)節(jié)的方法,是真實(shí)感圖形生成的有效途徑。實(shí)時(shí)模擬海浪波動(dòng)效果時(shí),如果對(duì)所有質(zhì)點(diǎn)都使用FBM方法生成進(jìn)行模擬,那么當(dāng)前的PC機(jī)性能無(wú)法同時(shí)保證模擬出的海浪效果的真實(shí)性和實(shí)時(shí)性。為此使用了具有四方連續(xù)性的海浪圖像作為紋理源貼到生成的每個(gè)正方形上。如圖4所示,這樣不僅可以有效地提高模擬效果的真實(shí)感,還能大大減少計(jì)算量,提高模擬的實(shí)時(shí)效果。

        圖4 紋理映射技術(shù)生成的三維海浪表面

        這里采用的方法是使用OpenGL中的gl_Teximage2D()和glEnable(GL_TEXTURE_2D)函數(shù)來(lái)實(shí)現(xiàn)紋理映射。

        3.4.2 源紋理拉伸技術(shù)

        在使用紋理映射時(shí),由于源紋理圖像的大小是固定的,但是使用隨機(jī)中點(diǎn)位移算法的菱形方形細(xì)分法生成的分形海面時(shí)由多次迭代生成且大小不一的正方形構(gòu)成,這些正方形大小與源紋理圖像大小不一定相同。這里使用了OpenGL中的glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN/MAG_FILTER,GL_LINEAR)函數(shù)解決了這個(gè)問(wèn)題,如圖5所示,當(dāng)源紋理圖像大于映射的正方形時(shí)使用MIN參數(shù),反之則使用MAG參數(shù)。

        圖5 源紋理拉伸技術(shù)生成的三維海浪表面

        3.4.3 雙緩沖技術(shù)

        雙緩沖區(qū)的窗口執(zhí)行繪圖命令實(shí)際上是在畫(huà)面以外建立一個(gè)場(chǎng)景,然后很快地交換到窗口視圖中。OpenGL中使用雙緩沖技術(shù),使用函數(shù)glutSwapBuffers()交換緩沖區(qū),將圖形緩沖區(qū)內(nèi)容交換到當(dāng)前畫(huà)面顯示緩沖區(qū).圖形緩沖區(qū)和當(dāng)前畫(huà)面緩沖區(qū)的顯示數(shù)據(jù)交替出現(xiàn),這種方式可以減少單一當(dāng)前畫(huà)面緩沖區(qū)由于計(jì)算延遲產(chǎn)生的閃爍現(xiàn)象,能有效地提高模擬效果。

        3.4.4 OpenGL 顯示列表

        采用顯示列表方式繪圖一般要比瞬時(shí)方式快,尤其是顯示列表方式可以大量地提高網(wǎng)絡(luò)性能,即當(dāng)通過(guò)網(wǎng)絡(luò)發(fā)出繪圖命令時(shí),由于顯示列表駐留在服務(wù)器中,因而使網(wǎng)絡(luò)的負(fù)擔(dān)減輕到最小。另外,在單用戶(hù)的機(jī)器上,顯示列表同樣可以提高效率。因?yàn)橐坏╋@示列表被處理成適合于圖形硬件的格式,則不同的OpenGL實(shí)現(xiàn)對(duì)命令的優(yōu)化程度也不同。

        3.4.5 霧化效果

        霧化是一種模擬自然界中霧氣對(duì)場(chǎng)景物體視覺(jué)效果產(chǎn)生影響的圖形繪制技術(shù)。此技術(shù)從視點(diǎn)到物體逐漸將物體的繪制顏色淡化,直至背景色。通過(guò)霧化處理可較好的表現(xiàn)出物體到視點(diǎn)的距離感。雖然霧化的具體計(jì)算非常復(fù)雜,但在OpenGL中的使用相關(guān)函數(shù)進(jìn)行處理卻非常簡(jiǎn)單。

        3.5 海浪運(yùn)動(dòng)模擬的實(shí)現(xiàn)及結(jié)果分析

        通過(guò)采用點(diǎn)高度值替換的方法可以比較好的模擬現(xiàn)實(shí)中的海浪運(yùn)動(dòng)的效果,既把后一點(diǎn)的高度值替換前一點(diǎn)的高度值,這樣就可以實(shí)現(xiàn)海浪的向前推進(jìn)和海浪具有波動(dòng)的效果,達(dá)到了比較好的實(shí)現(xiàn)效果。

        4 結(jié)論

        本文理論主要源于分形幾何學(xué),以分?jǐn)?shù)布朗運(yùn)動(dòng)數(shù)學(xué)模型為基礎(chǔ),進(jìn)行分形三維海浪表面的建模和分形海浪運(yùn)動(dòng)仿真生成技術(shù)的研究和應(yīng)用,通過(guò)對(duì)海浪的具體形態(tài)分析,得出了海浪的分形特征。根據(jù)FBM方法中的隨機(jī)中點(diǎn)位移算法,具體采用菱形—方形法,生成了海浪分形曲面。在分形海浪的建模過(guò)程中,采用二維高斯隨機(jī)插值算法,進(jìn)行隨機(jī)分形海浪,實(shí)現(xiàn)海浪的分形。其次海浪的運(yùn)動(dòng)形態(tài)可以看作是由一系列具有不同頻率、波數(shù)、波高和傳播方向的規(guī)則波疊加而以分形理論為基礎(chǔ),依據(jù)高度迭代方式,實(shí)現(xiàn)分形海浪的運(yùn)動(dòng),并根據(jù)具體海浪運(yùn)動(dòng)特點(diǎn),結(jié)合風(fēng)力對(duì)海浪運(yùn)動(dòng)效果的影響,同時(shí)采用紋理映射技術(shù)、源紋理拉伸技術(shù)、雙緩沖技術(shù)、OpenGL顯示列表、霧化效果等OpenGL方法提高海浪模擬效果的真實(shí)性和實(shí)時(shí)性,以Visual C++為開(kāi)發(fā)平臺(tái),通過(guò)調(diào)用OpenGL的接口函數(shù)進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)了對(duì)三維海浪運(yùn)動(dòng)的計(jì)算機(jī)模擬,較好地實(shí)現(xiàn)了海浪運(yùn)動(dòng)的效果。

        本課題雖然實(shí)現(xiàn)了三維真實(shí)感的海浪的場(chǎng)景構(gòu)造,但是對(duì)于構(gòu)建完備的三維浪花而言,僅僅是完成了該系統(tǒng)的基礎(chǔ)性建模和真實(shí)感科學(xué)算法的實(shí)現(xiàn)過(guò)程,這些工作為構(gòu)建完備的三維浪花系統(tǒng)打下了堅(jiān)實(shí)的基礎(chǔ)。在此基礎(chǔ)上,應(yīng)該加大對(duì)自然海浪的特征的研究,采用多種數(shù)學(xué)模型,以求滿(mǎn)足構(gòu)建各種自然海浪的需要。

        [1]曾文曲,王向陽(yáng).分形理論與分形的計(jì)算機(jī)模擬.沈陽(yáng):東北大學(xué)出版社,2001.1 -102.

        [2]黃心淵.虛擬現(xiàn)實(shí)技術(shù)與應(yīng)用.北京:科學(xué)出版社,1999,7.

        [3]劉浩,戴居豐,楊磊等.虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用研究.微計(jì)算機(jī)信息,2005,21(1):200 -201.

        [4]BAENSLEY M F.Fractal Everywhere[M].New York:Academic Press,1993.

        [5]吳斌,段海波,薛鳳武.OpenGL編程權(quán)威指南.中國(guó)電力出版社,2001,8.

        [6]孫博文.分型算法與程序設(shè)計(jì)——Visual C++實(shí)現(xiàn)[M].北京:科學(xué)出版社,2004.

        [7]BAENSLEY M F.Fractal Functions and Interpolation[J].Constructive Approximation ,1986,(2):203 -329.

        [8]王子凡,林宗堅(jiān).基于圖像表面積的分形布朗運(yùn)動(dòng)分?jǐn)?shù)維算法研究[J].武漢大學(xué)學(xué)報(bào),2005,30(2):161 -165

        [9]王琰,曾蘭玲.基于分形的三維竹子算法[J].中國(guó)圖像圖形學(xué)報(bào),2007,12(1):177 -182.

        猜你喜歡
        效果方法
        按摩效果確有理論依據(jù)
        學(xué)習(xí)方法
        迅速制造慢門(mén)虛化效果
        抓住“瞬間性”效果
        可能是方法不對(duì)
        模擬百種唇妝效果
        Coco薇(2016年8期)2016-10-09 02:11:50
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢(qián)方法
        捕魚(yú)
        国产最新一区二区三区天堂| 又紧又大又爽精品一区二区| 东京热人妻无码一区二区av| 麻豆精品久久久久久久99蜜桃| 国产成人香蕉久久久久| 国产优质av一区二区三区| 少妇无码太爽了在线播放| 真实国产老熟女粗口对白| 欧美伊人亚洲伊人色综| 日本小视频一区二区三区| 久久777国产线看观看精品| 首页 综合国产 亚洲 丝袜| 日韩在线看片| 国产精品成人有码在线观看| av熟妇一区二区三区| 黑人巨大精品欧美一区二区| 国产乱淫视频| 亚洲综合精品一区二区三区| 久久精品亚洲熟女av蜜謦 | 8av国产精品爽爽ⅴa在线观看| 亚洲码无人客一区二区三区| 白白色白白色视频发布| 精品少妇人妻av一区二区| 亚洲tv精品一区二区三区| 亚洲福利视频一区二区三区| 国产乱子伦精品无码专区| 国产精品va在线观看无码| 日本韩国三级aⅴ在线观看| 日韩av一区二区三区精品久久| 东京热无码av一区二区| 日韩亚洲欧美中文高清在线| 日本二区三区视频免费观看| 黑人老外3p爽粗大免费看视频| 色一情一乱一乱一区99av| 午夜国产一区二区三区精品不卡| 色综合久久人妻精品日韩| 婷婷色综合视频在线观看| 97se亚洲国产综合自在线| 国产成人久久精品77777综合| 国产一区二区中文字幕在线观看| 精品国产乱码久久久久久婷婷 |