资源简介
两个物体,带纹理旋转,有光照,有键盘交互。十分适合计算机图形学的考试课程设计。
代码片段和文件信息
#include
GLfloat x1=0.0f;
GLfloat y1=0.0f;
GLfloat rsize=25;
GLfloat xstep=1.0f;
GLfloat ystep=1.0f;
GLfloat windowWidth;
GLfloat windowHeight;
static GLfloat xrot = 0.0f;
static GLfloat yrot = 0.0f;
#define stripeImageWidth 50
GLubyte stripeImage[3*stripeImageWidth];
void makeStripeImage(void)
{
int j;
for (j = 0; j < stripeImageWidth; j++)
{
stripeImage[3*j] = 255;
stripeImage[3*j+1] =255/1*j;
stripeImage[3*j+2] =200;
}
}
GLfloat sgenparams[] = {2.0 0.0 0.0 0.0};
void RenderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_CULL_FACE);
glEnable(GL_DEPTH_TEST);
glPolygonMode(GL_BACKGL_FILL);
glLoadIdentity();
glPushMatrix();
glColor3f(1.00.00.0);
glRotatef(xrot 0.0f 0.1f 0.0f);
xrot+=0.1f;
glRotatef(yrot 0.1f 0.0f 0.0f);
glutSolidTeapot(50);
glTranslatef(15000);
glRotatef(xrot 0.0f 0.1f 0.0f);
xrot+=0.1f;
glRotatef(yrot 0.1f 0.0f 0.0f);
glutSolidSphere(25.025.0100.0);
glPopMatrix();
glutPostRedisplay();
glutSwapBuffers();
}
void SpecialKeys(int key int x int y)
{ if(key == GLUT_KEY_UP) yrot -= 5.0f;
if(key == GLUT_KEY_DOWN) yrot += 5.0f;
if(key == GLUT_KEY_LEFT) xrot -= 5.0f;
if(key == GLUT_KEY_RIGHT) xrot += 5.0f;
}
void SetupRC(void)
{
GLfloat mat_specular[] = { 1.0 1.0 1.0 1.0 };
GLfloat mat_shininess[] = { 100.0 };
GLfloat light_position[] = { -50.0 100.0 1000.0 0.0};
GLfloat light_ambient[]={0.0 0.0 0.0 1.0};
GLfloat light_diffuse[]={ 1.0 1.0 1.0 1.0 };
GLfloat light_specular[]={ 1.0 1.0 1.0 1.0 };
GLfloat light_position1[] = { 0.0 100.0 0.0 1.0 };
glClearColor (0.0 0.0 0.0 0.0);
glShadeModel (GL_SMOOTH);
makeStripeImage();
glPixelStorei(GL_UNPACK_ALIGNMENT 1);
glTexEnvf(GL_TEXTURE_ENV GL_TEXTURE_ENV_MODE GL_MODULATE);
glTexParameterf(GL_TEXTURE_1D GL_TEXTURE_WRAP_S GL_REPEAT);
glTexParameterf(GL_TEXTURE_1D GL_TEXTURE_MAG_FILTER G
相关资源
- 基于STM32F103C8T6主控板使用BH1750检测光
- MFC 单文档 实现opengl 三维旋转 缩放
- 一个基于openGL的太阳系模型,太阳地
- OpenGL简单——实现立方体贴上不同纹
- c++写的fcm算法程序
- 用OpenGL实现球面纹理
- [源码&文档] 基于OpenCV的室内目标跟踪
- OpengGL三维立方体纹理贴图
- opengl光照旋转交互
- VC++ 球体 Phong光照模型
- openCV纹理图像特征提取,比较两幅图
- C++开发的OPENGL立方体,支持鼠标拖拽
- MFC下实现OpenGL纹理贴图
- 圆环纹理映射(c++项目)
- ue4蓝图c++动态改变staticmeshactor材质动
- OpenGL纹理贴图源程序.rar
- OpenGL纹理茶壶
- 计算机图形学——球的光照模型算法
- 地球仪纹理型纹理贴图 C++代码
- 利用opengl 组件的基础上使用VC++编写的
- Gabor滤波器纹理特征提取
- VC++关于纹理特征提取的代码完整
- c++写的OpenGL程序透明金字塔有加上光
- openGL 小汽车
- 一个用opengl实现的带有光照和材质效
- opengl实现对地球纹理贴图
- OpenGL教室纹理映射贴图
- 茶壶的光照观察组(c++代码)
- C++实战源码-图像纹理填充矩形
- 局部光照算法实现源代码
评论
共有 条评论