android opengl texImage2D:内部格式和类型参数

android opengl texImage2D:内部格式和类型参数,android,opengl-es,Android,Opengl Es,在android中texImage2D() 我们有以下两个功能: void texImage2D (int target, int level, Bitmap bitmap, int border) void texImage2D (int target, int level, int internalformat,

在android中
texImage2D
() 我们有以下两个功能:

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。

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

第一个版本(没有内部格式参数的版本)通过
位图.colorType()
确定内部格式和类型


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

OpenGL中的
内部格式
用于指定每个像素在内存中应有的确切格式`type'指定传入数据(位图中)的格式

第一个版本(没有内部格式参数的版本)通过
位图.colorType()
确定内部格式和类型


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

谢谢BDL!顺便问一下,16位或32位纹理的优势是什么?如果你想进行HDR渲染或许多其他效果,你将需要它。对于“普通”颜色纹理,8位通常就足够了。谢谢BDL!顺便问一下,16位或32位纹理的优势是什么?如果你想进行HDR渲染或许多其他效果,你将需要它。对于“正常”颜色纹理,8位通常就足够了。