如何使用 OpenGL 在 ARCORE 中的单个 3D 对象中加载多个 2D 纹理
How to load Multiple 2D Texture in a single 3D Object in ARCORE Using OpenGL
这是在单个对象中加载单个纹理位置
Bitmap textureBitmap = BitmapFactory.decodeStream(
context.getAssets().open(diffuseTextureAssetName));
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
GLES20.glGenTextures(mTextures.length, mTextures, 0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextures[0]);
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);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, textureBitmap, 0);
GLES20.glGenerateMipmap(GLES20.GL_TEXTURE_2D);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
我需要使用 java 代码将多个图像纹理加载到单个 3D 对象中。
Github: https://github.com/google-ar/arcore-android-sdk/issues/113
纹理渲染涉及两件事 - 多纹理和多纹理。 Multi-texturing 基本上是同时应用多个纹理以产生最终输出。
我猜你指的是多个纹理,一个接一个地激活以渲染部分 3D 对象。看一下 this C++ answer 中建议的方法。
我所做的是通过他们使用的 materials 分隔面孔,使 material 和纹理处于活动状态 - 渲染所有面孔。对每组面孔重复相同的操作。
这是在单个对象中加载单个纹理位置
Bitmap textureBitmap = BitmapFactory.decodeStream(
context.getAssets().open(diffuseTextureAssetName));
GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
GLES20.glGenTextures(mTextures.length, mTextures, 0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, mTextures[0]);
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);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, textureBitmap, 0);
GLES20.glGenerateMipmap(GLES20.GL_TEXTURE_2D);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, 0);
我需要使用 java 代码将多个图像纹理加载到单个 3D 对象中。
Github: https://github.com/google-ar/arcore-android-sdk/issues/113
纹理渲染涉及两件事 - 多纹理和多纹理。 Multi-texturing 基本上是同时应用多个纹理以产生最终输出。
我猜你指的是多个纹理,一个接一个地激活以渲染部分 3D 对象。看一下 this C++ answer 中建议的方法。
我所做的是通过他们使用的 materials 分隔面孔,使 material 和纹理处于活动状态 - 渲染所有面孔。对每组面孔重复相同的操作。