本文主要讲解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. python入门教程书-清华大学出版社-图书详情-《Python快速入门精讲》
  2. 协同推荐算法没有这么复杂,真的
  3. 日常生活 -- 嵌入式面试
  4. COJ 1163 乘法逆元的求解
  5. 微软想让你跟机器人说句话就把事办了
  6. 工作132:页面布局
  7. 笔记:Gitlab-CI部署流程
  8. python中append和insert_python append、extend与insert的区别
  9. js系列之每天一练成长录之一
  10. html5弹性盒子模型,推荐10款弹性盒子源码(收藏)
  11. [蓝桥杯] 扩散 (Python 实现)
  12. Panabit流控软件使用相关说明及配置文件说明
  13. 1972年图灵奖--埃德斯加·狄克斯特拉生平
  14. java学习——JDK安装
  15. 力士乐触摸屏维修VCP20.2DUN-003-PB-NN-PW
  16. 电信网络管家APP功能介绍、外网远程桌面
  17. 计算机总分评价公式,用excel完成分数ABCD评价方法分享
  18. 将算术表达式((a+b)+c*(d+e)+f)*(g+h) 转化为二叉树。并分别写出对该二叉树进行 先序、中序、后续和层次遍历得到的结果
  19. 【墨者学院】SQL手动注入 靶场初体验
  20. 【xquic】ubuntu20.04: libevent ( Event notification library )构建

热门文章

  1. VS2015 通过Shockwave Flash Object 播放flash
  2. videoproc 4中文版(4K视频处理工具) v4.0附安装教程
  3. Android获取屏幕信息的几种方式
  4. 在 Debian 上将 aria2c 封装为服务的方法及遇到的踩坑点
  5. 一文搞懂数据质量怎么做,很接地气!
  6. JAVA 进制转换工具类 10进制转16进制 10进制转2进制 16进制转2进制 16进制10进制 2进制转10进制 2进制转16进制
  7. 不动产房屋结构代码_不动产统一登记数据库结构汇总.doc
  8. java编写的获取中国所有城市名称的网络爬虫
  9. 70进货卖100利润是多少_成本20卖100利润是多少 70进货卖100利润是多少
  10. 恒生电子2015春季校招笔试题