资源简介
带纹理的茶壶,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
相关资源
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
- OpenGL实现飘动效果
- opengl室内场景的绘制,包括碰撞检测
评论
共有 条评论