如何在使用ARCORE将3d.obj放入曲面后更改texture.png?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在使用ARCORE将3d.obj放入曲面后更改texture.png?相关的知识,希望对你有一定的参考价值。

我有一种3d.obj文件的四种类型的texture.png。如何在3d.obj放置在表面后更改texture.png,就像ARCORE的换色功能一样?

有谁有想法吗?

答案

您可以更改对象的纹理。假设您正在查看hello_ar_java示例,可以向ObjectRenderer添加一个方法:

  public void setTextureOnGLThread(Bitmap textureBitmap) {
    // Bind the texture name already allocated.
    GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
    // Set the filtering for handling different sizes to render.
    GLES20.glTexParameteri(
            GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR_MIPMAP_LINEAR);
    GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR);

    // Copy the bitmap contents into the texture buffer.    
    GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, textureBitmap, 0);

    // Generate the mip map for the different sizes.
    GLES20.glGenerateMipmap(GLES20.GL_TEXTURE_2D);

    // Unbind the texture.
    GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
  }

你需要从GL线程中调用它,例如从onDrawFrame()

以上是关于如何在使用ARCORE将3d.obj放入曲面后更改texture.png?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Unity 使用 ARCore 录制视频?

ARCore - 如何将特定对象位置添加到ARAnchor?

处理曲面向量时如何正确使用 SDL_FreeSurface

在 Blend 2015 中使用 3D OBJ 文件

如何将 16 位深度图像保存到 Arcore(java)中的文件

ARCore – 如何在没有任何特征点的情况下在墙壁等表面上放置/创建对象?