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

正文內(nèi)容

基于opengl的3d游戲的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-12-23 21:51 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 設(shè)備描述表 (DC)說(shuō)明了筆和畫刷的顏色繪制模式,調(diào)色盤信息,映射模式,以及其他 Windows 必須知道的怎樣顯示圖形的屬性。與其他的 Windows 應(yīng)用程序一樣, OpenGL 應(yīng)用程序也必須應(yīng)用DC。不過(guò)我們將其稱為著色描述表( Rendering Context, RC),由它通知 Windows在窗口中繪制圖形。每一個(gè) OpenGL都被連接到一個(gè) RC上。 RC將所有的 OpenGL調(diào)用命令 連接到 DC上,應(yīng)用程序必須在繪圖之前調(diào)用專用函數(shù) wglCreateContext()創(chuàng)建自己的 RC,調(diào)用 wglMakeCurrent 使其當(dāng)前化,退出 OpenGL 時(shí)使 RC 非當(dāng)前化。 及 主要要完成窗口的設(shè)置: int m_WindowPosX。 /** 窗口的左上角的 X位置 */ int m_WindowPosY。 /** 窗口的左上角的 Y位置 */ int m_WindowWidth。 /** 窗口 的寬度 */ int m_WindowHeight。 /** 窗口的高度 */ int m_ScreenWidth。 /** 全屏的寬度 */ int m_ScreenHeight。 /** 全屏的高度 */ int m_BitsPerPixel。 /** 顏色位深 */ bool m_IsFullScreen。 /** 是否全屏 */ 以及 設(shè)置像素格式,設(shè)置像素格式首先要填充 PIXELFORMATDESCRIPTOR 結(jié)構(gòu),其默認(rèn)設(shè)置如下 PIXELFORMATDESCRIPTOR pfd = /** 設(shè)置像素描述結(jié)構(gòu) */ { sizeof(PIXELFORMATDESCRIPTOR), /** 像素描述結(jié)構(gòu)的大小*/ 1, /** 版本號(hào) */ PFD_DRAW_TO_WINDOW | /** 緩存區(qū)的輸出顯示在一個(gè)窗口中 */ PFD_SUPPORT_OPENGL | /** 緩存區(qū)支持 OpenGL繪圖 */ PFD_STEREO | /** 顏色緩存區(qū)是立體緩存 */ PFD_DOUBLEBUFFER, /** 顏色緩存區(qū)是雙緩存 */ PFD_TYPE_RGBA, /** 使用 RGBA顏色格式 */ m_BitsPerPixel, /** 顏色緩存區(qū)中顏色值精品畢業(yè)論文、畢業(yè)設(shè)計(jì),優(yōu)質(zhì)的論文服務(wù): 精品論文網(wǎng) 提供畢業(yè)設(shè)計(jì) (論文)和圖文教程、視頻教程等一攬子解決方案 所占的位深 */ 0, 0, 0, 0, 0, 0, /** 使用默認(rèn)的顏色設(shè)置 */ 0, /** 無(wú) Alpha緩存 */ 0, /** 顏色緩存區(qū)中 alpha成分的移位計(jì)數(shù) */ 0, /** 無(wú)累計(jì)緩存區(qū) */ 0, 0, 0, 0, /** 累計(jì)緩存區(qū)無(wú)移位 */ 32, /** 32位深度緩存 */ 0, /** 無(wú)蒙版緩存 */ 0, /** 無(wú)輔助緩存區(qū) */ PFD_MAIN_PLANE, /** 必須為PFD_MAIN_PLANE,設(shè)置為主繪圖層 */ 0, /** 表示 OpenGL實(shí)現(xiàn)所支持的上層或下層平面的數(shù)量 */ 0, 0, 0 /** 過(guò)時(shí),已不再使用 */ }。 位圖載入類 CBMPLoader BMP 圖像文件格式 [3] BMP 是一種與硬件設(shè)備無(wú)關(guān)的圖像 文件格式 ,使用非常廣。它采用位映射存儲(chǔ)格式,除了圖像深度可選以外,不采用其他任何壓縮,因此, BMP 文件所占用的空間很大。 BMP 文件的圖像深度可選 lbit、 4bit、 8bit及 24bit。 BMP 文件存儲(chǔ)數(shù)據(jù)時(shí),圖像的掃描方式是按從左到右、從下到上的順序 。 由于 BMP 文件格式是 Windows 環(huán)境中交換與圖有關(guān)的數(shù)據(jù)的一種標(biāo)準(zhǔn),因此在 Windows 環(huán)境中運(yùn)行的圖形圖像軟件都支持 BMP 圖像格式。 典型的 BMP 圖像文件由三部分組成 :位圖文件頭數(shù)據(jù)結(jié)構(gòu),它包含BMP 圖像文件的類型、顯示內(nèi)容等信息;位圖信息數(shù)據(jù)結(jié)構(gòu),它包含有BMP 圖像的寬、高、壓縮方法,以及定義顏色等信息。 BMP 是( Windows 位圖 ) Windows 位圖可以用任何顏色深度(從黑白到 24 位顏色)存儲(chǔ)單個(gè)光柵圖像。 Windows 位圖文件格式與其他 Microsoft Windows 程序兼容。它不支持文件壓縮,也不適用于 Web 頁(yè)。 從總體上看, Windows 位圖文件格式的缺點(diǎn)超過(guò)了它的優(yōu)點(diǎn)。為了保證照片圖像的質(zhì)量,請(qǐng)使用 PNG 、 JPEG、 TIFF 文件。 BMP 文件適用于 Windows 中的墻紙。 精品畢業(yè)論文、畢業(yè)設(shè)計(jì),優(yōu)質(zhì)的論文服務(wù): 精品論文網(wǎng) 提供畢業(yè)設(shè)計(jì) (論文)和圖文教程、視頻教程等一攬子解決方案 優(yōu)點(diǎn): BMP 支持 1 位到 24 位顏色深度。 BMP 格式與現(xiàn)有 Windows 程序(尤其是較舊的程序)廣泛兼容。 缺點(diǎn): BMP 不支持壓縮,這會(huì)造成文件非常大。 BMP 文件不受 Web 瀏覽器支持。 位圖載入類 CBMPLoader 流程圖 如圖 所示: 圖 位圖載入類流程圖 基本框架的組成 鍵盤類和程序框架類( GLFrame): 鍵盤類: class Keys { public: Keys() { Clear()。 } /** 構(gòu)造函數(shù) */ void Clear() { ZeroMemory(amp。m_KeyDown, sizeof(m_KeyDown))。 } /** 清空所有的按鍵信息 */ bool IsPressed(unsigned int key) { return (key MAX_KEYS) ? (m_KeyDown[key] == true) : false。 }/** 判斷某個(gè)鍵是否按下 */ void SetPressed(unsigned int key) { if (key MAX_KEYS) m_KeyDown[key] = true。 }/** 設(shè)置某個(gè)鍵被按下 */ void SetReleased(unsigned int key){ if (key MAX_KEYS) m_KeyDown[key] = 打開文件并檢查錯(cuò)誤 讀位圖文件頭信息判斷是否為位圖文件 讀全文件 保存文件 創(chuàng)建指針 進(jìn)行文件格式轉(zhuǎn)換將 BGR轉(zhuǎn)為 RGB 是 退出并報(bào)錯(cuò) 否 精品畢業(yè)論文、畢業(yè)設(shè)計(jì),優(yōu)質(zhì)的論文服務(wù): 精品論文網(wǎng) 提供畢業(yè)設(shè)計(jì) (論文)和圖文教程、視頻教程等一攬子解決方案 false。 }/** 設(shè)置某個(gè)鍵被釋放 */ private: static const unsigned int MAX_KEYS = 256。 bool m_KeyDown[MAX_KEYS]。 /** 保存 各 按鍵的狀態(tài) */ }。 在繼承類中完成以下函數(shù)的實(shí)現(xiàn) GLApplication * GLApplication::Create(const char * class_name) //創(chuàng)建子類的一個(gè)實(shí)例 bool Init()。 //執(zhí)行所有的初始化工作,如果成功函數(shù)返回 true void Uninit()。 // 執(zhí)行所有的卸載工作 void Update(DWORD milliseconds)。 //執(zhí)行所有的更新操作,傳入的參數(shù)為兩次操作經(jīng)過(guò)的時(shí)間,以毫秒 //為單位 void Draw()。 //執(zhí)行所有的繪制操作 windowExtendedStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE。 /** 使窗口具有 3D 外觀 */ 5 視角控制 攝像機(jī)類解構(gòu)圖 如圖 所示 攝像機(jī)類 設(shè)置速度 位置 旋轉(zhuǎn)方向 根據(jù)鼠標(biāo)設(shè)置攝像機(jī)觀察方向 前后移動(dòng) 左右移動(dòng) 放置攝像機(jī)位置 與鍵盤關(guān)聯(lián) 精品畢業(yè)論文、畢業(yè)設(shè)計(jì),優(yōu)質(zhì)的論文服務(wù): 精品論文網(wǎng) 提供畢業(yè)設(shè)計(jì) (論文)和圖文教程、視頻教程等一攬子解決方案 圖 攝像機(jī)類結(jié)構(gòu)圖 攝像機(jī)類主要的功能是實(shí)現(xiàn)三維漫游。第一要做的事就是設(shè)置攝像機(jī)的位置: 設(shè)置攝像機(jī)的位置 ,朝向和向上向量 。設(shè)置函數(shù)為: void Camera::setCamera( float positionX, float positionY, float positionZ, float viewX, float viewY, float viewZ, float upVectorX, float upVectorY, float upVectorZ) 攝像機(jī)旋轉(zhuǎn)功能的實(shí)現(xiàn) 旋轉(zhuǎn)攝像機(jī) 旋轉(zhuǎn)攝像機(jī)方向 函數(shù)為: void Camera::rotateView(float angle, float x, float y, float z) Angle為旋轉(zhuǎn)的角度值, X,Y,Z為初始的位置。 Angle值由庫(kù)函數(shù)獲取。 下面是實(shí)現(xiàn)計(jì)算攝像機(jī)在空間中旋轉(zhuǎn)了 angle弧度后,計(jì)算其視點(diǎn) View更新的值newView。 Vector3 view = m_View m_Position。 /** 計(jì)算方向向量 */ /** 計(jì)算 sin 和 cos值 */ float cosTheta = (float)cos(angle)。 float sinTheta = (float)sin(angle)。 /** 計(jì)算旋轉(zhuǎn)向量的 x值 */ = (cosTheta + (1 cosTheta) * x * x) * 。 += ((1 cosTheta) * x * y z * sinTheta) * 。 += ((1 cosTheta) * x * z + y * sinTheta) * 。 /** 計(jì)算旋轉(zhuǎn)向量的 y值 */ = ((1 cosTheta) * x * y + z * sinTheta) * 。 += (cosTheta + (1 cosTheta) * y * y) * 。 += ((1 cosTheta) * y * z x * sinTheta) * 。 /** 計(jì)算 旋轉(zhuǎn)向量的 z值 */ 精品畢業(yè)論文、畢業(yè)設(shè)計(jì),優(yōu)質(zhì)的論文服務(wù): 精品論文網(wǎng) 提供畢業(yè)設(shè)計(jì) (論文)和圖文教程、視頻教程等一攬子解決方案 = ((1 cosTheta) * x * z y * sinTheta) * 。 += ((1 cosTheta) * y * z + x * sinTheta) * 。 += (cosTheta + (1 cosTheta) * z * z) * 。 /** 更新攝像機(jī)的方向 */
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1