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

资源简介

视角可移动,旋转的房间简单三维场景,有灯光,有阴影,导入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\link-cvtres.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link-cvtres.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link-rc.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link-rc.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10060-cvtres.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10060-cvtres.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10060-rc.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10060-rc.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10060.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10060.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10584-cvtres.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10584-cvtres.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10584-rc.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10584-rc.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10584.read.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.10584.write.1.tlog
     文件           2  2015-02-12 10:07  Sence1\Sence1\Debug\link.11120-cvtres.read.1.tlog
............此处省略93个文件信息

评论

共有 条评论