Assimp无法加载PLY模型的顶点颜色
Assimp cannot load vertices color of PLY model
我在windows上使用OpenGL的assimp3.0。我尝试通过以下行加载和显示一个层模型:
Assimp::Importer importer;
const aiScene* scene = NULL;
scene = importer.ReadFile('filename', 0);
我用scene->mMeshes[0]->mVertices
建立顶点缓冲,用scene->mMeshes[0]->mColors
建立颜色缓冲然而,当我调试代码时,只有scene->mMeshes[0]->mColors[0]
得到了颜色,scene->mMeshes[0]->mColors[1]
和以下元素仍然是NULL下面是一个简短的例子,我写:
ply
format ascii 1.0
comment VCGLIB generated
element vertex 3
property float x
property float y
property float z
property uchar red
property uchar green
property uchar blue
property uchar alpha
element face 1
property list uchar int vertex_indices
end_header
0.0 0.0 0.0 219 227 248 255
1.0 0.0 0.0 220 230 212 255
2.0 0.0 2.0 160 122 221 255
3 0 1 2
我现在想知道这是否是由importer.ReadFile(pFile,pFlags)
的错误pFlags参数引起的。
谁能帮我找出是哪个部分出了问题?
我想我明白这个问题了。
你正在阅读这样的颜色
for (int i = 0; i < vertexCount; i++)
vertexColor = scene->mMeshes[0]->mColors[i];
然而,AssImp可以存储多个顶点颜色通道,所以你应该这样读。
for (int i = 0; i < vertexCount; i++)
vertexColor = scene->mMeshes[0]->mColors[0][i];
这将读取第0个顶点颜色通道的颜色
相关文章:
- 使用 OpenGL 4.5 更改所选顶点的颜色
- 如何在顶点着色器中使用VBO数据作为位置数据,在片段着色器中使用统一数据作为颜色数据
- GLSL 将颜色数据从片段着色器发送到顶点着色器似乎总是等于 0
- CGAL:加载.off文件后,如何访问顶点颜色
- 如何将每个顶点的颜色转换为时间或某些功能
- 每帧更改顶点的颜色 (OpenGL)
- 提升图initialize_vertex更改顶点颜色(访客)
- 未绘制每个顶点处的C++OpenGL颜色
- 在 HLSL 中获取顶点的颜色
- 如何在 Ogre3D 中检索模型顶点的运行时颜色
- 绘制具有不同颜色顶点的OpenGL颜色矩形
- 在breadth_first_search期间设置顶点的颜色
- 顶点颜色不能正常工作
- 顶点缓冲对象的颜色- DirectX vs OpenGL
- 如何在顶点缓冲区中以另一种颜色绘制顶点
- glVertexAttribPointer语言 - 顶点法线或颜色
- Assimp无法加载PLY模型的顶点颜色
- 当光照启用时,DirectX 9顶点颜色会消失
- Boost图形库-顶点颜色和graphviz输出的最小示例
- Opengl顶点颜色插值