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

正文內(nèi)容

基于opengl的臺球游戲設(shè)計-wenkub.com

2024-11-04 00:54 本頁面
   

【正文】 這些函數(shù)通過移動、旋轉(zhuǎn)或縮放或反射來變換物體(或坐標(biāo))。參數(shù) centerx、 centery 和 centerz 指定了視線上的一個點,通常位于場景中央。 在全景掃描時,函數(shù) gluLookAt()很有用。 最后,需要注意的是,必須在調(diào)用模型變換函數(shù)之前調(diào)用視點變換函數(shù),以確保首先對物體模型變換。 //視點坐標(biāo)中 Z 軸的位置 27 }; ( 1) 視點變換 視點變換改變視點的位置和方向。 //視點中心位置 VECTOR up。實際上,從三維空間到二維平面,就如同用相機(jī)拍照一樣,通常都要經(jīng)歷以 下幾個步驟:視點變換、模型變換、投影變換和視口變換。 glLineWidth()。 glVertex3f(, , )。 26 glTranslatef(m_fStrength,)。 glBegin(GL_LINES)。 glTranslatef(m_fPosition[0][0],m_fPosition[0][1],m_fPosition[0][2])。 glDisable(GL_LIGHTING)。 ● glPushMatrix():此函數(shù)將指定的材質(zhì)的所有屬性壓入屬性堆棧。 ● glLineWidth(GLfloat width ):此函數(shù)以像素為單位設(shè)置線寬;參數(shù)的值必須大于,默認(rèn)值為 。參數(shù) mode 可以取得值是GL_LINES, GL_TRIANGLES,分別用于繪制多組雙頂點線段和繪制多組獨立填充三角形。參數(shù) pname 是一個符號常量,指定了要返回哪個狀態(tài)變量的值;參數(shù) params 是一個指針,它指向一個指定類型的數(shù)組,該數(shù)組中存儲了返回的數(shù)據(jù)。 glPopMatrix()。 i++) if (m_bVisible[i]) {//7 個藍(lán)球 glShadeModel(GL_FLAT)。 glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular3)。 float specular3[] = {,}。 glutSolidSphere(BALL_RADIUS,20,16)。 i9。 glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse1)。 float diffuse1[4] = {,}。 glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess0)。 float shininess0 = 。 glTranslatef(m_fPosition[0][0],m_fPosition[0][1],m_fPosition[0][2])。 如果使用了光照,應(yīng)使用后一個函數(shù)。 完成對母球, 7 個藍(lán)球, 8 個紅球 的材質(zhì)顏色和光照的設(shè)置。 表 函數(shù) glMaterial*()參數(shù) pname Table pname of function glMaterial* 參數(shù)名 缺省值 說明 GL_AMBIENT (,) 材料的環(huán)境光顏色 GL_DIFFUSE (,) 材料的漫反射光顏色 GL_SPECULAR (,) 材料鏡面反射光顏色 GL_SHININESS 鏡面指數(shù)(光亮度) GL_EMISSION (,) 材料的輻射光顏色 GL_AMBIENT_AND_DIFFUSE 材料的環(huán)境光和漫反射顏色 需要指出的是, OpenGL 用材料對光的紅、藍(lán)、綠三原色的反射率來近似定義材料的顏色。其參數(shù)為: 22 void glMaterial{if}[v](Glenum face,Glenum pname,TYPE param); 定義光照計算中用到的當(dāng)前材質(zhì)。在 OpenGL 中,控制高亮區(qū)域的 大小和亮度(使用參數(shù)GL_SHININESS)。如果只是簡單地將當(dāng)前顏色映射到當(dāng)前頂點上去,不進(jìn)行法向、光源、材質(zhì)等復(fù)雜計算。最后一個參數(shù)設(shè)置相應(yīng)的光源特性值 。下面是定義光源特性的函數(shù) glLight*()函數(shù): void glLight{if}[v](GLenum light,Glenum pname,TYPE param); 創(chuàng)建具有某種特性的光源。 這種模式下,插值方法采用的是雙線性插值法。 ( 1) 明暗處理 在計算就圖形學(xué)中,光滑的曲面表面常用多邊形予以逼近和表示,而每個小多邊形輪廓(或內(nèi)部)就用單一的顏色或許多不同的顏色來勾畫(或填充),這種處理方法就稱為明暗處理。 使用 OpenGL 具體實現(xiàn)臺球球體 完成桌面的繪制,需要對桌面上的臺球的繪制, 把球體分成了三個部分一個是母球的繪制, 練習(xí)需要的紅球和藍(lán)球的繪制。在 glBegin(GLenum mode) 和 glEnd()之間最重要的 信息由函數(shù) glVertex3f()定義的頂點 ,由函數(shù) glTexCoord2f()定義紋理坐標(biāo) 。 要完成桌面的紋理,還需要基本圖元繪制,在 OpenGL 中,所有的幾何物體最終都由有一定順序的頂點集來來描述。 紋理圖像是方形數(shù)組,紋理坐標(biāo) 通??梢远x成一、二、三或四維形式,稱為 s、 t、r 和 q 坐標(biāo) ,以區(qū)別于物體坐標(biāo) (x, y, z, w)和其他的坐標(biāo)。因此, OpenGL 提供了 3 種紋理映射的方式,函數(shù)如下所示: void glTexEnv{if}[v](GLenum target, GLenum pname, TYPE param); 參數(shù) target 必須是 GL_TEXTURE_ENV;若參數(shù) pname 是 GL_TEXTUR E_ENV _MODE,則參數(shù) param 可以是 GL_DECAL、 GL_MODULATE 或 GL_BLEND,以說明紋理值與原來表面顏色的處理方式; 若參數(shù) pname 是 GL_TEXTURE_EN V_COLOR,則 19 參數(shù)是包含了 4 個浮點數(shù)(分別是 R、 G、 B、 A 分量)的數(shù)值 ,這些值只在采用 GL_BLEND紋理函數(shù)時才有用。 若選擇 GL_NEAREST 則采用坐標(biāo)最靠近像素中心的紋素,這有可能使圖像走樣;若選擇 GL_LINEAR 則采用最靠近像素中心的 4 個像素的加權(quán)平均值。 表 放大和縮小濾波方式 Table magnification and deflation filter mode 參數(shù) 值 18 GL_TEXTURE_WRAP_S GL_CLAMP, GL_REPEAT GL_TEXTURE_WRAP_T GL_CLAMP, GL_REPAET GL_TEXTURE_MAG_FILTER GL_NEAREST, GL_LINEAR GL_TEXTURE_MIN_FILTER GL_NEAREST , GL_NEAREST_MIPMAP_NEAREST GL_LINEAR, GL_NEAREST_MIPMAP_LINEAR GL_LINEAR_MIPMAP_NEAREST GL_LINEAR_MIPMAP_LINEAR 一般來說,紋理圖像為正方形或長方形。 首次綁定一個紋理對象名(創(chuàng)建一個紋理對象)時,參數(shù) target 指定了維數(shù),其取值為 GL_TEXTURE_1D、 GL_TEXTURE_2D、 GL_TEXTURE_3D 或GL_TEXTURE_CUBE_MAP。被保存的紋理屬性包括縮小濾波方法和放大濾波方法、環(huán)繞模式、邊框顏色和紋理優(yōu)先級。 參數(shù) pixels 包含了紋理圖像數(shù)據(jù),這個數(shù)據(jù)描述了紋理圖像本身和它的邊界 。 參數(shù) width 和 height 給出了紋理圖像的長度和寬度,參數(shù) border 為紋理邊界寬度,它通常為 0, width 和 height 必須是 2m+2b,這里 m是整數(shù),長和寬可以有不同的值, b是 border 的值。 臺球桌面的設(shè)計流程,如圖 所示 : 場景模塊 臺球界面 模塊 模型控制模塊 運(yùn)動模擬模塊 窗口模塊 幾何模型模塊 數(shù)學(xué)模型模塊 變換 模塊 桌面 箭頭 球體 16 圖 桌面流程圖 Figure playground flowchart 根據(jù) OpenGL 紋理映射繪制主桌面,桌角和桌邊。 在 MFC 中使用 OpenGL 設(shè)計臺球游戲 根據(jù) 上述三維虛擬臺球 游戲的功能要求,將該 游戲程序 劃分為 以下 模塊 ,其結(jié)構(gòu)如圖 所示: 游戲框架 菜單欄和工具欄 游戲大廳界面 游戲類型框架 控制力量框架 15 圖 界面流程 圖 Figure interface flowchart ● 窗口模塊 創(chuàng)建 windows 窗口處理消息 ● 場景模塊 管理整個演示程序中的對象 ● 臺球界面模塊 用于 游戲界面的顯示 ● 數(shù)學(xué)模型模塊 用于大量的矩陣運(yùn)算 ● 模型控制模塊 鍵盤 鼠標(biāo) 控制模型位置和方向 及運(yùn)動 ● 幾何模型模塊 幾何模型的繪制 ● 桌面 用于承載臺球的桌面的繪制(主桌面、桌角和桌邊) ● 球體 用于運(yùn)動球體的繪制(有一個母球、 7 個藍(lán)球和 8 個紅球) ● 箭頭 用于控制力量的箭頭的繪制 ● 運(yùn)動模擬模塊 解 決球桿與球、球與球及球與球桌邊界的碰撞和運(yùn)動 ● 變換模塊 用于實現(xiàn)觀察者的變換 整個場景的繪制是程序的核心,主要包括靜態(tài)場景和動態(tài)場景兩部分內(nèi)容的繪制;模型控制模塊用于實現(xiàn)球體的運(yùn)動,球體的碰撞的具體實現(xiàn),視角變換;幾何模型模塊是用于完成一些矢量計算和矩陣的計算。是臺球游戲核心框架。 ( 2) 控制力量框架,在這里可以顯示選擇的力量的大小,根據(jù)顯示線條的長短來調(diào)整對臺球球桿的力量的控制,利用鼠標(biāo)來改變箭頭的方向改變對球桿的方向的改變。主要使用 BMP 文件的數(shù)據(jù)格式完成對桌面繪制。例如,以透視投影方式觀察 桌面 時,離視點遠(yuǎn)的磚塊的尺寸就會縮小,而離視點較近的就會大些。 紋理映射 在三維圖形繪制中,紋理映射是廣泛使用的,同時紋理映射也是一個相當(dāng)復(fù)雜的過程 ,采用一般的技術(shù),紋理映射將是一個很浩大的工程, OpenGL 提供了一種簡單的紋理映射的方法,它可以將掃描的物體,真實紋理映射到繪制的三維物體的表面,從而大大減少了紋理映射的工作。 光照與材質(zhì)的關(guān)系 創(chuàng)建光源和材質(zhì)后,如果不啟用光照處理,頂點的顏色由當(dāng)前顏色值確定,啟用光照處理后,頂點顏色計算將在視覺坐標(biāo)系按光照計算 公式進(jìn)行。如果一個物體在青色光的照射下呈現(xiàn)藍(lán)色,只需設(shè)定物體的環(huán)境色和擴(kuò)散色均為藍(lán)色即可。物體材質(zhì)影響物體的顏色、反光度、透明度等。定位光源的確定位置決定了場景中物體表面的入射方向。 OpenGL 中光源分為定向光源和定位光源兩種。其中 light 指定所定義光源的名稱, OpenGL 至多支持 8 個光源,分別為 GL_LIGHTO, GL_ LIGHT1… GL_ LIGHT7。 ③ 漫反射光來自一個方向,但作用于物體表面上后將沿各個方向均勻散射。從物體表面反射出來的光的強(qiáng)度取決于光源的位置、光強(qiáng)、物體材質(zhì)、物體表面位置、物體表面法線和視點的位置。一束白光含有所有可見波長的光。 OpenGL 可以控制光照與物體的關(guān)系,產(chǎn)生多種不同的視覺效果。定義一個附加裁減平面的函數(shù)是 glClipPlane()。 用于增加圖形的真實感。 OpenGL 將物體的各個頂點通過各種變換矩陣的作用影射到屏幕上。圖形變換一般是指對圖形的幾何信息經(jīng)過幾何變換 后產(chǎn)生的新圖形.主要包括幾何變換、裁減變換、投影變換和視區(qū)變換 。 ( 4) 景物模型光柵化 把景物模型的數(shù)學(xué)描述以及色彩信息轉(zhuǎn)換至計算機(jī)屏幕上的像素,這個過程也就是光柵化( rasterization)。 整個 流程操作的最后,圖形片元都要進(jìn)行一系列的逐個片元操作,這樣最后的象素值 BZ 送入幀緩沖器實現(xiàn)圖形的顯示 。 整個 OpenGL 的基本工作流程如下圖: 9 圖 OpenGL 基本工作流程 圖 Figure OpenGL basic of flaw chart 其中 幾何頂點數(shù)據(jù)包括模型的頂點集、線集、多邊形集,這些數(shù)據(jù)經(jīng)過流程圖的上部,包括運(yùn)算器、逐個頂點操作等;圖像數(shù)據(jù)包括象素集、影像集、位圖集等,圖像象素數(shù)據(jù)的處理方式與幾何頂點數(shù)據(jù)的處理方式是不同的,但它們都經(jīng)過光柵化、逐個片元( Fragment)處理直至把最后的光柵數(shù)據(jù)寫入幀緩沖器。 ( 6) 加陰影和紋理的繪圖方式( shadows 和 textures):在模型表面貼上紋理甚至于加上光照陰影,使得三維景觀像照片一樣。 ( 2) 深度優(yōu)先網(wǎng)絡(luò)繪制方式( depth_cued):用網(wǎng)格線方式繪圖,模擬人眼看物體的方式,遠(yuǎn)處的物體比近處的物體要暗一些。用戶必須從點、線、面等最基本的圖形單元開始構(gòu)造自己的三維模型。 第 二 章 OpenGL 3D 游戲開發(fā)技術(shù) OpenGL 工作流程 OpenGL 實際上是一種圖形與硬件的接口。把解壓得到的 和 放到靜態(tài)函數(shù)庫所在文件夾,即 lib 文件夾(這個 lib 文件夾一般是在自己安裝的 Mircosoft Visual C++下面 VC98 下面一個 lib 文
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1