资源简介
opengl通过键盘对3d图像进行颜色,光照,旋转等变化,VS2013上可运行,opengl通过键盘对3d图像进行颜色,光照,旋转等变化,opengl通过键盘对3d图像进行颜色,光照,旋转等变化,opengl通过键盘对3d图像进行颜色,光照,旋转等变化,opengl通过键盘对3d图像进行颜色,光照,旋转等变化,opengl通过键盘对3d图像进行颜色,光照,旋转等变化,opengl通过键盘对3d图像进行颜色,光照,旋转等变化,opengl通过键盘对3d图像进行颜色,光照,旋转等变化
代码片段和文件信息
// pratice.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include
#include
#include
#include
#include
using namespace std;
GLfloat position[] = { 1.0 1.0 5.0 0.0 };
void init(void)
{
GLfloat ambient[] = { 0.0 0.0 0.0 1.0 };
GLfloat diffuse[] = { 1.0 1.0 1.0 1.0 };
GLfloat specular[] = { 1.0 1.0 1.0 1.0 };
//光源位置
GLfloat lmodel_ambient[] = { 0.2 0.2 0.2 1.0 };
GLfloat local_view[] = { 0.0 };
glLightfv(GL_LIGHT0 GL_AMBIENT ambient);
glLightfv(GL_LIGHT0 GL_DIFFUSE diffuse);
glLightfv(GL_LIGHT0 GL_POSITION position);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT lmodel_ambient);
glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER local_view);
glFrontFace(GL_CW);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glEnable(GL_DEPTH_TEST);
}
int N = 0;
GLfloat mat[3][4] = { { 0.1 0.1 0.1 } { 0.5 0.1 0.9 } { 0.3 0.9 0.9 } };
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glTranslatef(4 8 0.0);
//teapot的颜色
glMaterialfv(GL_FRONT GL_DIFFUSE mat[N]);
glutSolidTeapot(3.0);
glPopMatrix();
glFlush();
}
void reshape(int w int h)
{
glViewport(0 0 (GLsizei)w (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho(0.0 16.0 0.0 16.0*(GLfloat)h / (GLfloat)w
-10.0 10.0);
else
glOrtho(0.0 16.0*(GLfloat)w / (GLfloat)h 0.0 16.0
-10.0 10.0);
glMatrixMode(GL_MODELVIEW);
}
void rotation(int x)
{
glRotatef(2 0.0f 1.0f 0.0f);
glutPostRedisplay();
glutTimerFunc(100 rotation 1);
}
void keyboard(unsigned char key int x int y)
{
switch (key) {
case ‘a‘:
exit(0);
break;
case 27:
exit(0);
break;
}
if (key == 99)
{
glutPostRedisplay();
N++;
if (N > 3)
N = 0;
}
if (key == 114){
glutTimerFunc(100 rotation 1);
cout << “Unhandled key press r“ << endl;
}
}
void keyboard1(int key int x int y)
{
if (key == GLUT_KEY_RIGHT)
{
position[0] = position[0] + 0.5;
init();
glutPostRedisplay();
}
if (key == GLUT_KEY_LEFT)
{
position[0] = position[0] - 0.5;
init();
glutPostRedisplay();
}
if (key == GLUT_KEY_UP) {
position[1] = position[1] + 0.5;
init();
glutPostRedisplay();
}
if (key == GLUT_KEY_DOWN)
{
position[1] = position[1] - 0.5;
init();
glutPostRedisplay();
}
}
/*void obj::parse(const char*filename)
{
string s;
ifstream fin(“cube.obj“);
if (!fin)
return;
while (fin >> s)
{
switch (*s.c_str())
{
case‘v‘:
{
vertex v;
fin >> v.x >> v.y >> v.z;
this->vertexs.push_back(v);
}
break;
case‘f‘:
{
face f;
fin >> f.v1 >> f.v2 >> f.v3;
faces.push_back(f);
}
break;
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 29264 2005-08-29 13:03 pratice\bunny_1k.obj
文件 5410 2005-08-29 13:03 pratice\bunny_200.obj
文件 172 2005-08-29 13:03 pratice\cube.obj
文件 949 2017-09-06 17:43 pratice\Debug\pratice.Build.CppClean.log
文件 2753 2017-09-10 19:44 pratice\Debug\pratice.log
文件 180209 2017-09-10 19:44 pratice\Debug\pratice.obj
文件 1638400 2017-09-06 17:43 pratice\Debug\pratice.pch
文件 1898 2017-09-10 19:44 pratice\Debug\pratice.tlog\cl.command.1.tlog
文件 18044 2017-09-10 19:44 pratice\Debug\pratice.tlog\CL.read.1.tlog
文件 1078 2017-09-10 19:44 pratice\Debug\pratice.tlog\CL.write.1.tlog
文件 2036 2017-09-10 19:44 pratice\Debug\pratice.tlog\li
文件 3880 2017-09-10 19:44 pratice\Debug\pratice.tlog\li
文件 572 2017-09-10 19:44 pratice\Debug\pratice.tlog\li
文件 168 2017-09-10 19:44 pratice\Debug\pratice.tlog\pratice.lastbuildstate
文件 11169 2017-09-06 17:43 pratice\Debug\stdafx.obj
文件 543744 2017-09-10 19:44 pratice\Debug\vc120.idb
文件 503808 2017-09-10 19:44 pratice\Debug\vc120.pdb
文件 225 2017-09-06 17:06 pratice\packages.config
文件 3760 2017-09-10 19:46 pratice\pratice.cpp
文件 5035 2017-09-10 15:08 pratice\pratice.vcxproj
文件 1474 2017-09-10 15:08 pratice\pratice.vcxproj.filters
文件 2329 2017-09-10 20:01 pratice\ReadMe.txt
文件 351 2017-09-10 15:41 pratice\readobj.h
文件 213 2017-09-06 17:01 pratice\stdafx.cpp
文件 234 2017-09-06 17:01 pratice\stdafx.h
文件 236 2017-09-06 17:01 pratice\targetver.h
目录 0 2017-09-10 19:44 pratice\Debug\pratice.tlog
目录 0 2017-09-10 19:44 pratice\Debug
目录 0 2017-09-10 20:01 pratice
----------- --------- ---------- ----- ----
............此处省略2个文件信息
- 上一篇:无碳小车资料
- 下一篇:Weblogic漏洞扫描工具
相关资源
- GLM动态库、静态库和头文件OpenGL
- opengl函数大全,所有可用函数都在这
- QT-opengl窗体,实现了 1.绘制立方体,
- 计算机图形学机器人绘制opengl
- 使用opengl画桌子+球+地板
- OpenGL 的 GL.h
- SOILX64版本
- 3D图形绘制及显示OpenGL
- 光线跟踪算法源码
- opengl的glut最全包
- glad.h库OpenGL开发用
- OpenGL+IMU显示姿态
- OpenGL编程指南第七版(原书+目录+文本
- glut工具包,解决编译问题: 无法打
- OPENGL视频教程从入门基础到精通
- OpenGL绘制图形包含20多个基本
- 用OPENGL做的空间探索程序.内有一个飞
- OPENGL做的太阳系五大行星的公转和自
- 基于openGL的三维地形场景的生成
- opengl 贴图教程
- opengl保存bmp图片函数
- OPENGL 字母模型
- QT opengl 绘制立体图形
- Qt加载3D模型
- openGL特效动画
- opengl计算机图形学3D雪人
- OPENGL ES 2.0 播放视频
- opengl 一个有光照效果带纹理会旋转的
- opengl写的台灯
- OpenGL SuperBible Library.rar
评论
共有 条评论