区块链技术博客
www.b2bchain.cn

代码吸猫 | 用 OpenGL 图像渲染的养猫计划求职学习资料

本文介绍了代码吸猫 | 用 OpenGL 图像渲染的养猫计划求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

在掘金上看到最近的新活动 “代码吸猫”,技术类文章只要和猫有关就行。

对于没有养猫的程序员,这不是为难人嘛。

不过没关系,用 OpenGL 图像渲染给自己造一只猫吧!!!

模型构造

首先需要构造出猫的模型,有能力的话可以直接在三维软件里面造一个。

或者像我一样直接下载免费的猫模型,然后把它导入 Blender 3D 软件中。

代码吸猫 | 用 OpenGL 图像渲染的养猫计划

在 Blender 中可以预览猫模型,或者对它做一下调整,最后在把这个模型导出。

模型加载

导出的 obj 文件里面就记录了模型的顶点信息,接下来就要用 OpenGL 将它绘制出来。

这里要用到 assimp 开源库,它支持多种模型文件的解析操作,通过它将模型解析成一个个 Mesh 。

Mesh 的定义如下:

class Mesh { public:   /*  Mesh Data  */   vector<Vertex> vertices;   vector<unsigned int> indices;   vector<Texture> textures;   unsigned int VAO;   // 省略部分代码 }

Mesh 相当于绘制模型上的一个个网格或者说面片,它包含了该网格的顶点、纹理信息和绘制索引。

而模型 Model 就是由这一系列网格 Mesh 组成的。

代码吸猫 | 用 OpenGL 图像渲染的养猫计划

如上图所示,猫模型是由一个个小矩阵组成的,小矩阵就可以理解成 mesh 网格了。

Model 的定义如下:

class Model { public:   /*  Model Data */   vector<Texture> textures_loaded;       vector<Mesh> meshes;   // 省略部分代码   }  

在实际绘制的时候,也是由一个一个 Mesh 最终绘制成的。

    // draws the model, and thus all its meshes  void Draw(Shader shader)  {    for(unsigned int i = 0; i < meshes.size(); i++)      meshes[i].Draw(shader);  }

从图中也可以看到,猫模型的网格数量是很多的,导致加载的时候会很很慢了,加载方法如下:

“`cpp

在掘金上看到最近的新活动 “代码吸猫”,技术类文章只要和猫有关就行。

对于没有养猫的程序员,这不是为难人嘛。

不过没关系,用 OpenGL 图像渲染给自己造一只猫吧!!!

模型构造

首先需要构造出猫的模型,有能力的话可以直接在三维软件里面造一个。

或者像我一样直接下载免费的猫模型,然后把它导入 Blender 3D 软件中。

代码吸猫 | 用 OpenGL 图像渲染的养猫计划

在 Blender 中可以预览猫模型,或者对它做一下调整,最后在把这个模型导出。

模型加载

导出的 obj 文件里面就记录了模型的顶点信息,接下来就要用 OpenGL 将它绘制出来。

这里要用到 assimp 开源库,它支持多种模型文件的解析操作,通过它将模型解析成一个个 Mesh 。

Mesh 的定义如下:

class Mesh { public:   /*  Mesh Data  */   vector<Vertex> vertices;   vector<unsigned int> indices;   vector<Texture> textures;   unsigned int VAO;   // 省略部分代码 }

Mesh 相当于绘制模型上的一个个网格或者说面片,它包含了该网格的顶点、纹理信息和绘制索引。

而模型 Model 就是由这一系列网格 Mesh 组成的。

代码吸猫 | 用 OpenGL 图像渲染的养猫计划

如上图所示,猫模型是由一个个小矩阵组成的,小矩阵就可以理解成 mesh 网格了。

Model 的定义如下:

class Model { public:   /*  Model Data */   vector<Texture> textures_loaded;       vector<Mesh> meshes;   // 省略部分代码   }  

在实际绘制的时候,也是由一个一个 Mesh 最终绘制成的。

    // draws the model, and thus all its meshes  void Draw(Shader shader)  {    for(unsigned int i = 0; i < meshes.size(); i++)      meshes[i].Draw(shader);  }

从图中也可以看到,猫模型的网格数量是很多的,导致加载的时候会很很慢了,加载方法如下:

“`cpp

在掘金上看到最近的新活动 “代码吸猫”,技术类文章只要和猫有关就行。

对于没有养猫的程序员,这不是为难人嘛。

不过没关系,用 OpenGL 图像渲染给自己造一只猫吧!!!

模型构造

首先需要构造出猫的模型,有能力的话可以直接在三维软件里面造一个。

或者像我一样直接下载免费的猫模型,然后把它导入 Blender 3D 软件中。

代码吸猫 | 用 OpenGL 图像渲染的养猫计划

在 Blender 中可以预览猫模型,或者对它做一下调整,最后在把这个模型导出。

模型加载

导出的 obj 文件里面就记录了模型的顶点信息,接下来就要用 OpenGL 将它绘制出来。

这里要用到 assimp 开源库,它支持多种模型文件的解析操作,通过它将模型解析成一个个 Mesh 。

Mesh 的定义如下:

class Mesh { public:   /*  Mesh Data  */   vector<Vertex> vertices;   vector<unsigned int> indices;   vector<Texture> textures;   unsigned int VAO;   // 省略部分代码 }

Mesh 相当于绘制模型上的一个个网格或者说面片,它包含了该网格的顶点、纹理信息和绘制索引。

而模型 Model 就是由这一系列网格 Mesh 组成的。

代码吸猫 | 用 OpenGL 图像渲染的养猫计划

如上图所示,猫模型是由一个个小矩阵组成的,小矩阵就可以理解成 mesh 网格了。

Model 的定义如下:

class Model { public:   /*  Model Data */   vector<Texture> textures_loaded;       vector<Mesh> meshes;   // 省略部分代码   }  

在实际绘制的时候,也是由一个一个 Mesh 最终绘制成的。

    // draws the model, and thus all its meshes  void Draw(Shader shader)  {    for(unsigned int i = 0; i < meshes.size(); i++)      meshes[i].Draw(shader);  }

从图中也可以看到,猫模型的网格数量是很多的,导致加载的时候会很很慢了,加载方法如下:

“`cpp

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 代码吸猫 | 用 OpenGL 图像渲染的养猫计划求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们