资源简介
读取obj文件,转换为顶点数组、索引数组和颜色数组使用为各自开辟缓存空间并且绑定缓存空间,使用着色器渲染图形,glDrawElements(GL_TRIANGLES, 3 * objRead.faces.size(), GL_UNSIGNED_BYTE, 0);绘制
代码片段和文件信息
#include “fileRead.h“
fileRead::fileRead()
{
}
fileRead::~fileRead()
{
}
//Obj文件读取
void fileRead::obj_reader(string filename)
{
string line;
ifstream in(filename);
if (!in)
{
cout << “Invalid file name.“ << endl;
cout << “Can‘t read obj file.“ << endl;
exit(0);
}
else
cout << “read obj file success.“ << endl;
cout << “玩命运算中,请稍后... ...“ << endl;
while (getline(in line))
{
//去除每行首尾的空格回车等
line.erase(line.find_last_not_of(“ \n\r\t“) + 1);
switch (line.find_first_not_of(“ \n\r\t“))
{
case 0:
break;
// line=line.substr(line.find_first_not_of(“ \n\r\t“));
default:
if (line.find_first_not_of(“ \n\r\t“)>10){
break;
line = line.substr(line.find_first_not_of(“ \n\r\t“));
break;
}
}
//获取顶点坐标
if (line.compare(0 2 “v “) == 0)
{
line = line.substr(line.find_first_of(“v“) + 1);
istringstream s(line);
mesh::vertex v;
s >> v.vx >> v.vy >> v.vz;
vertexs.push_back(v);
}
//获取纹理坐标
if (line.compare(0 2 “vt“) == 0)
{
line = line.substr(line.find_first_of(“vt“) + 2);
istringstream s(line);
mesh::texture vt;
s >> vt.vtx >> vt.vty;
textures.push_back(vt);
}
//获取顶点法向量坐标
if (line.compare(0 2 “vn“) == 0)
{
line = line.substr(line.find_first_of(“vn“) + 2);
istringstream s(line);
mesh::normal vn;
s >> vn.vnx >> vn.vny >> vn.vnz;
normals.push_back(vn);
}
//获取面索引
if (line.compare(0 2 “f “) == 0)
{
string temp f_data;
line = line.substr(line.find_first_of(“f“) + 1);
//cout< if (line.compare(1 10 “//“)>0)
{
line = replace_all_distinct(line “/“ “ “);
istringstream s(line);
mesh::face f;
s >> f.vfx >> f.vnfx;
s >> f.vfy >> f.vnfy;
s >> f.vfz >> f.vnfz;
faces.push_back(f);
}
else
{
line = replace_all_distinct(line “/“ “ “);
istringstream s(line);
mesh::face f;
s >> f.vfx >> f.vtfx >> f.vnfx;
s >> f.vfy >> f.vtfy >> f.vnfy;
s >> f.vfz >> f.vtfz >> f.vnfz;
faces.push_back(f);
}
}
}
cout< cout< cout< cout< }
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-06-05 09:19 obj-glsl\
目录 0 2018-06-04 18:45 obj-glsl\Debug\
文件 224768 2018-06-04 17:12 obj-glsl\Debug\glsl-test-1.exe
文件 3591228 2018-06-04 17:12 obj-glsl\Debug\glsl-test-1.ilk
文件 4000768 2018-06-04 17:12 obj-glsl\Debug\glsl-test-1.pdb
目录 0 2018-06-04 18:47 obj-glsl\Release\
文件 52224 2018-06-05 09:06 obj-glsl\Release\glsl-test-1.exe
文件 2690048 2018-06-05 09:06 obj-glsl\Release\glsl-test-1.pdb
目录 0 2018-06-05 09:06 obj-glsl\glsl-test-1\
目录 0 2018-06-04 18:43 obj-glsl\glsl-test-1\Debug\
文件 853113 2018-06-04 11:03 obj-glsl\glsl-test-1\Debug\fileRead.obj
文件 7576 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.log
目录 0 2018-06-04 18:42 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\
文件 94564 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\CL.read.1.tlog
文件 3214 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\CL.write.1.tlog
文件 3106 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\cl.command.1.tlog
文件 200 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\glsl-test-1.lastbuildstate
文件 26944 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\li
文件 36724 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\li
文件 1122 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\li
文件 448883 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\mian.obj
文件 296873 2018-06-04 10:59 obj-glsl\glsl-test-1\Debug\shader.obj
文件 1281024 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\vc120.idb
文件 1126400 2018-06-04 17:12 obj-glsl\glsl-test-1\Debug\vc120.pdb
目录 0 2018-06-05 09:06 obj-glsl\glsl-test-1\Release\
文件 2807514 2018-06-04 17:13 obj-glsl\glsl-test-1\Release\fileRead.obj
文件 7696 2018-06-05 09:06 obj-glsl\glsl-test-1\Release\glsl-test-1.log
目录 0 2018-06-05 09:06 obj-glsl\glsl-test-1\Release\glsl-test-1.tlog\
文件 107992 2018-06-05 09:06 obj-glsl\glsl-test-1\Release\glsl-test-1.tlog\CL.read.1.tlog
文件 2670 2018-06-05 09:06 obj-glsl\glsl-test-1\Release\glsl-test-1.tlog\CL.write.1.tlog
文件 3216 2018-06-05 09:06 obj-glsl\glsl-test-1\Release\glsl-test-1.tlog\cl.command.1.tlog
............此处省略23个文件信息
- 上一篇:Dirac量子力学原理英文原版
- 下一篇:IAI电缸软件RC联机
相关资源
- Visual Studio 搭建好的OpenGL环境GLFW3+GL
- OpenGL实现三维仿真系统
- 山东大学计算机图形学实验1
- 直线的四种裁剪算法
- Computer graphics with opengl 4th edition 计算
- 山东大学计算机图形学实验课程资源
- 计算机图形学(OpenGL版)第3版.pdf
- OpenGL SuperBible 7 pdf
- OpenGL编程指南(原书第8版) + OpenGL超
- VS2017OpenGL 配置步骤
- 读OBJ模型,加载多纹理
- OpenGL红宝书第七版带目录完整版PDF+源
- opengl自定义函数实现平移旋转缩放
- OpenGL 3D场景绘制 SiriusPrx 荒岛古堡.r
- OpenGL一个室内三维渲染OBJ文件导入和
- NeHe OpenGL Qt4教学代码
- Opengl 蘑菇、萤火虫、地形三维建模
- OPENGL纹理贴图正方体
- OpenGL编程精粹源代码
- NeHe_OpenGL_VC版本1-48课全部教程以及源
- 计算机图形学实验OpenGL
- opengl 视频纹理处理
- OpenGL物理碰撞效果
- OpenGL小游戏
- OpenGL超级宝典第五版pdf及其随书源码
- OpenGL读取bunny文件+斯坦福兔子
- OpenGL开发的教室场景可以漫游
- OpenGL高级编程与可视化系统开发-系统
- opengl读取.obj三维模型,arcball实现鼠标
- OpenGL超级宝典 第5版 中文版 完整书签
评论
共有 条评论