【发布时间】:2014-04-27 22:32:02
【问题描述】:
我使用 Blender 和 .obj 和 .mtl 为 android OpenGL ES 2.0 导出文件
下图描述了我想用顶点和面绘制的内容..
ObjParse obje = new ObjParse(context,R.raw.sample_obj,R.raw.sample_mtl);
float[] koordinates = obje.getVertexKoordinates();
byte[] indicies = obje.getIndicies();
float[] colors = obje.getColors();
这段代码给我带来了一些用于绘图的数组数据。
我制作了FLoatBuffer 和ByteBuffer 这个数组..
GLES20.glVertexAttribPointer(position, 3, GLES20.GL_FLOAT, false, stride,floatBufKoor);
GLES20.glEnableVertexAttribArray(position);
GLES20.glVertexAttribPointer(color, 4, GLES20.GL_FLOAT, false, stride, floatBufColors);
GLES20.glEnableVertexAttribArray(color);
GLES20.glDrawElements(GLES20.GL_TRIANGLES,cizilecek,GLES20.GL_UNSIGNED_BYTE,byteBufIndicies);
最后我得到了渐变色,但我想要每个面的纯色.. 我该怎么做?
编辑:
当我编译应用程序时,我得到了这个截图:
【问题讨论】:
-
你的截图和这个问题有什么关系?那些是平坦的阴影,几乎正是你所说的你想要的。 .obj 格式也允许您在每个顶点上拥有离散的颜色。
v3可以在所有这些形状之间共享,但它会在 1 个位置有 3 种不同的颜色,这可能是您没有正确解析文件。 -
这一切都取决于您使用的着色器,如果您使用照明。关于渐变,你是什么意思?你能分享一下你得到的结果的截图吗?
-
@AndonM.Coleman 解析
.obj文件我得到了一个由.mtl文件生成的浮点数,只有无阴影颜色信息。我如何解析单个面色? -
@MaurizioBenedetti 我编辑并添加了截图到问题
标签: android opengl-es opengl-es-2.0