• 大小: 36.87MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-23
  • 语言: 其他
  • 标签: OpenGL  

资源简介

读取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\link.command.1.tlog
     文件       36724  2018-06-04 17:12  obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\link.read.1.tlog
     文件        1122  2018-06-04 17:12  obj-glsl\glsl-test-1\Debug\glsl-test-1.tlog\link.write.1.tlog
     文件      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个文件信息

评论

共有 条评论