freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

三維畫面鋸齒處理本科畢業(yè)論文-文庫(kù)吧在線文庫(kù)

2025-08-19 23:41上一頁面

下一頁面
  

【正文】 問鼠標(biāo)、鍵盤、空間球、數(shù)據(jù)手套等這種直觀的三維圖形開發(fā)環(huán)境體現(xiàn)了 OpenGL的技術(shù)優(yōu)勢(shì) ,這也是許多三維圖形開發(fā)者熱衷于 OpenGL 的緣由所在。為了實(shí)現(xiàn)一個(gè)完整功能的圖形處理系統(tǒng),設(shè)計(jì)一個(gè)與 OpenGL 相關(guān) 5 的系統(tǒng)結(jié)構(gòu)為:其最底層是圖形硬件,第二層為 操作系統(tǒng),第三層為窗口系統(tǒng),第四層為 OpenGL,第五層為應(yīng)用軟件。由于缺乏大量數(shù)據(jù)的有效分析手段,大約有 95%的計(jì)算被浪費(fèi),這嚴(yán)重阻礙了科學(xué)研究的進(jìn)展。 科學(xué)可視化的主要過程是建模和渲染。另外就是能使用一個(gè)開發(fā)工具,如本課題所采用的 VC++。 C++語言及其特點(diǎn) C++它是一種使用非常廣泛的計(jì)算機(jī)編程語言。 程序結(jié)構(gòu)簡(jiǎn)單、書寫格式自由。程序可移植性強(qiáng)。 OpenGL 強(qiáng)有力的圖形函數(shù)不要求開發(fā)人員把三維物體模型的數(shù)據(jù)寫成固定的數(shù)據(jù)格式,也不要求開發(fā)人員編寫矩陣變換、外部設(shè)備訪問等函數(shù),大大地簡(jiǎn)化了編寫三維圖形的程序。 顏色模式設(shè)置: OpenGL 顏色模式有兩種,即 RGBA 模式和顏色索引( Color Index)。 特殊效果:利用 OpenGL 還能實(shí)現(xiàn)深度暗示( Depth Cue )、運(yùn)動(dòng)模糊( Motion Blur)等特殊效果。 ? 集成開發(fā)環(huán)境 : VC++ Vistual Studio 20xx or Vistual Studio 20xx ? 開發(fā)語言: C++ ? 分辨率:最佳效果 1280 1024 像素。 BOOL CDifferentView::SetupPixelFormat() { PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // pfd 結(jié)構(gòu)的大小 1, // 版本號(hào) PFD_DRAW_TO_WINDOW | // 支持在窗口中繪圖 PFD_SUPPORT_OPENGL | // 支持 OpenGL PFD_DOUBLEBUFFER, // 雙緩存模式 PFD_TYPE_RGBA, // RGBA 顏 色模式 程序初始化 形體建模 渲染色彩 動(dòng)畫的應(yīng)用 12 24, // 24 位顏色深度 0, 0, 0, 0, 0, 0, // 忽略顏色位 0, // 沒有非透明度緩存 0, // 忽略移位位 0, // 無累加緩存 0, 0, 0, 0, // 忽略累加位 32, // 32 位深度緩存 0, // 無模板緩存 0, // 無輔助緩存 PFD_MAIN_PLANE, // 主層 0, // 保留 0, 0, 0 // 忽略層 ,可見性和損毀掩模 }。 //設(shè)置邏輯調(diào)色板 return TRUE。 glEnable(GL_TEXTURE_2D)。 glTexCoord2f(0,1)。當(dāng)我們調(diào)用 glPopMatrix 時(shí),最后壓入棧的矩陣恢復(fù)為當(dāng)前矩陣。 //設(shè)置旋轉(zhuǎn) glBindTexture(GL_TEXTURE_2D, texture_id[])。 } 14 3 三維圖像顯示鋸齒處理技術(shù) 圖像顯示產(chǎn)生鋸齒原因 光柵圖形顯示器是目前使用最廣泛的圖形顯示器,因?yàn)樗哂幸韵聝?yōu)點(diǎn):光柵掃描顯示器具有固定的刷新順序,掃描從屏幕的左上角開始,從左到右,從上到下的順序進(jìn)行刷新,從而刷新控制部件得以簡(jiǎn)化,節(jié)約了成本。顯然只有畫水平線、垂直線時(shí),像素點(diǎn)集在直線路徑上的位置才是 15 準(zhǔn)確的,其他情況下的直線均或多或少地存在階梯狀(鋸齒狀)的現(xiàn)象。用于減少或消除這種走樣現(xiàn)象的技術(shù),稱為反走樣( Antialiasing)。 圖 提高顯示分辨率 一種可行的反走樣方法:在較高分辨率下用點(diǎn)取樣方法計(jì)算,然后對(duì)幾個(gè)像素的屬性進(jìn)行平均得到較低分辨率下的像素屬性。 6 7 5 3 4 1 2 圖 簡(jiǎn)單的過取樣方式 2)基于加權(quán)模板的過取樣 另一種過取樣方式(重疊過取樣),如圖 ,假設(shè)顯示器分辨率為 m*n,其 17 中 m=4, n=3,首先把顯示窗口劃分為( 2m+1) *( 2n+1)個(gè)像素,然后通過掃描轉(zhuǎn)換求得各子像素的顏色值,在對(duì)為于子像素中心及四周的 9個(gè)子像素的顏色值進(jìn)行平均,最后得到顯示像素的顏色亮度值。但實(shí)際上像素不是一個(gè)點(diǎn),而是一個(gè)有限區(qū)域。 這個(gè)方法中,起關(guān)鍵作用的是直線段與像素相交區(qū)域面積的計(jì)算。 ( 3)相同面積的相交區(qū)域?qū)ο袼氐牧炼蓉暙I(xiàn)相同,而與這個(gè)相交區(qū)域落在像素內(nèi)什么位置無關(guān)。 ),(S dSyxf =1 。由于直線與像素相交的形式有三種,那么我們?nèi)绾蝸砼袛嘀本€與像素相交的形式呢? P 0 ( 1 , 1 )P 1 ( 9 , 7 )2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 11 . 5 2 . 5 3 . 5 4 . 5 5 . 5 6 . 5 7 . 5 8 . 57 . 56 . 55 . 54 . 53 . 52 . 51 . 5XYy lx ux ly 5 圖 區(qū)域取樣示意圖 如圖 所示,設(shè)直線段與某像素縱列相交區(qū)域下頂點(diǎn)的 y 坐標(biāo)為 yl, m為該直線的斜率, y5是掃描線 y+。 WU 像素的中心亮度被定位在原始粒子的非整數(shù)位置。沿著直線長(zhǎng)度畫這樣的像素對(duì) ,就可以得到一條 WU 反走樣直線。 23 4 反走樣算法改進(jìn) 多段直線反走樣算法 概述 直線是最基本的圖形元素,是構(gòu)成復(fù)雜圖形的基礎(chǔ),人們?cè)谠O(shè)計(jì)和改進(jìn)直線生成算法方面已經(jīng)進(jìn)行了較深的研究。 例如,如圖 所示,( x0, y0) =( 0, 0),( xn, yn) =( 15, 12), m=gdc( 15,12) =3, p=5, q=4。因此我們只要反走樣八分之一圓弧其余的都可以對(duì)稱得到反走樣。 range = right left。 glPushMatrix()。 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)?;静呗允窃趲讉€(gè)不同的方向上抖動(dòng)半個(gè)像素, 這樣就可以使對(duì)象的邊緣部分出現(xiàn)模糊效果,而其實(shí)體區(qū)卻沒有變化。這樣的話比普通的反走樣直線算法明顯具有優(yōu)勢(shì) ,速度提高了很多。 算法的設(shè)計(jì)思想 設(shè)平面直線 l 的方程為 y=kx+b,根據(jù)斜率為 k 的取值范圍,可將平面直線分為 5類: ( 1) 0〈 k〈 1;( 2) 1〈 k〈 ?;( 3) ?〈 k〈 1; ( 4) 1〈 k〈 0;( 5) k=0, |k|=1, |k|=?; 根據(jù)數(shù)字圖形的特點(diǎn),對(duì)第( 5)類直線不必反走樣掃描轉(zhuǎn)換就可簡(jiǎn)單地生成直線。然后 ,因?yàn)橹本€只是覆蓋這個(gè)像素的很小一部分 xgap,直線將降低它的亮度,所以亮度應(yīng)該乘上 xgap。一個(gè)主循環(huán)將沿著直線的長(zhǎng)度畫一對(duì)像素 ,端點(diǎn)的像素對(duì)將被分別計(jì)算處理,如圖 所示。 一條經(jīng)過 wu 反走樣的直線要比一條普通的直線要好 ,產(chǎn)生光滑的邊界 ,。 20 ( 3)計(jì)算所有這些子像素對(duì)原像素亮度的貢獻(xiàn)之和。 加權(quán)區(qū)域取樣的特點(diǎn):一是接近理想直線的像素將被分配更多的灰度值;二是相鄰兩個(gè)像素的濾波器相交,所以直線條經(jīng)過該相交區(qū)域時(shí),將對(duì)這兩個(gè)像素都分配給適當(dāng)?shù)幕叶戎担@樣就縮小了直線條上相鄰像素的灰度差。 ( a) ( b) ( c) 圖 直線段與像素相交的三種情況 在圖 ( a)中, 假設(shè)三角形 x 方向上的邊長(zhǎng)為 D,則 y方向上的邊長(zhǎng)為mD,從而三角形的面積為 221 2mDmDD ?? . 在圖 ( b)中,假設(shè)梯形左底邊長(zhǎng)為 D,則右底邊長(zhǎng)為 Dm,從而梯形的面積為 22 1)( mDMDD ????? ; 所得到的面積介于 0, 1 之間的實(shí)數(shù),用它乘以像素的最大灰度值,即可得到像素實(shí)際顯示的灰度值。若一個(gè)像素與線條部分重疊,根據(jù)重疊區(qū)域面積的大小來選擇不同的灰度。 0 0 0 0 0 0 0 0 0 0 0 0 圖 另一種過取樣方式圖 圖 加權(quán)模板 3)過取樣算法 過取樣的一種簡(jiǎn)單方法 就是在較高的分辨率下進(jìn)行計(jì)算,掃描轉(zhuǎn)換求得各子像素的顏色亮度,然后對(duì)子像素的顏色亮度進(jìn)行平均,得到較低分辨率下的像素顏色亮度。 1)提高分辨率方法 過取樣方式的一個(gè)簡(jiǎn)單實(shí)現(xiàn)是用較高的分辨率進(jìn)行計(jì)算,如圖 ,在 x 方向和 y 方向上把分辨率提高一倍,使每個(gè)像素都對(duì)應(yīng) 4個(gè)子像素,然后掃描轉(zhuǎn)換求得各子像素的顏色亮度,在對(duì) 4個(gè)像素的顏色亮度進(jìn)行平均,得到較低分辨率下的像素顏色亮度。假設(shè)把顯示器分辨率提高一倍,直線經(jīng)過兩倍的象素,鋸齒也增加一倍,但同時(shí)每個(gè)階梯的寬度也減小了一倍,所以顯示出的直線段看起來就平直光滑了 16 一些。在圖 中,一些狹小的圖形分布在兩條掃描線之間,由于它不覆蓋任何一個(gè)像素中心,故不會(huì)被顯示出來。 但光柵顯示器也有它的缺陷,圖形信號(hào)是連續(xù)的,而光柵顯示系統(tǒng)中用來表示圖形的卻是一個(gè)個(gè)離散的像素。 gluQuadricTexture (q, GL_TRUE)。 void CDifferentView::DrawPla(Pla pla) { glPushMatrix()。 } 規(guī)則多面體的繪制比較簡(jiǎn)單,只需考慮將各個(gè)紋理坐標(biāo)綁定到相應(yīng)的空間坐標(biāo)即可,金字塔型不外如此,不再贅述。 glVertex3f(,)。 glTranslatef(,)。//選擇像素格式 ::SetPixelFormat(m_pDCGetSafeHdc(), pixelformat, amp。在游戲場(chǎng)景的暢游過程中,發(fā)現(xiàn)各種場(chǎng)景皆可真實(shí)如斯,無論是現(xiàn)代城市中的房屋、車輛,還是森林場(chǎng)景中的樹木、花草、山峰等皆可實(shí)現(xiàn)。 把景物模型放在三維空間中的合適的位置,并且設(shè)置視點(diǎn)( viewpoint)以觀察所感興趣的景觀。 紋理映射( Texture Mapping):利用 OpenGL 紋理映射功能可以十分逼真地表達(dá)物體表面細(xì)節(jié)。 由于微軟在 Windows 中包含了 OpenGL,所以 OpenGL 可以與 Visual C++緊密接合,簡(jiǎn)單快捷地實(shí)現(xiàn)有關(guān)計(jì)算和圖形算法,并保證算法的正確性和可靠性。 C++語言一方面自定義結(jié)構(gòu)類型進(jìn)行擴(kuò)充,另一方面也支持新的類構(gòu)造。 運(yùn)算符豐富、齊全,運(yùn)算能力強(qiáng)。 C++語言既保留了 C 語言的有效性、靈活性、便于移植等全部精華和特點(diǎn),又添加了面向?qū)ο缶幊痰闹С?,具有?qiáng)大的編程功能,可方便地構(gòu)造出模擬現(xiàn)實(shí)問題的實(shí)體和操作;編寫出的程序具有結(jié)構(gòu)清 晰、易于擴(kuò)充等優(yōu)良特性,適合于各種應(yīng)用軟件、系統(tǒng)軟件的程序設(shè)計(jì)。 VC基于 C, C++語言,主要由是 MFC 組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1