资源简介
计算机图形学 OpenGL 实验六 纹理贴图
包括二重纹理

代码片段和文件信息
#include
#include
#include
#include
#include
#include “texload.h“
#pragma comment(lib“glew32.lib“)
#define TEXW 512
#define TEXH 512
#define selfWidth 64
#define selfHeight 64
static GLubyte self[selfHeight][selfWidth][4];
float fTranslate;
float fRotate;
float fScale = 1.0f; // set initial scale value to 1.0f
bool bPersp = false;
bool bAnim = false;
bool bWire = false;
bool change=false; //茶壶纹理切换
bool light=false; //茶壶高光
bool multiTexture=false; //多重纹理叠合
int wHeight = 0;
int wWidth = 0;
static GLuint texture[4];
GLfloat mat_shininess[] = { 50.0 };
GLfloat mat_teapot_ambient[] = {0.2f 0.2f 0.2f 1.0f};
GLfloat mat_teapot_diffuse[] = {1.0f 1.0f 1.0f 1.0f};//白色漫射光
GLfloat mat_specular_teapot[] = {1.0f 1.0f 1.0f 1.0f};//白色高光
void makeselfImage()
{
int ijc;
for(i=0;i for(j=0;j c=(((i&0x8)==0)^((j&0x8)==0))*255;
self[i][j][0]=(GLubyte)c;
self[i][j][1]=(GLubyte)c;
self[i][j][2]=(GLubyte)c;
self[i][j][3]=(GLubyte)255;
}
}
}
//定义纹理的函数:
void init()
{
glGenTextures(4 texture); //第一参数是需要生成标示符的个数 第二参数是返回标示符的数组
texload(0“monet.bmp“texture);
texload(1“Crack.bmp“texture);
texload(2“Spot.bmp“texture);
makeselfImage();//生成自定义纹理
glBindTexture(GL_TEXTURE_2Dtexture[3]);
glPixelStorei(GL_UNPACK_ALIGNMENT1); //设置像素存储模式所读取的图像数据的行对齐方式.
glTexImage2D(GL_TEXTURE_2D03selfWidthselfHeight0GL_RGBAGL_UNSIGNED_BYTEself);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_WRAP_SGL_REPEAT);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_WRAP_TGL_REPEAT);
}
void Draw_Leg(){
glScalef(1 1 3);
glBegin(GL_QUADS);
//front
glTexCoord2i(11); glVertex3f(0.50.50.5);//将当前(11)纹理坐标指定给 glVertex中的点
glTexCoord2i(10); glVertex3f(0.50.5-0.5);
glTexCoord2i(00); glVertex3f(0.5-0.5-0.5);
glTexCoord2i(01); glVertex3f(0.5-0.50.5);
//right
glTexCoord2i(11);glVertex3f(-0.50.50.5);//将当前(11)纹理坐标指定给 glVertex中的点
glTexCoord2i(10);glVertex3f(-0.50.5-0.5);
glTexCoord2i(00);glVertex3f(0.50.5-0.5);
glTexCoord2i(01);glVertex3f(0.50.50.5);
//back
glTexCoord2i(11);glVertex3f(-0.5-0.50.5);
glTexCoord2i(10);glVertex3f(-0.5-0.5-0.5);
glTexCoord2i(00);glVertex3f(-0.50.5-0.5);
glTexCoord2i(01);glVertex3f(-0.50.50.5);
//left
glTexCoord2i(11);glVertex3f(0.5-0.50.5);//将当前(11)纹理坐标指定给 glVertex中的点
glTexCoord2i(10);glVertex3f(0.5-0.5-0.5);
glTexCoord2i(00);glVertex3f(-0.5-0.5-0.5);
glTexCoord2i(01);glVertex3f(-0.5-0.50.5);
//up
glTexCoord2i(11);glVertex3f(-0.50.50.5);//将当前(11)纹理坐标指定给 glVertex中的点
glTexCoord2i(10); glVertex3f(0.50.50.5);
glTexCoord2i(00);glVertex3f(0.5-0.50.5);
glTexCoord2i(01);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-11-30 18:57 exp6_Texture\
目录 0 2011-11-30 18:58 exp6_Texture\exp6_Texture\
文件 903 2011-05-02 21:10 exp6_Texture\exp6_Texture.sln
文件 13312 2011-07-26 19:26 exp6_Texture\exp6_Texture.suo
文件 49206 2007-07-06 08:24 exp6_Texture\exp6_Texture\Crack.bmp
文件 3299 2011-07-26 16:52 exp6_Texture\exp6_Texture\exp6_Texture.vcxproj
文件 1065 2011-07-26 16:52 exp6_Texture\exp6_Texture\exp6_Texture.vcxproj.filters
文件 786488 2007-01-04 17:08 exp6_Texture\exp6_Texture\Monet.bmp
文件 49206 2007-07-06 08:24 exp6_Texture\exp6_Texture\Spot.bmp
文件 2869 2011-07-26 16:53 exp6_Texture\exp6_Texture\texload.h
文件 11432 2011-07-26 16:54 exp6_Texture\exp6_Texture\Texture.cpp
文件 12582966 2011-07-26 15:30 exp6_Texture\exp6_Texture\world.bmp
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 基于Gabor滤波器的图像纹理特征提取
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- 基于纹理的图像检索源代码
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 线性和反向跷跷板中的最大零纹理
- 反向跷跷板中具有破碎的循环对称性
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
评论
共有 条评论