资源简介
视角可移动,旋转的房间简单三维场景,有灯光,有阴影,导入OBJ文件,有纹理贴图,对于初学者还是比较好的,简单易懂
代码片段和文件信息
#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...\n“ 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\n“);
return false;
}
printf(“Loading OBJ file %s...\n“ 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\n“ &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\n“ &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\n“ &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 Sence1\Debug\
文件 184320 2015-02-12 10:07 Sence1\Debug\Sence1.exe
文件 1004612 2015-02-12 10:07 Sence1\Debug\Sence1.ilk
文件 3697664 2015-02-12 10:07 Sence1\Debug\Sence1.pdb
目录 0 2015-02-11 14:50 Sence1\Sence1\
目录 0 2015-02-12 10:07 Sence1\Sence1\Debug\
文件 38060 2015-02-12 10:07 Sence1\Sence1\Debug\CL.read.1.tlog
文件 1154 2015-02-12 10:07 Sence1\Sence1\Debug\CL.write.1.tlog
文件 92 2015-02-12 10:07 Sence1\Sence1\Debug\Sence1.lastbuildstate
文件 1443 2015-02-12 10:07 Sence1\Sence1\Debug\Sence1.log
文件 623564 2015-02-12 10:07 Sence1\Sence1\Debug\Sence1.obj
文件 1179648 2015-02-11 23:51 Sence1\Sence1\Debug\Sence1.pch
文件 3010 2015-02-12 10:07 Sence1\Sence1\Debug\cl.command.1.tlog
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
文件 2 2015-02-12 10:07 Sence1\Sence1\Debug\li
............此处省略93个文件信息
相关资源
- 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版 中文版 完整书签
- Computer Graphics with OpenGL 4th edition 高清
- OpenGL 4.0 Shading Language Cookbook及完整源
- Computer_Graphics_with_OpenGL_4th_ed.pdf
- opengl读入obj文件并实现平移旋转贴图
- OGL模型加载
- OPENGL 经典案例 整套
- opengl包含16个鼠标控制点的Bezier曲面
- qt下opengl的三维视角转换算法
- OpenGL鱼眼镜头特效的视频播放器 基于
- opengl实现bezier曲面的纹理贴图、鼠标
- assimp.dll
- OpenGL SDK
- OpenGL读取点云文件并绘制
- 计算机图形学大作业
- OpenCV与OpenGL实现增强现实
评论
共有 条评论