资源简介
包含文档,可运行程序,源代码,涉及光照,纹理,键盘鼠标交互等等.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核心波形发生程序
相关资源
- 计算机图形学课程设计
- opengl计算机图形学3D雪人
- 计算机图形学——几何变换源代码.
- 计算机图形学OpenGL源码
- 计算机图形学.pdf
- 利用OpenGL绘制一个简单场景:比如球
- Gpu pro1-7
- GPU pro shaderX GPU gems 全系列
- DX11 龙书 中文版 Introduction to 3D Game
- 计算机图形学-清华AMiner研究报告第九
- 计算机图形学 种子填充算法
- 《计算机图形学》视频教程42集
- 读取obj文件模型
- 图形学真实感图形代码
- 清华大学计算机图形学试题及解答
- 计算机图形学模拟试题(附答案)
- 计算机图形学OpenGL、codeblock、多边形
- 计算机图形学实验报告(附原代码)
- 计算机图形学报告 opengl
- 计算机图形学(扫描线填充)
- 直线段的生成算法 :掌握图形学中直
- 计算机图形学基础 第2版(陆枫何云峰
- 计算机图形学二维图形变换
- source code for Computer Graphics - using Open
- 图形学反走样
- 浙江大学计算机图形学作业-光线跟踪
- 地理信息系统GIS中的计算机图形学
- 计算机图形学实验四二维图形变换程
- 计算机图形学实验之画树叶代码
- 基于OpenGL实现简单三维场景漫游
评论
共有 条评论