资源简介
opengl读取 obj 文件,并用键盘和鼠标控制放大缩小和camera的角度
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include“read_obj.h“
//globals
//other functions and main
//.obj loader code
void loadObj(char *fname)
{
FILE *fp;
int read;
//GLfloat x y z;
char ch;
// object=glGenLists(1);
fp=fopen(fname“r“);
if (!fp)
{
printf(“can‘t open file %s\n“ fname);
//exit(1);
}
glPushMatrix();
while(!(feof(fp)))
{
read=fscanf(fp“%c“&ch);
switch(ch)
{
case ‘v‘:
fscanf(fp“%f %f %f“&vertex[ivertex].x&vertex[ivertex].y&vertex[ivertex].z);
ivertex++;
break;
case ‘f‘:
fscanf(fp“%d %d %d“&polygon[ipolygon].f1&polygon[ipolygon].f2&polygon[ipolygon].f3);
ipolygon++;
break;
}
}
glPopMatrix();
fclose(fp);
}
//.obj loader code ends here
void findobjcenter()
{
for(int i=0;i {
if(xmin>vertex[i].x)
{
xmin = vertex[i].x;
}
if(xmax {
xmax = vertex[i].x;
}
if(ymin>vertex[i].y)
{
ymin = vertex[i].y;
}
if(ymax {
ymax = vertex[i].y;
}
if(zmin>vertex[i].z)
{
zmin = vertex[i].z;
}
if(ymax {
zmax = vertex[i].z;
}
xcenter=(xmin+xmax)/2;
ycenter=(ymin+ymax)/2;
}
}
void reshape(int wint h)
{
glViewport(00wh);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
aspect = (GLfloat)w / (GLfloat)h;
gluPerspective (field_of_view aspect zNear zFar);
//glOrtho(-2525-220.1100);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void draw_object()
{
glPushMatrix();
findobjcenter();
glTranslatef(-xcenter-ycenter0.0);
glTranslatef(00-105);
glTranslatef(position[0]position[1]position[2]);
glColor3f(1.00.230.27);
glScalef(x_scaley_scalez_scale);
glRotatef(xangle100);
glRotatef(yangle010);
glRotatef(zangle001);
for (int i=0;i {
glBegin(mode);
glVertex3d(vertex[polygon[i].f1-1].xvertex[polygon[i].f1-1].yvertex[polygon[i].f1-1].z);
glVertex3d(vertex[polygon[i].f2-1].xvertex[polygon[i].f2-1].yvertex[polygon[i].f2-1].z);
glVertex3d(vertex[polygon[i].f3-1].xvertex[polygon[i].f3-1].yvertex[polygon[i].f3-1].z);
glEnd();
}
glPopMatrix();
}
void display(void)
{
glClearColor (0.00.00.01.0);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotated(camera_angle_v 1.0 0.0 0.0);
glRotated(camera_angle_h 0.0 1.0 0.0);
glShadeModel (GL_SMOOTH);
GLfloat light_ambient[] = {0.2 0.2 0.2 1.0};
GLfloat light_diffuse[] = { 0.8 0.8 0.8 1.0 };
GLfloat light_specular[] = { 0.0 0.0 0.0 1.0 };
GLfloat light_position[] = { 1.0 1.0 1.0 0.0 };
glLightfv(GL_LIGHT0 GL_AMBIENT light_ambient);
glLightfv(GL_LIGHT0 GL_DIFFUSE light_diffuse);
glLightfv(GL_LIGHT0 GL_SPECULAR light_specular
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 34816 2014-04-01 22:35 displaymodel\Debug\displaymodel.exe
文件 383916 2014-04-01 22:35 displaymodel\Debug\displaymodel.ilk
文件 920576 2014-04-01 22:35 displaymodel\Debug\displaymodel.pdb
文件 736 2014-04-01 22:35 displaymodel\displaymodel\Debug\cl.command.1.tlog
文件 18950 2014-04-01 22:35 displaymodel\displaymodel\Debug\CL.read.1.tlog
文件 592 2014-04-01 22:35 displaymodel\displaymodel\Debug\CL.write.1.tlog
文件 381 2014-04-01 22:35 displaymodel\displaymodel\Debug\displaymodel.exe.intermediate.manifest
文件 95 2014-04-01 22:35 displaymodel\displaymodel\Debug\displaymodel.lastbuildstate
文件 3848 2014-04-01 22:35 displaymodel\displaymodel\Debug\displaymodel.log
文件 707 2014-03-31 14:38 displaymodel\displaymodel\Debug\displaymodel.vcxprojResolveAssemblyReference.cache
文件 0 2014-03-31 14:38 displaymodel\displaymodel\Debug\displaymodel.write.1.tlog
文件 1524 2014-04-01 22:35 displaymodel\displaymodel\Debug\li
文件 3120 2014-04-01 22:35 displaymodel\displaymodel\Debug\li
文件 1012 2014-04-01 22:35 displaymodel\displaymodel\Debug\li
文件 628 2014-04-01 22:35 displaymodel\displaymodel\Debug\mt.command.1.tlog
文件 902 2014-04-01 22:35 displaymodel\displaymodel\Debug\mt.read.1.tlog
文件 442 2014-04-01 22:35 displaymodel\displaymodel\Debug\mt.write.1.tlog
文件 45806 2014-04-01 22:35 displaymodel\displaymodel\Debug\read_obj.obj
文件 732160 2014-04-01 22:35 displaymodel\displaymodel\Debug\vc100.idb
文件 372736 2014-04-01 22:35 displaymodel\displaymodel\Debug\vc100.pdb
文件 3301 2014-03-31 22:55 displaymodel\displaymodel\displaymodel.vcxproj
文件 1070 2014-03-31 22:55 displaymodel\displaymodel\displaymodel.vcxproj.filters
文件 143 2014-03-13 19:21 displaymodel\displaymodel\displaymodel.vcxproj.user
文件 5446 2014-04-01 22:35 displaymodel\displaymodel\read_obj.cpp
文件 1057 2014-04-01 20:40 displaymodel\displaymodel\read_obj.h
文件 33509376 2014-04-01 23:18 displaymodel\displaymodel.sdf
文件 908 2014-03-13 19:21 displaymodel\displaymodel.sln
..A..H. 35840 2014-04-01 23:18 displaymodel\displaymodel.suo
文件 34013184 2014-04-01 22:35 displaymodel\ipch\displaymodel-ff9ebc1\displaymodel-8c569a93.ipch
目录 0 2014-04-01 22:35 displaymodel\displaymodel\Debug
............此处省略9个文件信息
相关资源
- OpenGL ES应用开发实践 指南 iOS卷pdf
- 计算机图形学OpenGL第三版.pdf
- Open GL编程指南原书第7版
- OpenGL编程指南(第8版 PDF) 中文版 高
- 计算机图形学场景漫游
- QT实现的Opencv图像处理、点云显示、演
- obj格式3D模型
- 用openCV实现图片的放大缩小、图片旋
- 交互式计算机图形学 基于OpenGL着色器
- OPENGL ES 3.0 中文版本 编程指南 原书第
- opengl台灯
- Objc中国上的书swift4
- openGL电梯运动
- opengl树模型显示
- OpenGL纹理贴图.png格式图片小程序源码
-
Remob
jects SDK and DA Full source for Delp - OpenGL蓝宝书5中文版+英文原版+GLTools
- OpenGL ES 3.x游戏开发 上卷 吴亚峰 源码
- obj加载/三维图像拖动放大缩小旋转
- qt-4.8.4-x64-msvc2010.z01
- qt-win-opensource-4.8.2-vs2010.part4.rar
- OpenGL ES 3.x游戏开发上 下卷案例源程序
- opencv342_vc10_vc12_x86_64
- 计算机图形学openGL(中英文第三版)
- OpenGL.Superbible.7th.Edition原版影印本
- nehe的OpenGL教程bcb6源码.rar
- 打开raw图像文件
- faster_rcnn_inception_v2_coco_2018_01_28.tar.g
- OPENGL ES 3.0编程指南 第2版 中文版 PD
- OpenGL Programming Guide 9th Edition高清.pdf版
评论
共有 条评论