資源簡介
opengl導入obj文件后,對模型貼紋理,進行魔心變換等基本操作,可用鼠標鍵盤進行旋轉縮放

代碼片段和文件信息
#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-11-21?11:21??第二次實驗\
?????目錄???????????0??2018-11-16?15:46??第二次實驗\Debug\
?????文件??????924815??2018-11-14?00:26??第二次實驗\Debug\fileRead.obj
?????文件??????460238??2018-11-12?16:33??第二次實驗\Debug\glad.obj
?????文件????????1608??2018-11-12?16:33??第二次實驗\Debug\learn_triangle.Build.CppClean.log
?????文件??????297044??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.log
?????目錄???????????0??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\
?????文件????????2822??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\CL.command.1.tlog
?????文件??????130620??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\CL.read.1.tlog
?????文件????????4422??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\CL.write.1.tlog
?????文件?????????205??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\learn_triangle.lastbuildstate
?????文件????????2444??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\li
?????文件????????5378??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\li
?????文件????????1352??2018-11-16?15:46??第二次實驗\Debug\learn_triangle.tlog\li
?????文件??????350020??2018-11-12?16:33??第二次實驗\Debug\std_image.obj
?????文件?????1112959??2018-11-16?15:46??第二次實驗\Debug\triangle.obj
?????文件?????1625088??2018-11-16?15:46??第二次實驗\Debug\vc140.idb
?????文件?????1421312??2018-11-16?15:46??第二次實驗\Debug\vc140.pdb
?????文件???????44004??2018-09-20?19:37??第二次實驗\awesomeface.jpg
?????文件??????122294??2018-09-20?19:37??第二次實驗\container.jpg
?????文件????????1193??2018-06-04?17:24??第二次實驗\cube.obj
?????文件?????????977??2018-11-14?08:59??第二次實驗\cubic4.obj
?????文件????????2339??2018-06-04?11:03??第二次實驗\fileRead.cpp
?????文件????????1464??2018-06-04?11:00??第二次實驗\fileRead.h
?????文件?????????179??2018-11-16?00:54??第二次實驗\frag.fs
?????文件??????147434??2018-11-03?14:35??第二次實驗\glad.c
?????文件????????7134??2018-11-14?13:01??第二次實驗\learn_triangle.vcxproj
?????文件????????1861??2018-11-14?13:01??第二次實驗\learn_triangle.vcxproj.filters
?????文件??????243280??2018-11-04?00:26??第二次實驗\stb_image.h
?????文件??????????56??2018-11-04?00:22??第二次實驗\std_image.cpp
?????文件????????5466??2018-11-16?15:46??第二次實驗\triangle.cpp
............此處省略24個文件信息
評論
共有 條評論