android opengl es添加纹理,绘制立方体纹理,立方体使用不同纹理

这篇博客介绍了如何在Android环境下使用OpenGL ES为立方体的六个面添加不同的纹理。首先,开启纹理功能,然后进行纹理创建、绑定、参数设置和生成。关键在于使用`glDrawElements`按指定索引绘制,实现每个面应用独立的纹理。作者提供了纹理初始化、在`onDrawFrame`中绘制不同纹理面的方法,并给出了索引数组的示例。博客附带了一个演示此功能的demo下载链接。
摘要由CSDN通过智能技术生成

           纹理就是给物体表面添加图片,色彩之类,可以认为是上色。

           基本步骤:

  1. 打开纹理开关
  2. 创建纹理
  3. 绑定纹理
  4. 设置纹理参数
  5. 生成纹理
  6. 设置纹理顶点数据
具体看如下代码:

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {

    // 告诉系统对透视进行修正
    gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
    // 黑色背景
    gl.glClearColor(0, 0, 0, 0);
    // 启用阴影平滑
    gl.glShadeModel(GL10.GL_SMOOTH);
    // 清除深度缓存
    gl.glClearDepthf(one);
    // 启用深度测试
    gl.glEnable(GL10.GL_DEPTH_TEST);
    // 所做深度测试的类型
    gl.glDepthFunc(GL10.GL_LEQUAL);

    
    gl.glEnable(GL10.GL_TEXTURE_2D);
    // 创建纹理
    gl.glGenTextures(1, textureids, 0);
    // 绑定要使用的纹理
    gl.glBindTexture(GL10.GL_TEXTURE_2D, textureids[0]);
    // 生成纹理
    GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
    // 线性滤波
    gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
            GL10.GL_LINEAR);
    gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
            GL10.GL_LINEAR);
}

在surfacecreated中启用纹理设置,创建纹理,生成纹理,设置过滤属性


@Override
public void onDrawFrame(GL10 gl) {
    // 清除深度和颜色缓存
    gl.glClear(GL10.GL_DEPTH_BUFFER_BIT | GL10.GL_COLOR_BUFFER_BIT);
    gl.glLoadIdentity();
    gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    //启用纹理
    gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

    gl.glVertexPointer(3, GL10.GL_FIXED, 0, vertexBuffer);
    //设置纹理数组
    gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, texBuffer); // 

    //向z轴里移入6.0f
    gl.glTranslatef(0.0f, 0.0f, -6.0f);
    // 设置3个方向的旋转
    gl.glRotatef(xrot, one, 0.0f, 0.0f);
    gl.glRotatef(yrot, 0.0f, one, 0.0f);
    gl.glRotatef(zrot, 0.0f, 0.0f, one);

    // 绘制正方体6个面,这时每个面都会画好纹理
    for (
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值