Assimp面是指数
Assimp faces indices
我已经使用Assimp一段时间了,现在我试图加载一个。obj文件。它加载得很完美,但我想在加载后操纵面部数据。
基本上我在简单立方体中有这个。obj文件(完整文件- http://pastebin.com/ha3VkZPM)
# 8 Vertices
v -1.0 -0.003248 1.0
v 1.0 -0.003248 1.0
v -1.0 1.996752 1.0
v 1.0 1.996752 1.0
v 1.0 -0.003248 -1.0
v -1.0 -0.003248 -1.0
v 1.0 1.996752 -1.0
v -1.0 1.996752 -1.0
# 36 Texture Coordinates
vt 1.0 0.0
vt 0.0 0.0
...
# 36 Vertex Normals
vn 0.0 0.0 1.0
vn 0.0 0.0 1.0
...
f 1/1/1 2/2/2 3/3/3
f 2/4/4 4/5/5 3/6/6
f 5/7/7 6/8/8 7/9/9
f 6/10/10 8/11/11 7/12/12
f 3/13/13 6/14/14 1/15/15
f 3/16/16 8/17/17 6/18/18
f 7/19/19 2/20/20 5/21/21
f 7/22/22 4/23/23 2/24/24
f 3/25/25 7/26/26 8/27/27
f 3/28/28 4/29/29 7/30/30
f 2/31/31 6/32/32 5/33/33
f 2/34/34 1/35/35 6/36/36
据我所知,face entry是V/T/N(顶点指数、顶点指数和法线指数)。
f 1/1/1 2/2/2 3/3/3
表示顶点(1,2,3)的三角形,对吧?
从这个面条目-我只想提取顶点索引。
现在进入Assimp -我现在有这个-其中Indices
是stl::向量
for (uint32 i = 0; i < pMesh->mNumFaces; i++) {
const aiFace& Face = pMesh->mFaces[i];
if(Face.mNumIndices == 3) {
Indices.push_back(Face.mIndices[0]);
Indices.push_back(Face.mIndices[1]);
Indices.push_back(Face.mIndices[2]);
}
这是pMesh->mNumFace = 12
的值-所以这是正确的。
(for 1st face)
Face.mindices[0] should probably point to 1/1/1
Face.mindices[1] should probably point to 2/2/2
Face.mindices[2] should probably point to 3/3/3
现在我如何提取顶点索引?当我检查Face.mIndices[0] its index as 0,1,2...respectively.
的值时,为什么会这样?Assimp面都有索引(0,1,2)
我搜索了谷歌和StackOverflow -这里有一些类似的问题,但我似乎不能弄清楚。
https://stackoverflow.com/questions/32788756/how-to-keep-vertex-order-from-obj-file-using-assimp-libraryAssimp和D3D模型加载:网格不显示在D3D
加载索引不正确
如果你需要更多的信息,请告诉我。谢谢。
OpenGL和DirectX使用与obj格式稍微不同的索引顶点数据的方式。在文件格式中,可以为位置/文本坐标等使用不同的索引,而图形卡需要为整个顶点使用一个单一的索引缓冲区。
也就是说:simp传递obj格式并将其转换为单索引缓冲区表示。这基本上意味着,当indexbuffer指向这个新的顶点列表时,每个唯一的顶点-文本-法线组合将给出一个顶点。
据我所知,不能使用Assimp访问原始索引
相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- "assimp/config.h"找不到,但它在文件夹中
- 如何从组合指数中找到仓位
- 使用 assimp 加载模型 - 不需要提升?
- 正在读取 obj 文件!(指数)
- C++:快速模块化指数
- 在C++不使用 POW 的情况下处理负指数
- 比较向量中的元素时所花费的时间呈指数级增长
- 如何将包含指数的 QString 转换为C++中的双倍?
- 将数字提高到一个巨大的指数
- Assimp 库错误:获取打包成员的地址
- 使用 assimp 获取纹理比例
- Assimp - 如何使用任何文件格式导入带有纹理的网格?
- 负指数是否必然意味着未定义的行为
- 整数的指数速记
- 无法让 Assimp 在 Windows " linker problem" 上运行?(与2019年相比)
- 在矩阵逆变器上工作,由于某种原因,我的指数循环不起作用
- 自定义提升多精度指数中的位数
- Assimp错误地进口了OBJ指数
- Assimp面是指数