資源簡介
包含文檔,可運行程序,源代碼,涉及光照,紋理,鍵盤鼠標交互等等.zip

代碼片段和文件信息
#include????
#include?????
#include?????
#include????
#include??
//
#include?
#include?
#pragma?comment(lib?“openGL32.lib“)
#pragma?comment(lib?“glu32.lib“)
#pragma?comment(lib?“glaux.lib“)
#pragma?comment(?lib“openGL32.lib“?)
GLuint??texture[1];??//?存儲一個紋理
GLfloat??xrot;???//?X?旋轉量
GLfloat??yrot;???//?Y?旋轉量
GLfloat??zrot;???//?Z?旋轉量
//
static?int?shoulder1?=?0;
static?int?shoulder2?=?0;
static?int?hand=0;
static?int?turn1=0;
static?int?tag=0;?
static?int?turn=0?;//轉彎
static?float?forward=0;//前進
static?float?elbow?=?0?z=0;??
int?w;???
int?h;???
int?font=(int)GLUT_BITMAP_8_BY_13;???
char?s[30];???
int?frametimeOwntimebase=0;
static?GLfloat?xRot?=?0.0f;
static?GLfloat?yRot?=?0.0f;
//是否停止轉動
bool??IsStop=false;????
//光照??使用光源
GLfloat?lightPos[]?=?{?1.0f?0.0f?-1.0f?0.0f?};
GLfloat??specular[]?=?{?1.0f?1.0f?1.0f?1.0f};//反射光
GLfloat??specref[]?=??{?1.0f?1.0f?1.0f?1.0f?};//
GLfloat??ambientLight[]?=?{?5.5f?5.5f?5.5f?10.0f};//環繞光
GLfloat??spotDir[]?=?{?0.0f?0.0f?-1.0f?};
GLboolean?bEdgeFlag?=1;
void?showText(void);???
void?resetPerspectiveProjection()?;????
void?setOrthographicProjection()?;???
void?renderBitmapString(float?x?float?y?void?*fontchar?*string);
//繪制紋理
AUX_RGBImageRec?*LoadBMP(CHAR?*Filename)????//?載入位圖圖象
{
?FILE?*File=NULL;?????????//?文件句柄
?if?(!Filename)??????????//?確保文件名已提供
?{
??return?NULL;?????????//?如果沒提供,返回?NULL
?}
?File=fopen(Filename“r“);???????//?嘗試打開文件
?if?(File)???????????//?文件存在么?
?{
??fclose(File);?????????//?關閉句柄
??return?auxDIBImageLoadA(Filename);????//?載入位圖并返回指針
?}
?return?NULL;??????????//?如果載入失敗,返回?NULL
}
int?LoadGLTextures()?????????//?載入位圖(調用上面的代碼)并轉換成紋理
{
?int?Status=FALSE;?????????//?狀態指示器
?AUX_RGBImageRec?*TextureImage[1];?????//?創建紋理的存儲空間
?memset(TextureImage0sizeof(void?*)*1);???//?將指針設為?NULL
?//?載入位圖,檢查有無錯誤,如果位圖沒找到則退出
?if?(TextureImage[0]=LoadBMP(“zi.bmp“))
?{
??Status=TRUE;?????????//?將?Status?設為?TRUE
??glGenTextures(1?&texture[0]);?????//?創建紋理
??//?使用來自位圖數據生成?的典型紋理
??glBindTexture(GL_TEXTURE_2D?texture[0]);
??//?生成紋理
??glTexImage2D(GL_TEXTURE_2D?0?3?TextureImage[0]->sizeX?TextureImage[0]->sizeY?0?GL_RGB?GL_UNSIGNED_BYTE?TextureImage[0]->data);
??glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);?//?線形濾波
??glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);?//?線形濾波
?}
?if?(TextureImage[0])????????//?紋理是否存在
?{
??if?(TextureImage[0]->data)??????//?紋理圖像是否存在
??{
???free(TextureImage[0]->data);????//?釋放紋理圖像占用的內存
??}
??free(TextureImage[0]);???????//?釋放圖像結構
?}
?return?Status;??????????//?返回?Status
}
//設置背景設置光源
void?SetupRC(void)??
{?
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT?ambientLight);
glLightfv(GL_LIGHT0GL_DIFFUSEambientLight);
glLightfv(GL_LIGHT0GL_SPECULARspecular);
glLightfv(GL_LIGHT0GL_POSITIONlightPos);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-01-01?19:46??計算機圖形學\
?????目錄???????????0??2015-12-31?15:51??計算機圖形學\13計科3柯嘉少\
?????目錄???????????0??2016-01-01?19:47??計算機圖形學\13計科3柯嘉少\可運行程序\
?????文件??????249901??2016-01-01?19:41??計算機圖形學\13計科3柯嘉少\可運行程序\robort.exe
?????文件??????196664??2015-12-30?19:13??計算機圖形學\13計科3柯嘉少\可運行程序\zi.bmp
?????目錄???????????0??2016-01-01?19:48??計算機圖形學\13計科3柯嘉少\源代碼\
?????文件???????17283??2016-01-01?19:41??計算機圖形學\13計科3柯嘉少\源代碼\robort.cpp
?????目錄???????????0??2016-01-03?01:14??計算機圖形學\13計科3柯嘉少\說明文檔\
?????文件??????175104??2016-01-03?01:14??計算機圖形學\13計科3柯嘉少\說明文檔\課設.doc
- 上一篇:易語言源碼QQ批量登陸
- 下一篇:AD9833核心波形發生程序
評論
共有 條評論