OpenGL一个室内三维渲染OBJ文件导入和贴图
视角可移动,旋转的房间简单三维场景,有灯光,有阴影,导入OBJ文件,有纹理贴图,对于初学者还是比较好的,简单易懂
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-02-12 10:11 Sence1
目录 0 2015-02-12 10:06 Sence1Debug
文件 184320 2015-02-12 10:07 Sence1DebugSence1.exe
文件 1004612 2015-02-12 10:07 Sence1DebugSence1.ilk
文件 3697664 2015-02-12 10:07 Sence1DebugSence1.pdb
目录 0 2015-02-11 14:50 Sence1Sence1
目录 0 2015-02-12 10:07 Sence1Sence1Debug
文件 38060 2015-02-12 10:07 Sence1Sence1DebugCL.read.1.tlog
文件 1154 2015-02-12 10:07 Sence1Sence1DebugCL.write.1.tlog
文件 92 2015-02-12 10:07 Sence1Sence1DebugSence1.lastbuildstate
文件 1443 2015-02-12 10:07 Sence1Sence1DebugSence1.log
文件 623564 2015-02-12 10:07 Sence1Sence1DebugSence1.obj
文件 1179648 2015-02-11 23:51 Sence1Sence1DebugSence1.pch
文件 3010 2015-02-12 10:07 Sence1Sence1Debugcl.command.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink-cvtres.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink-cvtres.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink-rc.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink-rc.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10060-cvtres.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10060-cvtres.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10060-rc.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10060-rc.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10060.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10060.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10584-cvtres.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10584-cvtres.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10584-rc.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10584-rc.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10584.read.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.10584.write.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debuglink.11120-cvtres.read.1.tlog
............此处省略93个文件信息
#include “stdafx.h“
#include
#include
#include
#include
#include
#include
#include
#include
// Include GLM
#include
#include
#include
using namespace std;
static double seex=0.0;
static double seey=-20.0;
static double seez=50.0;
static double atx=0.0;
static double aty=-20.0;
static double atz=40.0;
static double angle1=0.0;
static double angle2=0.0;
static double dzx=0.0;
static double dzy=0.0;
const double Pi=3.141592653589793;
static double d=10;
GLuint texture[6]; //为纹理分配空间
vector vertices;
vector uvs;
vector normals;
int nodesSize;
bool loadOBJ(
const char * path
std::vector & out_vertices
std::vector & out_uvs
std::vector & out_normals
){
printf(“Loading OBJ file %s...
“ path);
std::vector vertexIndices uvIndices normalIndices;
std::vector temp_vertices;
std::vector temp_uvs;
std::vector temp_normals;
FILE * file ;
errno_t err;
err= fopen_s(&filepath “r“);
if( file == NULL ){
printf(“Impossible to open the file ! Are you in the right path ? See Tutorial 1 for details
“);
return false;
}
printf(“Loading OBJ file %s...
“ path);
while( 1 ){
char lineHeader[128];
// read the first word of the line
int res = fscanf_s(file “%s“ lineHeadersizeof(128));
if (res == EOF)
break; // EOF = End Of File. Quit the loop.
// else : parse lineHeader
if ( strcmp( lineHeader “v“ ) == 0 ){
//cout<<“Get v“< glm::vec3 vertex;
fscanf_s(file “%f %f %f
“ &vertex.x &vertex.y &vertex.z );
temp_vertices.push_back(vertex);
}else if ( strcmp( lineHeader “vt“ ) == 0 ){
//cout<<“Get vt“< glm::vec2 uv;
fscanf_s(file “%f %f
“ &uv.x &uv.y );
uv.y = -uv.y; // Invert V coordinate since we will only use DDS texture which are inverted. Remove if you want to use TGA or BMP loaders.
temp_uvs.push_back(uv);
}else if ( strcmp( lineHeader “vn“ ) == 0 ){
//cout<<“Get vn“< glm::vec3 normal;
fscanf_s(file “%f %f %f
“ &normal.x &normal.y &normal.z );
temp_normals.push_back(normal);
}else if ( strcmp( lineHeader “f“ ) == 0 ){
//cout<<“Get
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-02-12 10:11 Sence1
目录 0 2015-02-12 10:06 Sence1Debug
文件 184320 2015-02-12 10:07 Sence1DebugSence1.exe
文件 1004612 2015-02-12 10:07 Sence1DebugSence1.ilk
文件 3697664 2015-02-12 10:07 Sence1DebugSence1.pdb
目录 0 2015-02-11 14:50 Sence1Sence1
目录 0 2015-02-12 10:07 Sence1Sence1Debug
文件 38060 2015-02-12 10:07 Sence1Sence1DebugCL.read.1.tlog
文件 1154 2015-02-12 10:07 Sence1Sence1DebugCL.write.1.tlog
文件 92 2015-02-12 10:07 Sence1Sence1DebugSence1.lastbuildstate
文件 1443 2015-02-12 10:07 Sence1Sence1DebugSence1.log
文件 623564 2015-02-12 10:07 Sence1Sence1DebugSence1.obj
文件 1179648 2015-02-11 23:51 Sence1Sence1DebugSence1.pch
文件 3010 2015-02-12 10:07 Sence1Sence1Debugcl.command.1.tlog
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
文件 2 2015-02-12 10:07 Sence1Sence1Debugli
............此处省略93个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)