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

正文內(nèi)容

計算機圖形學電子教案c-資料下載頁

2025-01-06 12:05本頁面
  

【正文】 indow PFD_SUPPORT_OPENGL| //支持 OpenGL PFD_DOUBLEBUFFER, //雙緩存 PFD_TYPE_RGBA, //RGBA顏色模式 24, //24位顏色深度緩存 0,0,0,0,0,0, //color bits ignored 0, //no alpha buffer 0, //shift bit ignored 0, //不使用累積緩存 0,0,0,0, //accum bits ignored 32, //32位 z緩沖 0, //不使用模板緩存 0, //no auxiliary buffer PFD_MAIN_PLANE, //選擇主層面 0, //保留 0,0,0 //layer masks ignored }。 CCLient dc(this)。 int pixelFormat=ChoosePixelFormat(,amp。pfd)。 BOOL success=SetPixelFormat(,pixelFormat,amp。pfd)。 //創(chuàng)建繪圖上下文 RC m_hRC=wglCreateContext()。 ③ 改造 OnSize函數(shù):當視圖尺寸變化是 , 應(yīng)及時將新的客戶區(qū)尺寸通知OpenGL, 方能夠正確在窗口客戶區(qū)域顯示二維場景 , 通過命令 glViewPort完成這項工作 。 ④ 改造 OnEraseBkgnd函數(shù):重載視圖類的 OnEraseBkgnd成員 , 使之返回 TRUE值可以阻止 Windows重畫窗口背景 , 因為 OpenGL自己會設(shè)置窗口背景 , 這樣可以防止窗口頻繁刷新 (如移動窗口 )時產(chǎn)生的閃爍現(xiàn)象 。 ⑤ 改造 OnDestroy函數(shù):在 OnDestroy成員中需要釋放 OnCreate成員中 RC所占用的資源 , 命令 wglDeleteContext可以完成這個工作 , 但在釋放 RC之前 , 還需要使用命令 wglMakeCurrent()斷開 RC與設(shè)備描述表 DC的連接 。 具體代碼如下: wglMakeCurrent(NULL,NULL)。 wglDeleteContext(m_hRC)。 ⑥ 改造 OnDraw: 根據(jù)當前的視點 、 視距 、 觀看方向等參數(shù) , 設(shè)置合適的OpenGL視景體屬性 , 使用戶能夠看到預(yù)期的場景外觀 。 添加的代碼如下: wglMakeCurrent(pDCm_hDC,m_hRC)。 DrawScene()。 //用戶自定義函數(shù) , 用來編寫 OpenGL繪制語句的 wglMakeCurrent(pDCm_hDC,NULL)。 在 DrawScene( )函數(shù)中編寫具體的繪圖程序 。 首先需要設(shè)置視點 、 視距和觀看方向等場景參數(shù) , 然后繪制圖元 。 glBegin(GL_LINES)。 //OpenGL繪制直線命令 glColor3f(,)。 //設(shè)置當前顏色為紅色 glVertex2f(0,0)。 glVertex2f(1,1)。 glColor3f(,)。 //設(shè)置當前顏色為綠色 glVertex2f(,0)。//(書中程序有誤 ! ) glVertex2f(,1)。 glEnd()。 glBegin(GL_TRIANGLES)。 glColor3f(,)。//紅色 glVertex3f(,)。 glColor3f(,)。//綠色 glVertex3f(,)。 glColor3f(,)。//藍色 glVertex3f(,)。 glEnd()。 OpenGL的緩沖區(qū) OpenGL進行圖形顯示需要四個緩沖區(qū):顏色緩存、深度緩存、模板緩存和累計緩存。 ?顏色緩存: 由紅、綠、藍、 Alpha位等位平面 (Bitplane)組成的,有前緩存(Front Buffer)、 后緩存 (Back Buffer)、 左前 (Front_Left)和右前 (Front_Right)緩存、左后 (Back_Left)和右后 (Back_Right)緩存。左前緩存是必須的顏色緩存。前緩存是可見緩存,后緩存是不可見緩存。前后緩存技術(shù)可以實現(xiàn)動畫操作。 與顏色緩存相關(guān)的主要函數(shù)有: ?清除顏色緩存: glClear(GL_COLOR_BUFFER_BIT), 用于清除當前顯示緩沖區(qū)內(nèi)容,為開始新的繪制做好準備。 ?設(shè)置清除顏色: glClearColor(red , green , blue , alpha), 用當前顏色 (red, green, blue, alpha)清除當前顯示緩沖區(qū)內(nèi)容,為開始新的繪制做好準備。 ?屏蔽顏色緩存: glColorMask(), 分別設(shè)置紅、綠、藍、 alpha的可寫屬性。 ? 選擇顏色緩存: glDrawBuffer(), 用于對雙緩存中一個進行選擇 。 ?交換顏色緩存: swapBuffer(), 交換前后緩存中的顏色,以實現(xiàn)動畫 ?深度緩存: 也叫 Zbuffer, 它記錄每個像素點所對應(yīng)的物體點到視點的距離,由此決定表面的可見性。在進行消隱的時候, OpenGL必須知道各物體間的相對位置關(guān)系,從而模擬出物體相互遮擋得效果,因此,需要進行深度測試。而深度測試的結(jié)果就生成了深度緩存。 與深度緩存相關(guān)的 OpenGL操作主要有: ?清除深度緩存: glClear(GL_DEPTH_BUFFER_BIT), 用于清除當前顯示緩沖區(qū)內(nèi)容,為開始新的繪制做好準備; ?設(shè)置清除值: glClearDepth(); ?屏蔽深度緩存: glDepthMask(GL_TRUE), 表示可以寫深度緩存;glDepthMask(GL_FALSE), 表示禁止寫深度緩存; ?啟動和關(guān)閉深度測試: glEnable(GL_DEPTH_TEST), 表示開啟深度測試;glDisable(GL_DEPTH_TEST), 表示禁止深度測試。 ?確定測試條件: glDepthFunc(), 根據(jù)函數(shù)參數(shù)確定測試方式,具體的參數(shù)說明請參考 OpenGL手冊。 ?確定深度范圍: glDepthRagne(Glclampd zNear, Glclampd zFar), 參數(shù) zNear和zFar分別說明視景體的前景面和后景面向窗口坐標映射的規(guī)格化坐標,便于后續(xù)使用。 模板緩存和累積緩存主要用于圖形的特殊效果繪制。 ?模板緩存: 存放像素的模板值??捎糜诳刂葡袼厥欠癖桓膶?,因而其可以禁止在屏幕的某些區(qū)域繪圖。模板緩存可以用于多種復雜圖形的繪制,例如:屏蔽屏幕區(qū)域 (凸區(qū)域或凹區(qū)域,因而也可以繪制凹多邊形等 );遮蓋物體;制作物體的交集等。 ?累積緩存: 是一系列繪制結(jié)果的累積,可以用來實現(xiàn)場景的反走樣、景深模擬、運動模糊等。例如為了實現(xiàn)全局反走樣,可多次繪制場景,每次繪制時輕微移動場景 (相當于在空間上抖動場景 ),把多次繪制的結(jié)果進行累積并最后一次輸出,結(jié)果場景的邊界會變得模糊,從而實現(xiàn)全局反走樣。
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1