我已经绘制了一个球体,并且能够使用android应用程序的java和opengl库旋转它。这部分工作正常。现在,我正在尝试将球形图像构造到球体上。图像覆盖了整个球体,但随后大陆被压缩并显示为单线。要使图像正确地贴在球体上,我该怎么做?
为了实现纹理,我使用以下代码
gl.glEnable(GL10.GL_TEXTURE_2D);
texturesBuffer = IntBuffer.allocate(1);
gl.glGenTextures(1, texturesBuffer);
Bitmap texture = SphereTexture.getTexture(mContext,R.drawable.earth);
gl.glBindTexture(GL10.GL_TEXTURE_2D, texturesBuffer.get(0));
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_NEAREST);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, texture, 0);
texture.recycle();
public static Bitmap getTexture(Context context, int resourceId) {
Bitmap bitmap = null;
try {
bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId);
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), yFlipMatrix, false);
}
finally {
if (bitmap != null) {
bitmap.recycle();
}
}
}
最佳答案
您可以通过将行两边的颜色与另一边的颜色进行XOR运算,以像素为单位。
Nageswara Rao V