资源简介
简单的OpenGL实例,基于GLUT库c语言实现,画出一个立方体,在六个面贴上纹理,初学者可以看看

代码片段和文件信息
#define GLUT_DISABLE_ATEXIT_HACK
#if defined(__APPLE__)
#include
#else
#include
#include “GL/glut.h“
#endif
const int width = 800;
const int height = 600;
GLfloat cubic_size = 1.0f;
GLfloat xRotation = 0.0f yRotation = 0.0f;
const GLfloat rotSpeed = 64.0;
bool bLButtonDown = false;
GLint lastLx lastLy;
GLuint iTexture[]={000000};
const GLfloat lightAmbient[] = {0.5f 0.5f 0.5f 1.0f};
const GLfloat lightDiffuse[] = {1.0f 1.0f 1.0f 1.0f};
const GLfloat lightSpecular[] = {1.0f 1.0f 1.0f 1.0f};
const GLfloat lightPosition[] = {1.0f 1.0f 2.0f 1.0f};
const GLfloat MatAmbient[] = {0.192250 0.192250 0.192250 1.000000};//环境反射
const GLfloat MatDiffuse[] = {0.507540 0.507540 0.507540 1.000000};//漫反射
const GLfloat MatSpecular[] = {0.508273 0.508273 0.508273 1.000000};//镜面反射
const GLfloat MatShineness = 21.200001;
// need to define if gl.h version < 1.2.
#ifndef GL_LIGHT_MODEL_COLOR_CONTROL
#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
#endif
#ifndef GL_SEPARATE_SPECULAR_COLOR
#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
#endif
void init()
{
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glDepthFunc(GL_LEQUAL); // The Type Of Depth Testing To Do
// set the texture
AUX_RGBImageRec *image[6];
image[0] = auxDIBImageLoad(“woodbox.bmp“);
image[1] = auxDIBImageLoad(“pattern.bmp“);
image[2] = auxDIBImageLoad(“hrt-stone.bmp“);
image[3] = auxDIBImageLoad(“stone.bmp“);
image[4] = auxDIBImageLoad(“diamond_plate_texture.bmp“);
image[5] = auxDIBImageLoad(“gray.bmp“);
for(int i=0; i<6;i++)
{
if (image[6] != NULL) {
glPixelStorei(GL_UNPACK_ALIGNMENT 1);
glGenTextures(6 &iTexture[i]);
glBindTexture(GL_TEXTURE_2D iTexture[i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_LINEAR);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_LINEAR);
glTexImage2D(GL_TEXTURE_2D 0 GL_RGB image[i]->sizeX image[i]->sizeY 0
GL_RGB GL_UNSIGNED_BYTE image[i]->data);
//glTexEnvf(GL_TEXTURE_ENV GL_TEXTURE_ENV_MODE GL_DECAL);
glHint(GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST);
glEnable(GL_TEXTURE_2D);
free(image[i]->data);
free(image[i]);
}
}
glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0 GL_AMBIENT lightAmbient);
glLightfv(GL_LIGHT0 GL_DIFFUSE lightDiffuse);
glLightfv(GL_LIGHT0 GL_SPECULAR lightSpecular);
glLightfv(GL_LIGHT0 GL_POSITION lightPosition);
glMaterialfv(GL_FRONT GL_AMBIENT MatAmbient);
glMaterialfv(GL_FRONT GL_DIFFUSE MatDiffuse);
glMaterialfv(GL_FRONT GL_SPECULAR MatSpecular);
glMaterialf(GL_FRONT GL_SHININESS MatShineness);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE);
glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL GL_SEPARATE_SPECULAR_COLOR);
}
/* Draw the window - this is where all the GL actions are */
void
display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glPushMa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 786486 2013-11-20 13:52 Glut_立方体纹理\Debug\diamond_plate_texture.bmp
文件 221184 2013-09-23 16:43 Glut_立方体纹理\Debug\glut32.dll
文件 28728 2013-09-23 16:43 Glut_立方体纹理\Debug\glut32.lib
文件 217414 2015-12-01 14:07 Glut_立方体纹理\Debug\gray.bmp
文件 233547 2015-12-01 17:04 Glut_立方体纹理\Debug\HelloGlut.exe
文件 368084 2015-12-01 17:04 Glut_立方体纹理\Debug\HelloGlut.ilk
文件 25982 2015-12-01 17:04 Glut_立方体纹理\Debug\HelloGlut.obj
文件 3684572 2015-11-30 19:14 Glut_立方体纹理\Debug\HelloGlut.pch
文件 623616 2015-12-01 17:04 Glut_立方体纹理\Debug\HelloGlut.pdb
文件 1966134 2013-11-20 13:24 Glut_立方体纹理\Debug\hrt-stone.bmp
文件 232374 2015-12-01 14:11 Glut_立方体纹理\Debug\leather.bmp
文件 2359350 2013-11-20 13:25 Glut_立方体纹理\Debug\pattern.bmp
文件 145254 2015-12-01 14:11 Glut_立方体纹理\Debug\stone.bmp
文件 222208 2015-12-01 17:04 Glut_立方体纹理\Debug\vc60.idb
文件 77824 2015-12-01 17:04 Glut_立方体纹理\Debug\vc60.pdb
文件 66614 1999-09-25 20:19 Glut_立方体纹理\Debug\woodbox.bmp
文件 154054 2015-12-01 14:11 Glut_立方体纹理\Debug\yellow.bmp
文件 786486 2013-11-20 13:52 Glut_立方体纹理\diamond_plate_texture.bmp
文件 62175 1999-02-08 13:11 Glut_立方体纹理\GL\fgl.h
文件 7483 1999-02-08 13:11 Glut_立方体纹理\GL\fglu.h
文件 10473 1999-02-08 13:11 Glut_立方体纹理\GL\fglut.h
文件 5287 1999-02-08 13:11 Glut_立方体纹理\GL\glsmap.h
文件 27670 2000-12-13 00:22 Glut_立方体纹理\GL\glut.h
文件 4190 1999-02-16 10:55 Glut_立方体纹理\GL\glutf90.h
文件 9119 2000-12-12 23:07 Glut_立方体纹理\GL\tube.h
文件 221184 2013-09-23 16:43 Glut_立方体纹理\glut32.dll
文件 28728 2013-09-23 16:43 Glut_立方体纹理\glut32.lib
文件 217414 2015-12-01 14:07 Glut_立方体纹理\gray.bmp
文件 7164 2015-12-01 17:04 Glut_立方体纹理\HelloGlut.cpp
文件 4352 2013-11-20 18:46 Glut_立方体纹理\HelloGlut.dsp
............此处省略20个文件信息
- 上一篇:自己做的打地鼠小游戏
- 下一篇:C++做的一个聊天室程序
相关资源
- 安卓c语言开发SDL2+opengles
- 交互式计算机图形学 第六版 OpenGL源代
- VC++基于OpenGL模拟的一个3维空间模型
- opengl绘制汽车.cpp
- opengl实现水流效果sph
- opengl源代码,全是精华!
- OpenGL迷宫山东大学图形学实验三
- opengl的立方体消隐算法
- vc++ opengl代码爆炸
- 我见过最漂亮的CS仿真程序openGL和C+
- 广东某工业大学的openGL课程设计
- 使用OpenGL实现多个小球在密闭空间内
- 利用openGL和C++实现光线跟踪绘图的完
- OpenGl C++太阳系小行星运行系统 可切换
- vc++和OpenGL实现三维地形实时动态显示
- C++实现利用OpenGL实现三维绘图
- 太阳、地球、月亮之间的运动图Open
- MFC 单文档 实现opengl 三维旋转 缩放
- OPENGL的烟花程序(代码)
- MFC+OpenGL三维建模与动画显示
- 基于opengl粒子系统实现喷泉的模拟
- 一个基于openGL的太阳系模型,太阳地
- vc6.0+opengl纯色五角星填充
- vc6.0+opengl动态绘制五角星
- NeHe_OpenGL教程完整版 里面有地址可以
- MFC实现dem的读取与现实
- VC++ OpenGL三维地形漫游
- OpenGL实现三维地形实时动态显示
- VC++中Opengl实现建筑物虚拟漫游
- OpenGL 建筑物漫游
评论
共有 条评论