纹理帖图重要的三步

首先推荐几篇文章关于OPENGLES的文章
http://www.zeuscmd.com/tutorials/opengles/17-TextureMapping.php
http://lanselixiang.com/
http://yueguc.javaeye.com/blog/779533

其实最重要的是3步

 

1.定义点的3维坐标, 下面4个向量就定义了3维空间里的4个点,就是一个平面

-1.0f, -1.0f, 1.0f, //v0
1.0f, -1.0f, 1.0f, //v1
-1.0f, 1.0f, 1.0f, //v2
1.0f, 1.0f, 1.0f, //v3

2.定义贴图材质和坐标的映射, 就是图的4个角怎么对到上面的平面上,就是怎么贴
0.0f, 0.0f, //图的左下对应 v0点, 这里的只是表示4个角,不代表图的长度
0.0f, 1.0f, // 图的右下对应 v1
1.0f, 0.0f,
1.0f, 1.0f,

3上面已经把一个图和3维中的一个面做好了映射,下面就是画了。
opengl es里面贴图时只支持三角形的画法, 所以你要定义怎么画三角形的索引,就是上面的1里面的点画的顺序的数组
0,1,3, //画v0, v1, v3表示的三角形
0,3,2

最后画的代码:

gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]); //绑定已经加载的材质
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); //设置3维点
gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer); //设置材质2维到3维的映射
gl.glDrawElements(GL10.GL_TRIANGLES, indices.length, GL10.GL_UNSIGNED_BYTE, indexBuffer);//根据3里面的索引来画贴好图的三角形

最后的效果:



注意这里的贴图顺序问题

triangle_strip_square
posted @ 2010-11-22 18:46  IT圈儿  阅读(355)  评论(0)    收藏  举报