本文主要讲解assimp库的使用。

先看效果-资源在文末

正视图:

后视图:

侧视图:

主要使用assimp库进行加载obj模型:

核心代码:

通过加载完的scene对象解析模型的数据:

    void loadModel(string const &path){Assimp::Importer importer;const aiScene* scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_GenSmoothNormals | aiProcess_FlipUVs | aiProcess_CalcTangentSpace);if(!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) // if is Not Zero{cout << "ERROR::ASSIMP:: " << importer.GetErrorString() << endl;return;}directory = path.substr(0, path.find_last_of('/'));processNode(scene->mRootNode, scene);}void processNode(aiNode *node, const aiScene *scene){for(unsigned int i = 0; i < node->mNumMeshes; i++){aiMesh* mesh = scene->mMeshes[node->mMeshes[i]];meshes.push_back(processMesh(mesh, scene));}for(unsigned int i = 0; i < node->mNumChildren; i++){processNode(node->mChildren[i], scene);}}

processMesh函数主要将读取的信息,放入自定义的结构体中,这个可以根据每个人自行定义;

也就是Assimp库中aiMesh的结构对应。

注:图片的加载可用:stb_image。如果效果不对,请查看是否需要翻转加载。

stbi_set_flip_vertically_on_load(true)

有数据之后,后面的绘制就是正常的渲染流程即可。

OpenGL绘制罗纳尔多三维模型-Assimp库相关推荐

  1. OpenGL基础26:Assimp库

    一.模型文件 游戏中有很多复杂的模型往往都是美术通过3D建模工具构建出来的,当然不是程序将顶点写死在代码里的,想想看一个简单的人物模型可能就有上千个顶点,这个时候按之前"生成木箱子" ...

  2. C#中使用tao.opengl绘制三维模型

    一.tao.Opengl技术简介 Opengl是一种C风格的图形库,即opengl中没有类和对象,只有大量的函数.Opengl在内部就是一个状态机,利用不同的函数来修改opengl状态机的状态,以达到 ...

  3. openGL使用GLFW、GLEW库绘制点

    前言 openGL使用GLFW.GLEW库绘制点,下面这段代码:绘制蓝色背景,中心点是一个黄色的点,由于代码比较简单,所以我把顶点着色器和片元着色器硬编码到c++程序中.问题就在这!!!由于着色器都写 ...

  4. [OpenGL] 使用Assimp库的骨骼动画

    Tutorial 38: Skeletal Animation With Assimp 最终,我们来到了这里.有数百万的读者都要求这一教程(我可能夸大了一些,但确实有不少).骨骼动画(skeletio ...

  5. OpenGL深入探索——使用Assimp加载模型

    转载自:第二十二课 使用Assimp加载模型 背景 到现在为止我们都在使用手动生成的模型.正如你所想的,指明每个顶点的位置和其他属性有点时候并不是十分方便.对于一个箱子.锥体和简单平面还好,但是像人们 ...

  6. 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )

    文章目录 一.初始化 OpenGL 矩阵 1.设置投影矩阵 2.设置模型视图矩阵 二.绘制点 1.清除缓冲区 2.设置当前颜色值 3.设置绘制点的大小 4.绘制点 5.将缓冲区绘制到前台 三.部分代码 ...

  7. 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )

    文章目录 一.OpenGL 状态机概念 二.OpenGL 矩阵概念 上一篇博客 [OpenGL]八.初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗 ...

  8. C++ Opengl 绘制二次几何体源码

    C++ Opengl 绘制二次几何体源码 项目开发环境 项目功能 项目演示 项目源码传送门 项目开发环境 开发语言:C++和IDE:VS2017,操作系统Windows版本windows SDK8.1 ...

  9. C++ Opengl 绘制图像字符源码

    C++ Opengl 绘制图像字符源码 项目开发环境 项目功能 项目演示 项目源码传送门 项目开发环境 开发语言:C++和IDE:VS2017,操作系统Windows版本windows SDK8.1, ...

最新文章

  1. 2018热点总结:BERT最热,GANs最活跃,每20分钟就有一篇论文...
  2. laravel5.0升级到5.1
  3. [译] 基于事件流构建的服务
  4. AQS.acquireQueued
  5. 从客户端(CourseIssueContent=P财务审计师岗位认证招生简章BR...)中检测到有潜在危险的 Request.Form 值。...
  6. c语言课题设计字符串处理函数报告,C语言输入输出库函数设计实验报告.doc
  7. 台式电脑连接蓝牙耳机_怎样知道电脑(台式机)有没有蓝牙?
  8. 矩池云上出现Could not find conda environment
  9. CentOS下PostgreSQL 主从实现之异步流复制(Hot Standby)
  10. fftw3 嵌入式linux安装,Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备
  11. python周末看什么电影_电影院要开工了,用Python看一看最近有什么刚上映的电影...
  12. 以编程方式管理IIS
  13. 分布式监控系统开发【day37】:填充表配置项目(三)
  14. netty使用(5)client_server一发一回阐释ByteBuffer的使用
  15. windows 安装 dnw、fastboot 驱动的时候遇到问题(数字签名)
  16. 开始启程, 你的第一行前端代码
  17. webpack随笔04-webpack5压缩jscss
  18. 程序运行时报错NullPointerException(空指针)情况以及解决方法
  19. 简记 2022/9/2
  20. 官方文档——AlwaysOn AG的先决条件、限制和建议

热门文章

  1. 编程语言——标记语言——脚本语言之间的比较
  2. hfss史密斯图_教你如何在天线设计上使用HFSS仿真软件?
  3. 最细的 PyCharm 安装+详细使用指南
  4. 2016年会是不动产区块链启动的时刻…
  5. 浏览器 服务器结构的信息管理模式,基于浏览器/服务器结构的CAD图纸管理系统...
  6. Activity的理解
  7. 苹果关闭自动更新_iOS屏蔽更新不用描述文件,苹果官方:安排!
  8. 高通Android智能平台开发总结
  9. 买笔记本电脑如何避坑之完结篇
  10. 基于海豚PHP框架 七牛云(插件),合成小程序分享图 并上传到七牛云