android opengl texImage2D:internalformat和type参数

时间:2017-09-05 07:04:37

标签: android opengl-es

Android texImage2D中的

https://developer.android.com/reference/android/opengl/GLUtils.html) 我们有两个功能:

void texImage2D (int target, 
                 int level, 
                 Bitmap bitmap, 
                 int border)

void texImage2D (int target, 
                int level, 
                int internalformat, 
                Bitmap bitmap, 
                int type, 
                int border)

一个不需要内部格式类型,另一个需要它。第一个变体(不需要内部格式和类型)的缺点可能是什么?如果它们没有缺点,为什么其他变体甚至存在?请注意,我不知道internalformat和type的用途是什么,通常在我的OpenGL程序中,我总是使用rgba作为internalformat和type。

1 个答案:

答案 0 :(得分:2)

OpenGL中的internal_format用于指定每个像素在内存中应具有的确切格式。 `类型'指定传入数据的格式(在android中的位图)。

第一个版本(没有内部格式参数的版本)确定bitmap.colorType()的内部格式和类型。

第一版texImage2D没有真正的问题,但它限制了可能的内部格式。例如,它不可能创建浮点纹理,16位或32位纹理或整数纹理。您可以查看确定内部格式的getInternalFormat method,以查看支持的格式。如果您想要任何未返回的内部格式,则必须使用所需的确切内部格式调用texImage2D