资源简介
opengl三维建模实例,代码展示。蘑菇、天空、地形、萤火虫、灯光效果。
代码片段和文件信息
#include
#include
#include
#include
#include
#include “camera.h“
struct MUSHROOM
{
float x y z; //蘑菇的位置
int texT texM texB; //蘑菇不同部分对应的纹理
};
extern void Display();
extern void Display2();
void Reshape(int width int height);
extern CAMERA camera;
extern int SPOT_LIGHT_ON; //聚光灯是否打开
extern float DEG_TO_RAD;
extern float viewDX viewDY viewDZ;
extern float eyePX eyePY eyePZ;
extern int Window_Width;
extern int Window_Height;
extern int L;
extern float W;
extern int H;
extern float PR;
float BORDERW = 60;
POINT mousePos;
#define MAX_MUSHROOM_ORG 30 //最大蘑菇数
extern int MAX_MUSHROOM;
extern MUSHROOM* mushroom;
extern void MushroomInit();
float dx = 0.0f;
float dy = 0.0f;
float dz = -1.0f;
float ax = 0.0f;
float ay = 0.0f;
float r = 1000.0f;
extern struct mPOINT oldpt;
int l_button_down=FALSE;
struct POLAR polar={ 150 0 45};
const float FIT1 = 0.05;
const float FIT2 = 0.08;
int UDSPEED = 2.0f;
int SPEED0 = 2.0f;
int SPEED = SPEED0;
int maxSPEED = 8.0f;
int ACC = 2.0f;
int JUMP = 30.0f;
int Jtag = 1;
void SetCamera(GLfloat x GLfloat y)
{
ax += x*FIT1;
ay -= y*FIT2;
if (ay >= 90) ay = 90;
if (ay <= -90) ay = -90;
dz = -r*cos(ax*DEG_TO_RAD);
dx = r*sin(ax*DEG_TO_RAD);
dy = r*sin(ay);
dy = r*sin(ay*DEG_TO_RAD);
dx = dx * cos(ay*DEG_TO_RAD);
dz = dz * cos(ay*DEG_TO_RAD);
viewDX = eyePX + dx;
viewDY = eyePY + dy;
viewDZ = eyePZ + dz;
//Display();
Display2();
}
void onmousemove(int x int y) //鼠标按住移动
{
if(l_button_down)
{
SetCamera(float(x-oldpt.x)float(y-oldpt.y));
oldpt.x=x;
oldpt.y=y;
}
}
void MouseMove(int x int y) //鼠标移动
{
GetCursorPos(&mousePos);
if ((mousePos.x != Window_Width/2) || (mousePos.y != Window_Height/2))
{
SetCamera(float(mousePos.x)-float(Window_Width/2)float(mousePos.y)-float(Window_Height/2));
SetCursorPos(Window_Width/2 Window_Height/2);
oldpt.x=x;
oldpt.y=y;
}
}
void Mouse(int button int state int x int y)
{
if (button == GLUT_WHEEL_UP)
{
if ((eyePY - UDSPEED) > -24)
eyePY -= UDSPEED;
viewDX = eyePX + dx;
viewDY = eyePY + dy;
viewDZ = eyePZ + dz;
Display2();
}
if (button == GLUT_WHEEL_DOWN)
{
if ((eyePY + UDSPEED) > -24)
eyePY += UDSPEED;
viewDX = eyePX + dx;
viewDY = eyePY + dy;
viewDZ = eyePZ + dz;
Display2();
}
if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
{
if (Jtag == 1)
{
//eyePZ -= SPEED*cos(ax*DEG_TO_RAD);
//eyePX += SPEED*sin(ax*DEG_TO_RAD);
eyePY += JUMP;
viewDX = eyePX + dx;
viewDY = eyePY +
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 17007320 2013-12-11 22:31 bin.rar
文件 225 2013-12-13 22:59 操作说明.txt
文件 6957 2013-12-11 14:57 src\camera.cpp
文件 993 2013-12-07 03:39 src\camera.h
文件 0 2013-10-23 18:47 src\global.h
文件 39800 2013-12-11 15:39 src\main.cpp
文件 6353 2013-10-31 15:11 src\mushroom.cpp
文件 155 2013-10-23 20:50 src\mushroom.h
文件 387 2013-12-08 18:41 src\resource.h
目录 0 2013-12-11 15:42 src
----------- --------- ---------- ----- ----
17062190 10
- 上一篇:zookeeper-3.4.6
- 下一篇:信息资源规划-高复先高清
相关资源
- OPENGL纹理贴图正方体
- OpenGL编程精粹源代码
- NeHe_OpenGL_VC版本1-48课全部教程以及源
- 计算机图形学实验OpenGL
- opengl 视频纹理处理
- OpenGL物理碰撞效果
- OpenGL小游戏
- 基于数字光栅的结构光三维测量技术
- CARTO3系统内部培训手册-三维标测算法
- OpenGL超级宝典第五版pdf及其随书源码
- OpenGL读取bunny文件+斯坦福兔子
- Acute 3D Viewer 4.4
- OpenGL开发的教室场景可以漫游
- OpenGL高级编程与可视化系统开发-系统
- opengl读取.obj三维模型,arcball实现鼠标
- OpenGL超级宝典 第5版 中文版 完整书签
- 三维扫描仪大卫DAVID 3D扫描仪操作视频
- 申抒含-基于图像的大规模场景三维重
- Computer Graphics with OpenGL 4th edition 高清
- pcd格式三维点云
- OpenGL 4.0 Shading Language Cookbook及完整源
- halcon 三维机器视觉方法介绍
- Computer_Graphics_with_OpenGL_4th_ed.pdf
- opengl读入obj文件并实现平移旋转贴图
- 三维地形生成算法源码
- OGL模型加载
- OPENGL 经典案例 整套
- 二级齿轮减速器三维图
- opengl包含16个鼠标控制点的Bezier曲面
- qt下opengl的三维视角转换算法
评论
共有 条评论