libGDX中vertex()方法的问题

时间:2016-12-24 09:24:56

标签: java opengl libgdx

我在libGDX框架内工作,我正在尝试使用VertexInfo对象和MeshPartBuilder接口中的vertex()方法绘制一个简单的三角形。下面的代码在create()方法中并且编译得很好但不会像我期望的那样显示三角形。如果我取消注释(// meshPart.triangle(v1,v2,v3);)行它确实有效并显示一个三角形。我找不到使用此方法的任何示例。我发现在MeshPartBuilder.java源代码中它显示“使用{@link #getAttributes}来检查哪些值可用。”

我试过这个,我得到的结果是

[(a_position, 1, 3, 0) (a_normal, 8, 3, 12)] 

我不确定如何处理该信息以及它如何应用于使用vertex()方法。

int attr = VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal;
ModelBuilder modelBuilder2 = new ModelBuilder();
modelBuilder2.begin();
MeshPartBuilder meshPart = modelBuilder2.part("triangle", GL20.GL_TRIANGLES, attr, new Material( ColorAttribute.createDiffuse(Color.CYAN)) );

VertexInfo v1 = new VertexInfo().setPos(0, 0, 0).setNor(0, 0, 1).setCol(Color.CYAN).setUV(0.5f, 0.0f);
VertexInfo v2 = new VertexInfo().setPos(5, 0, 0).setNor(0, 0, 1).setCol(Color.CYAN).setUV(0.0f, 0.0f);
VertexInfo v3 = new VertexInfo().setPos(5, 5, 0).setNor(0, 0, 1).setCol(Color.CYAN).setUV(0.0f, 0.5f);
meshPart.vertex(v1); meshPart.vertex(v2); meshPart.vertex(v3);

// meshPart.triangle(v1, v2, v3);

model2 = modelBuilder2.end();
instance2 = new ModelInstance(model2);

如果有更多信息有用,请告诉我。

0 个答案:

没有答案