问题标签 [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 投票
2 回答
363 浏览

animation - 使用 Assimp 导入时确定骨骼长度

我正在尝试使用 Assimp 3.1.1 加载和渲染一些装配模型所以我在 aiNode 的层次结构中标识了 aiBone。对于每个 aiBone,我都有它的转换 (TRS) wrt 到父级。

我的问题是,如何确定每根骨头的长度?假设一个连接的骨骼,这对于大多数骨骼来说都不是问题,除了叶骨骼。假设我有以下骨架结构: b0 --> b1 --> b2 其中 b0 是根骨, b2 是叶骨。我怎么知道 b2 的长度(因为我只有 b1 的转换)?

谢谢!

0 投票
1 回答
3783 浏览

c++ - 如何让模型使用 Assimp 制作动画?

目前,我正在尝试使用 OpenGL 用 C++ 制作游戏引擎,并希望让 3D 动画正常工作。有人建议我使用 Assimp,并且能够找到一个教程来让静态模型工作,但我什至不知道从哪里开始使用动画。我一直在尝试用谷歌搜索它,但找不到任何有用的东西。如何修改我的代码以获取动画?推荐什么文件格式?

这是我目前的代码:

0 投票
1 回答
2998 浏览

c++ - 如何让 AssImp 正常工作?

我一直在尝试这样做大约一个星期,但无论如何都没有好处。我正在构建一个依赖 Assimp 加载模型的 .dll(UNDONE Engine .dll)。.dll 编译和链接完全没有问题,但是当我尝试将它与某些应用程序一起使用时,我收到以下错误:

这是什么?

'Test_Game.exe' 是我制作的应用程序,它使用了使用 assimp 的 .dll 库。

我从 sourceforge 存储库下载了 assimp。我得到了适用于 windows 的 3.0 版 SDK,安装了它,我做了任何必要的事情来链接项目。

以下是带有 .exe 的目录的外观:

在此处输入图像描述

我已经包含了 lib 的正确位数,即 32 位版本。

为什么它不起作用?Assimp 内部是否有一些内部错误阻止我使用它?还是我缺少什么?是否因为我从 dll 中使用它而导致问题?您能帮我完成正确安装和使用的步骤吗?我使用视觉工作室 13。

编辑

在我的 exe 上运行 Dependency walker 后,我得到了这个:

在此处输入图像描述

而且我不太清楚这意味着什么,但是,只是猜测,这是否意味着 assimp.exe 有一些未定义的函数?

0 投票
1 回答
507 浏览

opengl - Derelict Assimp 没有正确加载网格?(也许是索引缓冲区)

我编写了一个自定义的 OBJ 文件导入器,它运行得相当好,但不够强大,无法支持所有内容。我决定给 AssImp 一个机会。我遵循了一些教程并设置了我的代码以读取我已成功使用自定义导入器加载的 OBJ 立方体模型的顶点、tex 坐标、法线和索引。立方体模型的面没有正确渲染,而是只渲染了立方体的几个三角形。AssImp 处理数据的方式显然与我的解决方案有点不同,因为法线、位置/顶点、tex 坐标和索引与我的自定义解决方案不匹配。我非常感谢您了解我遇到问题的原因,因为我发现的所有教程都与我的方法相匹配。如果错误渲染的立方体的图片会有所帮助,我可以制作屏幕截图。谢谢你。

我的资产导入类:

我的其余代码位于(Mesh Class 在源代码/图形中): https ://github.com/BennetLeff/PhySim

0 投票
1 回答
3657 浏览

c++ - 如何使用 assimp 在 C++ 中旋转蒙皮模型的骨骼?

我可以通过在关键帧之间进行插值,使用 assimp 加载蒙皮模型的动画。现在,我一直在尝试从用户定义的变换矩阵中定向或定位骨骼,而不仅仅是从动画文件中加载它。例如,将手臂旋转一定角度,该角度将由用户指定。我将模型加载为绑定姿势:

为了使用变换矩阵来定位模型的其中一个网格,我尝试搜索与网格的父骨骼相对应的骨骼名称,然后将其节点矩阵替换为所需的矩阵。然而,这根本不起作用,因为它在不同的网格上使骨骼变形。

在此处输入图像描述

右侧的模型处于 T 姿势,我打算通过将颈部骨骼旋转 45 度角来修改它,但它保持不变,并且腿部变形,如左侧模型所示。因此,任何指向现有文章或答案的链接都可能非常有用。

0 投票
2 回答
1826 浏览

c++ - 使用assimp的骨骼动画中的矩阵顺序

我已按照教程进行操作,并按预期获得了装配模型的输出动画。本教程使用 assimp、gslsl 和 c++ 从文件中加载装配模型。但是,有些事情我想不通。首先是 assimp 的转换矩阵是行主矩阵,本教程使用 Matrix4f 类,它使用这些转换矩阵,就像它们是行主顺序一样。该 Matrix4f 类的构造函数如下所示:

但是,在计算最终节点转换的教程中,计算完成时期望矩阵按列主要顺序排列,如下所示:

最后,由于计算的矩阵是按行主要顺序计算的,因此通过在以下函数中设置 GL_TRUE 标志在着色器中传递矩阵时指定它。然后,openGL 知道它是行主要顺序,因为 openGL 本身使用列主要顺序。

那么,考虑到列主顺序,计算是如何完成的

产生正确的输出。我预计为了使计算成立,每个矩阵应首先转置以更改为列顺序,然后进行上述计算,最后再次转置以获得后行顺序矩阵,这也在此链接中讨论。然而,这样做产生了可怕的输出。我在这里缺少什么吗?

0 投票
1 回答
56 浏览

c - 如何从 CIE RGB 空间中提取 3d 模型

我有一个冗长的十六进制字符串数据,数据内容是 RGB,可以代表 XY Z。现在如何从 RGB 颜色空间中提取 3D 模型?OpenCV 有帮助吗?或者其他一些库。现在我可以想出一个主意。首先找到颜色的最小立方体。然后使用扫描线找出有用的点。然后将点组合到表面。有没有更成熟的方案?

0 投票
1 回答
4114 浏览

cmake - 使用 CMake 构建 Assimp

我想在我的 Qt 应用程序(编译器:MSVC2013)中使用 assimp 库(http://assimp.sourceforge.net/)。

我的问题是我不知道如何构建库。这是我尝试过的。

  1. 我下载了 assimp-3.1.1.zip 和 CMake。
  2. Ran CMake-gui
  3. 在“源代码在哪里”中选择 assimp-3.1.1.zip 的解压文件夹。
  4. 在“构建二进制文件的位置”中,我选择了一个名为“cmake binary/3.1.1”的新文件夹。
  5. 我选择了“配置”并选择了 Visual Studio 12 2013 Win64 和“使用默认本机编译器”。
  6. 我取消选中“BUILD_SHARED_LIBS”并选中“BUILD_STATIC_LIB”和“ENABLE_BOOST_WORKAROUND”
  7. 我点击“生成”。

一旦我用 Visual Studio 打开生成的“Assimp.sln”(我不确定它是否正确,因为我想在之后将它与 Qt 一起使用)并通过右键单击 -> 构建构建“ALL_BUILD”。这个可行,但现在出现了问题:如果我构建“安装”,我会收到以下错误:

谷歌搜索此错误后发现我必须以管理员身份运行我的程序(根据https://social.msdn.microsoft.com/Forums/vstudio/en-US/02d24b1e-65ff-4177-bdf2-0d1e0fb8cdf6/error -msb3073-and-my-build-exited-with-code-1)。

但这对我没有帮助。我仍然收到此错误。我希望你能在这里帮助我。提前致谢。

0 投票
3 回答
3286 浏览

c++ - gpu 蒙皮的矩阵计算

我正在尝试使用Assimp作为我的模型导入库在OpenGL中制作骨骼动画。

offsetMatrix对于骨骼变量,我到底需要什么?我需要乘以什么?

0 投票
1 回答
460 浏览

c# - Assimp.Mesh 中缺少 Assimp.Net GetTextureCoords

我在使用 c# + OpenTK + Assimp.net 的 VS2010 项目中遇到了一个非常奇怪的错误(最后两个包来自 NuGet,所以我想它们已更新到最新版本)

当我尝试使用以下方法迭代 UV 坐标的 vector3 时:

我收到以下错误:

错误 CS1061:“Assimp.Mesh”不包含“GetTextureCoords”的定义,并且找不到接受“Assimp.Mesh”类型的第一个参数的扩展方法“GetTextureCoords”(您是否缺少 using 指令或程序集引用? )

我不明白为什么!有人可以帮帮我吗?

正确引用了 AssimpNet(如果我评论 UV 部分,我可以正确加载和可视化任何 3D 模型)

在使用部分:

编辑:我还尝试更改“使用”的顺序......或删除其中一些以查看是否存在某种命名空间冲突但没有任何成功