OpenGL绘制罗纳尔多三维模型-Assimp库
本文主要讲解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库相关推荐
- OpenGL基础26:Assimp库
一.模型文件 游戏中有很多复杂的模型往往都是美术通过3D建模工具构建出来的,当然不是程序将顶点写死在代码里的,想想看一个简单的人物模型可能就有上千个顶点,这个时候按之前"生成木箱子" ...
- C#中使用tao.opengl绘制三维模型
一.tao.Opengl技术简介 Opengl是一种C风格的图形库,即opengl中没有类和对象,只有大量的函数.Opengl在内部就是一个状态机,利用不同的函数来修改opengl状态机的状态,以达到 ...
- openGL使用GLFW、GLEW库绘制点
前言 openGL使用GLFW.GLEW库绘制点,下面这段代码:绘制蓝色背景,中心点是一个黄色的点,由于代码比较简单,所以我把顶点着色器和片元着色器硬编码到c++程序中.问题就在这!!!由于着色器都写 ...
- [OpenGL] 使用Assimp库的骨骼动画
Tutorial 38: Skeletal Animation With Assimp 最终,我们来到了这里.有数百万的读者都要求这一教程(我可能夸大了一些,但确实有不少).骨骼动画(skeletio ...
- OpenGL深入探索——使用Assimp加载模型
转载自:第二十二课 使用Assimp加载模型 背景 到现在为止我们都在使用手动生成的模型.正如你所想的,指明每个顶点的位置和其他属性有点时候并不是十分方便.对于一个箱子.锥体和简单平面还好,但是像人们 ...
- 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵 | 设置投影矩阵 | 设置模型视图矩阵 | 绘制点 | 清除缓冲区 | 设置当前颜色值 | 设置点大小 | 绘制点 )
文章目录 一.初始化 OpenGL 矩阵 1.设置投影矩阵 2.设置模型视图矩阵 二.绘制点 1.清除缓冲区 2.设置当前颜色值 3.设置绘制点的大小 4.绘制点 5.将缓冲区绘制到前台 三.部分代码 ...
- 【OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )
文章目录 一.OpenGL 状态机概念 二.OpenGL 矩阵概念 上一篇博客 [OpenGL]八.初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗 ...
- C++ Opengl 绘制二次几何体源码
C++ Opengl 绘制二次几何体源码 项目开发环境 项目功能 项目演示 项目源码传送门 项目开发环境 开发语言:C++和IDE:VS2017,操作系统Windows版本windows SDK8.1 ...
- C++ Opengl 绘制图像字符源码
C++ Opengl 绘制图像字符源码 项目开发环境 项目功能 项目演示 项目源码传送门 项目开发环境 开发语言:C++和IDE:VS2017,操作系统Windows版本windows SDK8.1, ...
最新文章
- 2018热点总结:BERT最热,GANs最活跃,每20分钟就有一篇论文...
- laravel5.0升级到5.1
- [译] 基于事件流构建的服务
- AQS.acquireQueued
- 从客户端(CourseIssueContent=P财务审计师岗位认证招生简章BR...)中检测到有潜在危险的 Request.Form 值。...
- c语言课题设计字符串处理函数报告,C语言输入输出库函数设计实验报告.doc
- 台式电脑连接蓝牙耳机_怎样知道电脑(台式机)有没有蓝牙?
- 矩池云上出现Could not find conda environment
- CentOS下PostgreSQL 主从实现之异步流复制(Hot Standby)
- fftw3 嵌入式linux安装,Ubuntu18.04下快速的安装UHD与GnuRadio并连接USRP设备
- python周末看什么电影_电影院要开工了,用Python看一看最近有什么刚上映的电影...
- 以编程方式管理IIS
- 分布式监控系统开发【day37】:填充表配置项目(三)
- netty使用(5)client_server一发一回阐释ByteBuffer的使用
- windows 安装 dnw、fastboot 驱动的时候遇到问题(数字签名)
- 开始启程, 你的第一行前端代码
- webpack随笔04-webpack5压缩jscss
- 程序运行时报错NullPointerException(空指针)情况以及解决方法
- 简记 2022/9/2
- 官方文档——AlwaysOn AG的先决条件、限制和建议