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

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

資源簡介

本例使用了opengl的基礎(chǔ)知識(shí),實(shí)現(xiàn)了星星公轉(zhuǎn),自轉(zhuǎn),閃爍的效果。

資源截圖

代碼片段和文件信息

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

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

#define?MAX_LOADSTRING?100

//?全局變量:?
HINSTANCE?hInst; //?當(dāng)前實(shí)例
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;//保存我們程序的實(shí)例

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

GLuint?texture[1];//存儲(chǔ)紋理

BOOL?light;//光源開關(guān)
BOOL?lp;//L鍵是否按下
BOOL?fp;//F鍵是否按下

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

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

BOOL?twinkle;//閃爍的效果是否啟用
BOOL?tp;//T鍵是否按下
int?const?num?=?2;//常量,屏幕上繪制的星星數(shù)量。

typedef?struct?//星星結(jié)構(gòu)體
{
int?r?g?b;//星星顏色
GLfloat?dist;//星星距離中心的距離
GLfloat?angle;//當(dāng)前星星所處的角度,以屏幕中心為原點(diǎn)的任意360度中的一個(gè)角度
}?star;
star?stars[num];
GLfloat?zoom?=?-15.0f;//星星距離觀察者的距離
GLfloat?tilt?=?90.0f;//星星的傾角
GLfloat?spin;//閃爍星星的自轉(zhuǎn)
GLuint?loop;//全局loop變量

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)建存儲(chǔ)位圖的圖像記錄,記錄包含位圖的寬度,高度和數(shù)據(jù)
memset(TextureImage?0?sizeof(void*)*?1);//清除圖像記錄,確保為空

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

//現(xiàn)在使用中?TextureImage[0]?的數(shù)據(jù)創(chuàng)建紋理
glGenTextures(1?&texture[0]);//告訴OpenGL我們想生成一個(gè)紋理:創(chuàng)建紋理
glBindTexture(GL_TEXTURE_2D?texture[0]);//告訴OpenGL將紋理?texture[0]?綁定到紋理目標(biāo)上。2D紋理只有高度(在?Y?軸上)和寬度(在?X?軸上)。主函數(shù)將紋理指派給紋理數(shù)據(jù),我們創(chuàng)建的紋理將存儲(chǔ)在?&texture[0]?的?指向的內(nèi)存區(qū)域

//創(chuàng)建真正的紋理
//下面一行告訴OpenGL此紋理是一個(gè)2D紋理?(?GL_TEXTURE_2D?)。參數(shù)“0”代表圖像的詳細(xì)程度,通常就由它為零去了。參數(shù)三是數(shù)據(jù)的成分?jǐn)?shù)。因?yàn)閳D像是由紅色數(shù)據(jù),綠色數(shù)據(jù),藍(lán)色數(shù)據(jù)三種組分組成。?TextureImage[0]->sizeX?是紋理的寬度。如果您知道寬度,您可以在這里填入,但計(jì)算機(jī)可以很容易的為您指出此值。?TextureImage[0]->sizey?是紋理的高度。參數(shù)零是邊框的值,一般就是“0”。?GL_RGB?告訴OpenGL圖像數(shù)據(jù)由紅、綠、藍(lán)三色數(shù)據(jù)組成。GL_UNSIGNED_BYTE?意味著組成圖像的數(shù)據(jù)是無符號(hào)字節(jié)類型的。最后...?TextureImage[0]->data?告訴OpenGL紋理數(shù)據(jù)的來源。此例中指向存放在?TextureImage[0]?記錄中的數(shù)據(jù)。
glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[0]->sizeX?TextureImage[0]->sizeY?0?GL_RGB?GL_UNSIGNED_BYTE?TextureIma

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????82944??2015-06-04?10:38??OpenGLWindowMovePic\Debug\OpenGLWindow.exe

?????文件?????606156??2015-06-04?10:38??OpenGLWindowMovePic\Debug\OpenGLWindow.ilk

?????文件????1313792??2015-06-04?10:38??OpenGLWindowMovePic\Debug\OpenGLWindow.pdb

?????文件???21561344??2015-06-02?10:35??OpenGLWindowMovePic\ipch\openglwindow-95a38eaa\openglwindow-c55ee149.ipch

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

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

?????文件??????49206??2015-06-02?16:47??OpenGLWindowMovePic\OpenGLWindow\Data\Star.bmp

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

?????文件???????1802??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.log

?????文件??????49993??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.obj

?????文件????6094848??2015-06-02?10:45??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.pch

?????文件???????6824??2015-06-02?10:45??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.res

?????文件???????3386??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\cl.command.1.tlog

?????文件??????28948??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\CL.read.1.tlog

?????文件???????2772??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\CL.write.1.tlog

?????文件???????3970??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\link.command.1.tlog

?????文件???????7598??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\link.read.1.tlog

?????文件???????1798??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\link.write.1.tlog

?????文件????????182??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\OpenGLWindow.lastbuildstate

?????文件???????1234??2015-06-02?10:45??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\rc.command.1.tlog

?????文件???????5644??2015-06-02?10:45??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\rc.read.1.tlog

?????文件????????638??2015-06-02?10:45??OpenGLWindowMovePic\OpenGLWindow\Debug\OpenGLWindow.tlog\rc.write.1.tlog

?????文件?????150220??2015-06-02?10:45??OpenGLWindowMovePic\OpenGLWindow\Debug\stdafx.obj

?????文件?????445440??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\vc120.idb

?????文件?????512000??2015-06-04?10:38??OpenGLWindowMovePic\OpenGLWindow\Debug\vc120.pdb

?????文件??????28312??2015-06-04?10:39??OpenGLWindowMovePic\OpenGLWindow\OpenGLWindow.cpp

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

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

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

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

............此處省略23個(gè)文件信息

評(píng)論

共有 條評(píng)論