能否将简单的3D模型(例如在3DS MAX中)创建并导入到Android中?
这是我目前的进展:
int vertices[] = context.getResources().getIntArray(R.array.vertices);
gl.glDrawElements(GL10.GL_TRIANGLES, 212*6, GL10.GL_UNSIGNED_SHORT, mIndexBuffer);
- 您可以在OFF文件的顶部找到该数字(在此示例中为212)在此处您可以找到我的项目页面,该页面使用了这种解决方案: Github项目 > vsiogap3d
你可以将它导出为 ASE 格式。 从 ASE 格式,你可以手动或编程方式将其转换为你的代码。 在 Android 中,你需要使用 vertex 表示顶点数组,使用 faces 表示索引。 别忘了你还需要设置
gl.glFrontFace(GL10.GL_CCW);
因为3ds max默认是逆时针方向。
你尝试过为安卓开发的min3d吗?它支持3ds max、obj和md2模型。
关于Android方面我不确定,但一般而言,您需要在3DS Max中编写脚本,手动从模型中书写所需的格式。
至于是否存在适用于Android的脚本,我不知道。
glDisable(GL_TEXTURE_2D);
glEnable(GL_LIGHTING);
glEnable(GL_NORMALIZE);
GLfloat Material_1[] = { 0.498039f, 0.498039f, 0.498039f, 1.000000f };
glBegin(GL_TRIANGLES);
glMaterialfv(GL_FRONT,GL_DIFFUSE,Material_1
glNormal3d(0.452267,0.000000,0.891883);
glVertex3d(5.108326,1.737655,2.650969);
glVertex3d(9.124107,-0.002484,0.614596);
glVertex3d(9.124107,4.039649,0.614596);
glEnd();
Point3 Object1_vertex[] = {
{5.108326,1.737655,2.650969},
{9.124107,-0.002484,0.614596},
{9.124107,4.039649,0.614596}};
long Object1_face[] = {
3,0,1,2,
3,3,4,5
3,6,3,5};