如何高效解析C++中的obj模型文件?

2026-04-12 10:060阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2441个文字,预计阅读时间需要10分钟。

如何高效解析C++中的obj模型文件?

目录

一、前言

二、中间文件

三、使用

四、完整代码

一、前言

tinyobjloader地址:[传送门](#)

二、中间文件

三、使用

四、完整代码

五、支持材质,不支持骨骼动画

目录
  • 一、前言
  • 二、中间文件
  • 三、使用
  • 四、完整代码

一、前言

tinyobjloader地址:

传送门

而tinyobjloader库只有一个头文件,可以很方便的读取obj文件。支持材质,不过不支持骨骼动画,vulkan官方教程便是使用的它。不过没有骨骼动画还是有很大的局限性,这里只是分享一下怎么读取材质和拆分网格。

二、中间文件

我抽象了一个ModelObject类表示模型数据,而一个ModelObject包含多个Sub模型,每个Sub模型使用同一材质(有的人称为图元Primitive或DrawCall)。最后我将其保存为文件,这样我的引擎便可直接解析ModelObject文件,而不是再去读obj、fbx等其他文件了。

这一节可以跳过,下一节是真正使用tinyobjloader库。

阅读全文

本文共计2441个文字,预计阅读时间需要10分钟。

如何高效解析C++中的obj模型文件?

目录

一、前言

二、中间文件

三、使用

四、完整代码

一、前言

tinyobjloader地址:[传送门](#)

二、中间文件

三、使用

四、完整代码

五、支持材质,不支持骨骼动画

目录
  • 一、前言
  • 二、中间文件
  • 三、使用
  • 四、完整代码

一、前言

tinyobjloader地址:

传送门

而tinyobjloader库只有一个头文件,可以很方便的读取obj文件。支持材质,不过不支持骨骼动画,vulkan官方教程便是使用的它。不过没有骨骼动画还是有很大的局限性,这里只是分享一下怎么读取材质和拆分网格。

二、中间文件

我抽象了一个ModelObject类表示模型数据,而一个ModelObject包含多个Sub模型,每个Sub模型使用同一材质(有的人称为图元Primitive或DrawCall)。最后我将其保存为文件,这样我的引擎便可直接解析ModelObject文件,而不是再去读obj、fbx等其他文件了。

这一节可以跳过,下一节是真正使用tinyobjloader库。

阅读全文