• 大小: 7.87MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-03
  • 语言: C/C++
  • 标签: OpenGL  

资源简介

简单的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个文件信息

评论

共有 条评论