问题标签 [assimp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3407 浏览

c++ - 将 VS2010 与 Assimp 链接

我一直在尝试让 assimp 与 VS2010 一起工作。我见过很多与此类似的问题,但我无法让它发挥作用。阅读此处的安装教程http://assimp.sourceforge.net/lib_html/install.html仍然无法正常工作。

这是我为 VS2010 项目设置所做的:

  1. 所有配置 -> 配置属性 -> VC++ 目录 -> 库目录 ADDED C:\assimp--3.0.1270-sdk\lib\assimp_release-dll_x64

  2. 所有配置 -> 配置属性 -> VC++ 目录 -> 包含目录 ADDED C:\assimp--3.0.1270-sdk\include

  3. 所有配置 -> 配置属性 -> C++ -> 常规 -> 附加包含目录 ADDED C:\assimp--3.0.1270-sdk\include

  4. 所有配置 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项添加 assimp.lib

当我编写以下代码时:

这是我得到的错误:

任何帮助,将不胜感激

0 投票
1 回答
107 浏览

opengl - 顶点缓冲区对象不会渲染,其他图元会

我正在使用 assimp 从文件中加载一些场景/对象,并且我让它们更早地正确显示 - 但重写了我的 MVP 矩阵设置(写得非常糟糕而且难以理解)。

现在,我在标准渲染管道中绘制的大多数原语似乎都很好。我在原点周围有一个线框立方体,也可以放入一个三角形。但无论我做什么,我的加载 ASSIMP 的对象都拒绝被渲染为线框或实体。

我怀疑我犯的错误非常明显。我试图将代码简化为一个最小的示例。

该对象应该看起来像一块岩石,并且应该显示在线框框中。

由于我没有对网格代码进行太多更改,我猜问题出在scene.hor中main.cpp

旧版本有 GLSL 程序,但我在这里删除了所有提及的内容。不过,我对 OpenGL Superbible 的理解是不需要着色器。那不可能吧?

0 投票
1 回答
1229 浏览

opengl - glVertexAttribPointer:绘制法线而不是顶点

我有一个顶点数据类型,其中包括位置 (3)、纹理 (2) 和顶点法线 (3)。我正在使用(请参见此处)将这些传递给顶点着色器glVertexAttribPointer

不幸的是,无论我加载什么模型,它都给了我死星——基本上是一个顶点球体,只有在我切换到线框渲染时才可见。

我尝试从我的模块中删除一堆顶点,最终到达了一个部分构建的死星。在这一点上,很明显它正在绘制法线,就好像它们是顶点一样。我根本不知道顶点正在被绘制。

我通过绘制两个额外的三角形来证实我的假设——一个代表顶点应该在哪里,另一个代表法线。我还将它们缩放了 1.1,这样它们就可以与对象本身区分开来。是的,它绝对是在绘制法线而不是顶点。

有谁知道为什么?我已经尝试在着色器中切换属性的顺序,但这并没有帮助(奇怪)。

这是完整的最小工作示例以及两个测试对象(完整,n20r4_d5.obj;非常部分,test11.obj)。

0 投票
1 回答
2175 浏览

c++ - 未定义的引用 aiImportfile (assimp) 使用 QT

我一直在尝试在 QT 5.2 中运行 assimp 以导入一些 3D 对象,但我对链接器有问题(我相信)。

我通过 cmake 安装它,首先从这里http://sourceforge.net/projects/assimp/files/assimp-3.0/下载源文件,然后使用 cmake 编译和安装。

然后,我尝试运行他们在文档中提供的示例

但是当试图编译这段代码时,我得到了错误

我正在使用 32 位 linux mint。有谁知道为什么它没有链接?我应该使用特定标志使用 cmake 编译吗?我无法在周围的任何帖子中找到任何特殊标志。

谢谢!

0 投票
1 回答
1335 浏览

c++ - 使用 Assimp 导入 o​​bj 文件

我在互联网上寻找一些Assimp样本,但没有成功。

我有以下结构:

任何人都可以发布填充顶点和索引数组的实际代码吗?

0 投票
0 回答
3876 浏览

c++ - 为什么 assimp 无法生成切线?

我正在使用 Assimp 加载模型以在 OpenGL 中渲染(模型是 stanford bunny 的 .obj,只有顶点位置信息,没有纹理坐标或法线)。我设置了后处理标志,以便 Assimp 生成平滑法线并计算切线/双切线。但是,虽然我可以很好地访问法线数组,但当我尝试访问切线数组时会出现段错误。

这是我用来读取文件的代码,以及我所有的后处理标志:

这就是我崩溃的地方:

显然,即使我告诉它,它也无法创建切线。

在读取文件并且其他步骤完成后,我尝试使用它importer.ApplyPostProcessing()来计算切线,以便它有法线来计算切线,但我得到了相同的结果。

0 投票
1 回答
1139 浏览

opengl - 在 OpenTK 中,多个网格在使用 Assimp 导入时不会发生变换

我确定网上有这个问题的答案,但我找不到。我正在将具有多个网格的 Blender 场景导入 OpenTK。我用来导入的库是 Assimp-net,文件格式是 Collada (.dae)。

我创建了一个有多个部分的宇宙飞船,每个部分都是一个网格。现在,当我导入和绘制时,对象的几何形状看起来很好,并且材料按预期工作。但是,不同部分不会像在 Blender 中那样旋转、缩放或平移。发生的情况是不同的部分没有连接,有些看起来比它们应该的更大/更小,在错误的地方等。

从 Blender 导出时是否缺少设置,或者是否有一些 Assimp 成员/函数可用于在渲染网格之前对其进行转换?

导入文件:

绘制网格(OpenTK 中的整个“RenderFrame”事件处理程序):

更新以使用建议。

0 投票
0 回答
828 浏览

ios - 针对 iOS 的 Assimp 链接

我已经能够使用 assimp 的这个分支在 iOS 上为 assimp 构建静态库。现在我有了 armv7、armv7s、arm64 和 i386(用于模拟器)的特定库,我应该如何将它们包含到我的项目中。在 xcode 中,有其他链接器标志的部分,它也有两个部分,调试和发布,每个部分都有两个部分用于模拟器和 ios sdk。在模拟器中,我已经为调试和发布设置了 i386 架构的路径。

对于 iOS sdk,这是我遇到的问题之一。每次我放置一个静态库时,它都会告诉我它忽略了静态库,因为我正在链接一个“为存档而构建的文件,而不是被链接的架构(armv7s)”。所以我尝试了 armv7s 静态库,它再次告诉我它忽略了这一点,因为除了“(armv7)”之外的同一件事。所以我试着把所有的库都放了,但它不起作用。我确信我错过了很多东西,但我不知道该怎么做。我尝试过不同的部署,不同的架构。我会很感激任何帮助。

编辑:

所以我可以通过将有效架构从 armv7、armv7s、arm64 更改为 armv7 来修复它。通过包含静态库的 armv7 版本,它现在可以工作了。但是,我想知道如何构建多个目标。这可能吗?它在构建 assimp 时发生吗?我可以为每个版本的库放置一个静态库吗?当我尝试专门针对链接器标志中的目标(例如 armv7)时,它最后还有一个“| Any iOS sdk”。我应该添加更多目标吗?

0 投票
1 回答
927 浏览

c++ - 未找到 Assimp 的 aiImportFile() 标识符

在这里,我有我的标题:

它编译并且没有未解析的外部,所以我的库文件应该是正确的。

但更进一步:

我收到一个关于 aiImportFile 的错误,即找不到它的标识符。这与 assimp 的所有其他工作一样令人费解。

我该如何解决?目前编译assimp的源代码不起作用,我没有得到任何库文件,所以我坚持使用“完整”下可用的内容。

0 投票
1 回答
3878 浏览

opengl - 使用 Assimp 在 OpenGL 中制作动画

我最近发现有一个名为“Assimp”的库,用于导入可以在 c++ opengl 中渲染动画的模型,现在我试图弄清楚我必须做什么,以便加载纹理模型并绘制它...

1) 推荐从 Blender 导出动画的格式是什么?

2)我已经有一个基本的网格类,正在绘制一个模型。我需要修改什么来支持动画?

我的数据结构:

我的网格 VBO 并绘制: