关于用opengl es 渲染3ds文件的有关问题
关于用opengl es 渲染3ds文件的问题
我用的是一个别人的3ds加载代码,已经把三角形法向量什么的都加进来了
但是他存储mesh的结构是这样的
VERTTYPE类型是一个float的别名
struct S3DSMesh {
char pszName[20]; /*!< Name of mesh */
char pszMaterial[20]; /*!< Name of material used for this mesh */
int nIdxMaterial; /*!< Index of material used in this mesh */
VECTOR3 fCentre; /*!< Mesh centre */
VECTOR3 fMinimum; /*!< Bounding box's lower front corner */
VECTOR3 fMaximum; /*!< Bounding box's upper back corner */
int nNumVertex; /*!< Number of vertices in the mesh */
int nNumFaces; /*!< Number of triangles in the mesh */
VERTTYPE *pVertex; /*!< List of vertices (x0, y0, z0, x1, y1, z1, x2, etc...) */
unsigned short *pFaces; /*!< List of triangles indices */
VERTTYPE *pNormals; /*!< List of vertex normals (Nx0, Ny0, Nz0, Nx1, Ny1, Nz1, Nx2, etc...) */
VERTTYPE *pUV; /*!< List of UV coordinate (u0, v0, u1, v1, u2, etc...) */
short NodeID;
};
如果我直接把pVertex里的顶点信息利用glVertexPointer输出的话,是个错误的形状,不知道应该怎样利用,才能把我的模型画出来(只要mesh),像各位大大请教啊!小弟搞都被 东西烦了好几天了。实在是头大。。
------解决方案--------------------
我有一个读取3ds文件的源程序,现在放到我的资源上了,楼主可以去下载看看
------解决方案--------------------
可能也要移动下位置? 你让导出3ds的人在导出的时候把模型放在正中间。
另外可能模型的大小太小或者太大,可以根据模型的
VECTOR3 fCentre; /*! < Mesh centre */
VECTOR3 fMinimum; /*! < Bounding box's lower front corner */
VECTOR3 fMaximum;
看看物体的位置是否在摄像机前,大小是否太小或太大。
glOrtho也可能参数太小。
------解决方案--------------------
obj3dsLoader.pMesh->nNumFaces * 4??
我用的是一个别人的3ds加载代码,已经把三角形法向量什么的都加进来了
但是他存储mesh的结构是这样的
VERTTYPE类型是一个float的别名
struct S3DSMesh {
char pszName[20]; /*!< Name of mesh */
char pszMaterial[20]; /*!< Name of material used for this mesh */
int nIdxMaterial; /*!< Index of material used in this mesh */
VECTOR3 fCentre; /*!< Mesh centre */
VECTOR3 fMinimum; /*!< Bounding box's lower front corner */
VECTOR3 fMaximum; /*!< Bounding box's upper back corner */
int nNumVertex; /*!< Number of vertices in the mesh */
int nNumFaces; /*!< Number of triangles in the mesh */
VERTTYPE *pVertex; /*!< List of vertices (x0, y0, z0, x1, y1, z1, x2, etc...) */
unsigned short *pFaces; /*!< List of triangles indices */
VERTTYPE *pNormals; /*!< List of vertex normals (Nx0, Ny0, Nz0, Nx1, Ny1, Nz1, Nx2, etc...) */
VERTTYPE *pUV; /*!< List of UV coordinate (u0, v0, u1, v1, u2, etc...) */
short NodeID;
};
如果我直接把pVertex里的顶点信息利用glVertexPointer输出的话,是个错误的形状,不知道应该怎样利用,才能把我的模型画出来(只要mesh),像各位大大请教啊!小弟搞都被 东西烦了好几天了。实在是头大。。
------解决方案--------------------
我有一个读取3ds文件的源程序,现在放到我的资源上了,楼主可以去下载看看
------解决方案--------------------
可能也要移动下位置? 你让导出3ds的人在导出的时候把模型放在正中间。
另外可能模型的大小太小或者太大,可以根据模型的
VECTOR3 fCentre; /*! < Mesh centre */
VECTOR3 fMinimum; /*! < Bounding box's lower front corner */
VECTOR3 fMaximum;
看看物体的位置是否在摄像机前,大小是否太小或太大。
glOrtho也可能参数太小。
------解决方案--------------------
obj3dsLoader.pMesh->nNumFaces * 4??