计算机图形学场景漫游


该作品是课程设计作品,通过合理运用计算机图形学相关知识—openGL数据库、基本几何图元绘制、二维观察变换、图形的几何变换、三维观察变换、纹理贴图、交互技术、场景漫游等完成了作品《冰雪奇缘》。
资源截图
代码片段和文件信息

#include “stdafx.h“
#include “stdlib.h“
#include “math.h“
#include “GL/glut.h“
#include “GL/glaux.h“
#include “mmsystem.h“


GLuint texture[13];
GLfloat xRot;
GLfloat yRot;
GLfloat zRot;
GLfloat angle;
GLfloat angle1;
GLfloat LastxPos;
GLfloat LastyPos;
BOOL LButtonDn=false;


GLfloat z=0.0f;
static float xx=0.0fyy=40.0fzz=1499.0f;
static float lx=0.0fly=0.0flz=-0.5f;



#define YELLOW 1
#define MRED 2
#define CGREEN 3
float red=1.0;
float green=1.0;
float blue=1.0;


void ChangeSize(GLint wGLint h)
{
if(h==0) h=1;
glViewport(00wh);
GLfloat fAspect=(GLfloat)w/(GLfloat)h;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0fAspect1.01000.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(xx yy zz xx + lxyy + lyzz + lz 0.0f1.0f0.0f);
}

void MenuEvents(int oporation) 
{                
switch (oporation)
{                 
case YELLOW :                           
red=1.0;
green=1.0;
blue=0.0;
break;                 
case MRED :                           
red=1.0;
green=0.0;
blue=1.0;
break;               
case CGREEN :                           
red=0.0;
green=1.0;
blue=1.0;
break;                
}
}
void createGLUTMenus() 
{          
int menu;                  
menu = glutCreateMenu(MenuEvents);                        
glutAddMenuEntry(“Yellow“YELLOW);                 
glutAddMenuEntry(“MRed“MRED);         
glutAddMenuEntry(“CGreen“CGREEN);                          
glutAttachMenu(GLUT_RIGHT_BUTTON);
}


AUX_RGBImageRec *LoadBMP(char *Filename)
{
FILE *File=NULL;

if (!Filename)
{
return NULL;
}

File=fopen(Filename“r“);

if (File)
{
fclose(File);
return auxDIBImageLoad(Filename);
}

return NULL;
}

int LoadGLTextures()
{
int   i;
char filename[128];
AUX_RGBImageRec *TextureImage[13];
memset(TextureImage0sizeof(void *)*11);
for(i=0;i<14;i++)
{
sprintf(filename“Data/%d.bmp“i);
TextureImage[i] = LoadBMP(filename);
if(!TextureImage[i])
{
char msg[256];
sprintf(msg“Cannot read the file : %s“filename);
MessageBox(NULLmsg“Error“MB_OK);
return FALSE;
}
}
glGenTextures(13texture);
for(i=0;i<14;i++)
{
glBindTexture(GL_TEXTURE_2Dtexture[i]);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MAG_FILTERGL_NEAREST);
glTexParameteri(GL_TEXTURE_2DGL_TEXTURE_MIN_FILTERGL_NEAREST);
glTexImage2D(GL_TEXTURE_2D 0 3 TextureImage[i]->sizeX TextureImage[i]->sizeY 0 GL_RGB GL_UNSIGNED_BYTE TextureImage[i]->data);
if(TextureImage[i]->data)
free(TextureImage[i]->data);
free(TextureImage[i]);
}
return TRUE;
}


void DrawZhuzi()
{
    //柱子1
glPushMatrix();
glBindTexture(GL_TEXTURE_2D texture[0]);
glRotatef(-40.00.00.01.0);
glTranslatef(100.0-220.00.0f);
glNormal3f(0.00.01.0);
glBegin(GL_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      21732  2015-01-04 13:22  03131.cpp

     文件       4569  2014-12-31 23:32  03131.dsp

     文件        514  2014-12-30 14:05  03131.dsw

     文件      50176  2015-01-18 20:49  03131.ncb

     文件      48640  2015-01-18 20:49  03131.opt

     文件        935  2015-01-18 20:32  03131.plg

     文件    3145784  2014-12-31 14:15  031Data.bmp

     文件     457256  2014-12-31 16:21  031Data1.bmp

     文件     182216  2015-01-03 22:47  031Data10.bmp

     文件    3145784  2012-12-28 11:51  031Data11.bmp

     文件     205976  2015-01-04 12:33  031Data12.bmp

     文件     360056  2015-01-04 12:34  031Data13.bmp

     文件     432056  2014-12-31 17:03  031Data2.bmp

     文件     403256  2014-12-31 22:27  031Data3.bmp

     文件     216536  2015-01-03 17:21  031Data4.bmp

     文件     360056  2015-01-03 19:44  031Data5.bmp

     文件    3932216  2015-01-03 20:25  031Data6.bmp

     文件     270056  2015-01-03 20:49  031Data7.bmp

     文件     232376  2015-01-03 22:27  031Data8.bmp

     文件     232376  2015-01-03 22:37  031Data9.bmp

     文件   65123136  2015-01-03 23:29  031DataThe First Snowflakes.wav

     文件     258099  2015-01-18 20:32  031Debug31.exe

     文件     429976  2015-01-18 20:32  031Debug31.ilk

     文件      51728  2015-01-18 20:32  031Debug31.obj

     文件     203752  2014-12-30 15:15  031Debug31.pch

     文件     689152  2015-01-18 20:32  031Debug31.pdb

     文件       1882  2014-12-30 15:16  031DebugStdAfx.obj

     文件      99328  2015-01-18 20:32  031Debugvc60.idb

     文件      61440  2015-01-18 20:32  031Debugvc60.pdb

     文件       1190  2014-12-30 14:05  031ReadMe.txt

............此处省略8个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)