VertexAttribute(
int usage, int numComponents, java.lang.String alias)
:
VertexAttributes.Usage
:内部类,常用,主要是其中集合了几个常用的预定义的名称,其实就是你要用它储存的数据类型,例如是位置型、颜色型等。
equals (Object obj):
不常用,Object的方法,这里不赘述了。
get(int index)
:不常用,获取当前索引号,这个我们在下面会讲到。
findByUsage(int usage)
:返回使用到Usage,中的第一个Usage类型。
getOffset(int usage)
:返回的好像是一个位置,这个土豆不是很清楚。不过,如果Mesh使用了顶点缓存(vertex buffer) ,那么这个获取的就是指定绘制的起端。
size()
:返回的是一个int类型,找到顶点数据的个数。
ColorPacked
: 颜色数据类型.
Normal
:法线数据类型。(这个土豆也没用过,好像是翻译为“法线”)。
Position
:坐标数据类型,一般是定义顶点坐标,基本使用数组,常用。
TextureCoordinates
:纹理绑定类型,通俗讲就是使用图片,绑定顶点。
Mesh(boolean isStatic, int maxVertices, int maxIndices, VertexAttributes attributes)
:
bind()
:在所有索引数给定的前提下,可以将VertexArray
/VertexBufferObject
and IndexBufferObject
整合的方法。
calculateBoundingBox()
:根据mesh中给定的顶点创建一个新的BoundingBox实例。
clearAllMeshes(Application app)
:清除缓存。
copy(boolean isStatic)
:复制这个图元。
create(boolean isStatic, Mesh[] meshes)
:由参数内提供的mesh,构建一个新的mesh图元。
getIndices(short[] indices)
:获取当前索引数,得到的是一个数组。
render(int primitiveType, int offset, int count)
: 其中primitiveType指定绘制的形状,offset如果Mesh 使用了顶点缓存(vertex buffer) ,那么这个数就是起点,最后一个参数是指定索引的个数。
setIndices(short[] indices)
:设置mesh的索引数。
setVertices(float[] vertices)
:设置mesh的顶点。
package com.example.groupactiontest; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.Input.Peripheral; import com.badlogic.gdx.graphics.GL10; import com.badlogic.gdx.graphics.Mesh; import com.badlogic.gdx.graphics.VertexAttribute; import com.badlogic.gdx.graphics.VertexAttributes; import com.badlogic.gdx.graphics.VertexAttributes.Usage; public class MyGame implements ApplicationListener { Mesh mesh; @Override public void create() { /** * 一个mesh可能保存一个对象的位置、颜色、纹理等方面的信息 * 这4个参数分别为:是否静态、最大顶点数、最大索引数、Vertex属性 */ mesh = new Mesh(true, 3, 3, new VertexAttribute(Usage.Position, 3, "position")); mesh.setVertices(new float[]{ -0.5f,-0.5f,0,//第0个定点的坐标 0.5f,-0.5f,0,//第1个顶点的坐标 0,0.5f,0//第2个顶点的坐标 }); mesh.setIndices(new short[]{//设置索引的顺序,这里制定了从第0个顶点到1、2 0,1,2 }); } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void pause() { // TODO Auto-generated method stub } @Override public void render() { Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); mesh.render(GL10.GL_TRIANGLES,0,3); } @Override public void resize(int arg0, int arg1) { // TODO Auto-generated method stub } @Override public void resume() { // TODO Auto-generated method stub } }