91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 16.18MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-07-03
  • 語言: 其他
  • 標(biāo)簽: opengl??

資源簡介

opengl實現(xiàn)旗幟飄揚的效果,通過紋理映射和位置切換來實現(xiàn)。

資源截圖

代碼片段和文件信息

//?OpenGLWindow.cpp?:?定義應(yīng)用程序的入口點。
//

#include?“stdafx.h“
#include?“OpenGLWindow.h“
#include?//標(biāo)準(zhǔn)輸入輸出庫頭文件
#include?
#include?

#define?MAX_LOADSTRING?100

//?全局變量:?
HINSTANCE?hInst; //?當(dāng)前實例
TCHAR?sztitle[MAX_LOADSTRING]; //?標(biāo)題欄文本
TCHAR?szWindowClass[MAX_LOADSTRING]; //?主窗口類名

//?此代碼模塊中包含的函數(shù)的前向聲明:?
ATOM MyRegisterClass(HINSTANCE?hInstance);
BOOL InitInstance(HINSTANCE?int);
LRESULT?CALLBACK WndProc(HWND?UINT?WPARAM?LPARAM);
INT_PTR?CALLBACK About(HWND?UINT?WPARAM?LPARAM);

//user?varible
HGLRC?hRC?=?NULL;//窗口著色描述表句柄
HDC?hDC?=?NULL;//opengl渲染設(shè)備描述表句柄
HWND?hWnd?=?NULL;//保存我們的窗口句柄
HINSTANCE?hInstance;//保存我們程序的實例

bool?keys[256];//保存鍵盤按鍵的數(shù)組
bool?active?=?true;//窗口的活動標(biāo)志,缺省為true
bool?fullscreen?=?true;//全屏標(biāo)志,缺省為true

GLfloat?rtri;//用于三角形旋轉(zhuǎn)
GLfloat?rquad;//用戶四邊形的旋轉(zhuǎn)

GLfloat?xrot;//x旋轉(zhuǎn)量
GLfloat?yrot;//y旋轉(zhuǎn)量
GLfloat?zrot;//z旋轉(zhuǎn)量
GLuint?texture[1];//存儲紋理

BOOL?light;//光源開關(guān)
BOOL?lp;//L鍵是否按下
BOOL?fp;//F鍵是否按下
GLfloat?xxrot;//x軸旋轉(zhuǎn)
GLfloat?yyrot;//y軸旋轉(zhuǎn)
GLfloat?xspeed;//x軸旋轉(zhuǎn)速度
GLfloat?yspeed;//y軸旋轉(zhuǎn)速度
GLfloat?z?=?-5.0f;//深入屏幕距離

bool?blend;//是否進(jìn)行色彩混合
bool?bp;//B鍵按下了嗎?

//使用points數(shù)組來存放網(wǎng)格各頂點獨立的xyz坐標(biāo)。網(wǎng)格由45×45點形成,也就是由44×44個小方格子依次組成。wiggle_count用來指定紋理波浪的運動速度,每8幀一次看起來不錯,變量hold將存放一個用來對旗形波浪進(jìn)行光滑的浮點數(shù)。
float?points[45][45][3];//網(wǎng)格頂點數(shù)據(jù)
int?wiggle_count?=?0;//指定旗形波浪的運動速度
GLfloat?hold;//臨時變量

//接著設(shè)置用來創(chuàng)建光源的數(shù)組。我們將使用兩種不同的光。第一種稱為環(huán)境光。環(huán)境光來自于四面八方。所有場景中的對象都處于環(huán)境光的照射中。第二種類型的光源叫做漫射光。漫射光由特定的光源產(chǎn)生,并在您的場景中的對象表面上產(chǎn)生反射。處于漫射光直接照射下的任何對象表面都變得很亮,而幾乎未被照射到的區(qū)域就顯得要暗一些。這樣在我們所創(chuàng)建的木板箱的棱邊上就會產(chǎn)生的很不錯的陰影效果。
//創(chuàng)建光源的過程和顏色的創(chuàng)建完全一致。前三個參數(shù)分別是RGB三色分量,最后一個是alpha通道參數(shù)。
//因此,下面的代碼我們得到的是半亮(0.5f)的白色環(huán)境光。如果沒有環(huán)境光,未被漫射光照到的地方會變得十分黑暗。
GLfloat?LightAmbinent[]?=?{?0.5f?0.5f?0.5f?1.0f?};//環(huán)境光參數(shù)
//生成最亮的漫射光。所有的參數(shù)值都取成最大值1.0f。它將照在我們木板箱的前面,看起來挺好。
GLfloat?LightDiffuse[]?=?{?1.0f?1.0f?1.0f?1.0f?};//漫反射光參數(shù)
//保存光源的位置。前三個參數(shù)和glTranslate中的一樣。依次分別是XYZ軸上的位移。最后一個參數(shù)取為1.0f。這將告訴OpenGL這里指定的坐標(biāo)就是光源的位置
GLfloat?LightPosition[]?=?{?0.0f?0.0f?2.0f?1.0f?};//光源位置

//載入一個位圖,并用它創(chuàng)建三種不同的紋理。使用glaux輔助庫來載入位圖,因此在編譯時您應(yīng)該確認(rèn)是否包含了glaux庫。glaux是OpenGL輔助庫,根據(jù)OpenGL的跨平臺特性,所有平臺上的代碼都應(yīng)通用。但輔助庫不是正式的OpenGL標(biāo)準(zhǔn)庫,沒有出現(xiàn)在所有的平臺上。
GLuint?filter;//濾波類型
GLuint?texture3[3];//三種紋理的存儲空間

AUX_RGBImageRec?*?LoadBMP(char*?Filename)//載入圖像位圖
{
FILE?*File?=?NULL;//文件句柄

if?(!Filename)//確保文件名提供
{
return?NULL;
}

File?=?fopen(Filename?“r“);//嘗試打開文件

if?(File)
{
fclose(File);

WCHAR?wsztitleName[256];
memset(wsztitleName?0?sizeof(wsztitleName));
int?l?=?MultiByteToWideChar(CP_ACP?0?Filename?lstrlenA(Filename)?wsztitleName?sizeof(wsztitleName)?/?sizeof(wsztitleName[0]));

return?auxDIBImageLoad(wsztitleName);//載入位圖并返回指針
}

return?NULL;//載入失敗
}

//載入位圖并轉(zhuǎn)換成紋理
int?LoadGLTextures()
{
int?Status?=?FALSE;//狀態(tài)指示器
AUX_RGBImageRec?*TextureImage[1];//創(chuàng)建存儲位圖的圖像記錄,記錄包含位圖的寬度,高度和數(shù)據(jù)
memset(TextureImage?0?sizeof(void*)*?1);//清除圖像記錄,確保為空

//載入位圖
if?(TextureImage[0]?=?LoadBMP(“Data/Flag.bmp“))
{
Status?=?TRUE;

//現(xiàn)在使用中

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????82432??2015-06-04?12:18??OpenGLWindowFlag\Debug\OpenGLWindow.exe

?????文件?????608232??2015-06-04?12:18??OpenGLWindowFlag\Debug\OpenGLWindow.ilk

?????文件????1281024??2015-06-04?12:18??OpenGLWindowFlag\Debug\OpenGLWindow.pdb

?????文件???21561344??2015-06-04?11:14??OpenGLWindowFlag\ipch\openglwindow-2cfd7f31\openglwindow-c55ee149.ipch

?????文件???21561344??2015-06-01?17:22??OpenGLWindowFlag\ipch\openglwindow-c62ecc37\openglwindow-c55ee149.ipch

?????文件?????196662??2015-05-27?22:17??OpenGLWindowFlag\OpenGLWindow\Data\CooperOpengl.bmp

?????文件??????98358??2015-06-04?12:11??OpenGLWindowFlag\OpenGLWindow\Data\Flag.bmp

?????文件???????1525??2015-06-01?17:57??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.Build.CppClean.log

?????文件???????1784??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.log

?????文件??????49809??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.obj

?????文件????6094848??2015-06-04?12:07??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.pch

?????文件???????6824??2015-06-04?12:07??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.res

?????文件???????3362??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\cl.command.1.tlog

?????文件??????28902??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\CL.read.1.tlog

?????文件???????2718??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\CL.write.1.tlog

?????文件???????3934??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\link.command.1.tlog

?????文件???????7562??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\link.read.1.tlog

?????文件???????1762??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\link.write.1.tlog

?????文件????????179??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\OpenGLWindow.lastbuildstate

?????文件???????1222??2015-06-04?12:07??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\rc.command.1.tlog

?????文件???????5614??2015-06-04?12:07??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\rc.read.1.tlog

?????文件????????626??2015-06-04?12:07??OpenGLWindowFlag\OpenGLWindow\Debug\OpenGLWindow.tlog\rc.write.1.tlog

?????文件?????150181??2015-06-04?12:07??OpenGLWindowFlag\OpenGLWindow\Debug\stdafx.obj

?????文件?????445440??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\vc120.idb

?????文件?????512000??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\Debug\vc120.pdb

?????文件??????29919??2015-06-04?12:18??OpenGLWindowFlag\OpenGLWindow\OpenGLWindow.cpp

?????文件?????????37??2015-05-19?10:10??OpenGLWindowFlag\OpenGLWindow\OpenGLWindow.h

?????文件???????2998??2013-07-22?01:18??OpenGLWindowFlag\OpenGLWindow\OpenGLWindow.ico

?????文件???????6616??2015-05-18?21:45??OpenGLWindowFlag\OpenGLWindow\OpenGLWindow.rc

?????文件???????5064??2015-05-30?20:51??OpenGLWindowFlag\OpenGLWindow\OpenGLWindow.vcxproj

............此處省略23個文件信息

評論

共有 條評論