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

資源簡介

VC++6.0中實現(xiàn)了以O(shè)penGL為平臺的太地球、月亮之間運動圖,并可以實現(xiàn)上下左右的移動(場景漫游);對理解世界坐標系與物體坐標系之間的轉(zhuǎn)換關(guān)系有一定幫助。這個程序包里面有詳細的word格式的講解,希望對大家有幫助

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include
#include

HDC hDC=NULL; //?窗口著色描述表句柄HDC hDC=NULL; //?窗口著色描述表句柄
HGLRC hRC=NULL; //?OpenGL渲染描述表句柄
HWND hWnd=NULL; //?保存我們的窗口句柄
HINSTANCE hInstance; //?保存程序的實例

bool keys[256]; //?保存鍵盤按鍵的數(shù)組
bool active=TRUE; //?窗口的活動標志,缺省為TRUE
bool fullscreen=TRUE; //?全屏標志缺省,缺省設(shè)定成全屏模式

GLfloat?rtri=0.0f;
GLfloat?rquad=0.0f;

GLfloat xrot; //?X?旋轉(zhuǎn)量
GLfloat yrot; //?Y?旋轉(zhuǎn)量
GLfloat zrot;
GLfloat?xspeed; //?X?旋轉(zhuǎn)速度
GLfloat?yspeed; //?Y?旋轉(zhuǎn)速度

//GLuint texture[6]; //?存儲六個紋理

BOOL light=TRUE; //?光源的開/關(guān)
BOOL lp=FALSE; //?L鍵按下了么?
BOOL fp=FALSE; //?F鍵按下了么?

GLfloat?LightAmbient[]=?{?1.0f?1.0f?1.0f?1.0f?};? //?環(huán)境光參數(shù)
GLfloat?LightDiffuse[]=?{?50.0f?0.0f?0.0f?1.0f?}; ?//?漫射光參數(shù)
GLfloat?LightPosition[]=?{?0.0f?0.0f?0.0f?1.0f?}; ?//?光源位置

GLuint Filter=0; //?濾波類型
GLuint texture[12]; //?3種紋理的儲存空間

BOOL?blend;
BOOL?bpwpsp;

GLUquadricObj?*quadratic; //?二次幾何體
GLuint??object=0; //?二次幾何體標示符

unsigned?long?dwRotationdwRevolution;
HANDLE?h_Rotationh_Revolution;


GLfloat?xtrytrztr;
GLfloat?fEarthRad=0.8/100.0f;
GLfloat?fMoonRad=fEarthRad*(GLfloat)(109.0/400.0);
GLfloat?fSunRad=109*fEarthRad;
#define?PI?3.14159

GLfloat?a=2.5f;
GLfloat?b=2.2f;
GLfloat?SunxSunzEllxEllzEarthxEarthzMoonxMoonz;
GLfloat?angleMoveAngle=0VertexAngle=0;

GLfloat?x=0.0fy=0.0fz=5.0f
lx=0.0fly=0.0flz=-1.0f;

AUX_RGBImageRec?*LoadBMP(char?*Filename) //?載入位圖圖象
{
FILE?*File=NULL; //?文件句柄
if?(!Filename) //?確保文件名已提供
{
return?NULL; //?如果沒提供,返回?NULL
}
File=fopen(Filename“r“); //?嘗試打開文件
if?(File) //?文件存在么?
{
fclose(File); //?關(guān)閉句柄
return?auxDIBImageLoad(Filename); //?載入位圖并返回指針
}

MessageBox(NULL“載入位圖失敗!“NULLMB_OK);
return?NULL; //?如果載入失敗,返回?NULL
}

int?LoadGLTextures() //?載入位圖(調(diào)用上面的代碼)并轉(zhuǎn)換成紋理
{
int?Status=FALSE; //?狀態(tài)指示器
int?loop;
int?i=0j=0;
AUX_RGBImageRec?*TextureImage[4]; //?創(chuàng)建紋理的存儲空間
memset(TextureImage0sizeof(void?*)*4); //?將指針設(shè)為?NULL
//?載入位圖,檢查有無錯誤,如果位圖沒找到則退出

if((TextureImage[0]=LoadBMP(“Data/earth.bmp“))&&(TextureImage[1]=LoadBMP(“Data/moon.bmp“))&&(TextureImage[2]=LoadBMP(“Data/sun2.bmp“))
&&(TextureImage[3]=LoadBMP(“Data/star.bmp“)))
{
Status=TRUE; //?將?Status?設(shè)為?TRUE
glGenTextures(12?&texture[0]); //?創(chuàng)建紋理

while(i<10){
//?創(chuàng)建?Nearest?濾波貼圖
glBindTexture(GL_TEXTURE_2D?texture[0+i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_NEAREST);?
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_NEAREST);?
glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[j]->sizeX?TextureImage[j]->sizeY?0?GL_RGB?GL_UNSIGNED_BYTE?TextureImage[j]->data);
//?創(chuàng)建線性濾波紋理
glBindTexture(GL_TEXTURE_2D?texture[1+i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILT

評論

共有 條評論