资源简介
带纹理的茶壶,opengl实现,opengl入门级别代码
代码片段和文件信息
#include
#include
#include
#include
void myinit(void);
void CALLBACK display(void);
void CALLBACK reshape(GLsizei wGLsizei h);
// 定义一个一维纹理的数据,从生成来看,保持红色、兰色分量255(MAX),
// 所以是渐变的紫色纹理,饱和度不断变化。
#define TEXTUREWIDTH 64
GLubyte Texture[3*TEXTUREWIDTH];
void makeTexture(void)
{
int i;
for(i=0;i {
Texture[3*i] =255;
Texture[3*i+1] =255-2*i;
Texture[3*i+2] =255;
}
}
GLfloat sgenparams[]={1.01.01.00.0};
void myinit(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(00500500);
auxInitWindow(“sample1“);
glClearColor(0.00.00.00.0);
glClear(GL_COLOR_BUFFER_BIT);
// 创建纹理
makeTexture();
glPixelStorei(GL_UNPACK_ALIGNMENT1);
// 控制纹理
glTexEnvf(GL_TEXTURE_ENVGL_TEXTURE_ENV_MODEGL_MODULATE);
glTexParameterf(GL_TEXTURE_1DGL_TEXTURE_WRAP_SGL_REPEAT);
glTexParameterf(GL_TEXTURE_1DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexParameterf(GL_TEXTURE_1DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexImage1D(GL_TEXTURE_1D03TEXTUREWIDTH0
GL_RGBGL_UNSIGNED_BYTETexture);
// 唯一与前面例子不同的地方:启用纹理坐标自动产生,生成环境纹理
// 纹理的方向S
glTexGeni(GL_SGL_TEXTURE_GEN_MODEGL_object_LINEAR);
glTexGenfv(GL_SGL_object_PLANEsgenparams);
// 启用纹理
glEnable(GL_TEXTURE_1D);
glEnable(GL_TEXTURE_GEN_S);
// 启用消隐
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glDepthFunc(GL_LESS);
// 一些绘图控制,详细可参阅VC5联机帮助
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glFrontFace(GL_CW);
glCullFace(GL_BACK);
glMaterialf(GL_FRONTGL_SHININESS64.0);
// glShadeModel(GL_FLAT);
}
void CALLBACK reshape(GLsizei wGLsizei h)
{
glViewport(00wh);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho(-4.04.0-4.0*(GLfloat)h/(GLfloat)w
4.0*(GLfloat)h/(GLfloat)w-4.04.0);
else
glOrtho(-4.0*(GLfloat)h/(GLfloat)w
4.0*(GLfloat)h/(GLfloat)w-4.04.0-4.04.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void CALLBACK display(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(30.01.00.00.0);
// 利用辅助库函数绘制一个茶壶
auxSolidTeapot(1.5);
glPopMatrix();
glFlush();
}
void main(void)
{
myinit();
auxReshapeFunc(reshape);
auxMainLoop(display);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3515 1999-12-04 01:37 带纹理的茶壶\Exam02.dsp
文件 537 1999-12-04 01:37 带纹理的茶壶\Exam02.dsw
文件 41984 2006-01-11 11:28 带纹理的茶壶\Exam02.ncb
文件 53760 2006-01-11 11:28 带纹理的茶壶\Exam02.opt
文件 1070 1999-12-04 01:37 带纹理的茶壶\Exam02.plg
文件 2733 1999-11-26 07:39 带纹理的茶壶\Texture.c
目录 0 2006-01-11 11:28 带纹理的茶壶
----------- --------- ---------- ----- ----
103817 8
相关资源
- glut搭建glut32bit和64bit
- opengl实现的光线跟踪算法2
- UG NX 与 Opengl联合编程
- OpenGL shader 代码,可正常编译,完美
- opengl太阳系系统有贴图
- opengl 一个有光照效果带纹理会旋转的
- opengl系统开发案例代码 Chapter15
- glm.cpp、glm.h用于opengl读取obj文件
- OPENGL可一走动的人
- opengl实现多边形绘制删除和移动 有保
- OpenGL实现3DS文件中的模型自由旋转
- opengl画球,递归细分
- OpenGL教室
- 3DS文件导入OpenGL并动态显示源码
- OpenGL使用Window API绘制矢量字体非常简
- 计算机图形学四面体几何变换.doc
- 交互式计算机图形学-基于OpenGL的自顶
- 《实战OPENGL三维可视化系统开发与源
- Qt加OpenGL实现鼠标控制视角
- OpenGLSETest.zip
- QTopengl模块使用demo
- QT使用openglES模块做的立方体程序
- OpenGL坦克大战2D游戏文档包含所有模块
- opengl下的贪吃蛇
- 华南理工大学实验——OpenGL Shader导入
- OpenGL透视投影小程序源码
- OpenGL纹理贴图.jpg格式图片小程序源码
- QT5.7+OPENGL画正方体
- OpenGL实现多边形扫描转换的扫描线算
- OpenGL鼠标点选平移物体
评论
共有 条评论