資源簡介
讀取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.“?< cout?<“Can‘t?read?obj?file.“?< exit(0);
}
else
cout?<“read?obj?file?success.“?< cout?<“玩命運算中,請稍后...?...“?<
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聯機
評論
共有 條評論