我正在制作一个Android应用程序,以添加像标题这样的行,例如:
(这是一些彩色像素的线,已经放大了)
在此的左上方:
我不知道是否可以使用OpenGL在纹理上添加一些像素。或者我们必须将其放入位图,将其加载到纹理中,然后将其与主纹理组合。
要绘制一行像素,最好的方法是从它们创建一个纹理,然后像其他任何纹理一样绘制它们。根据您的实际用例,至少有两种方法:
如果您始终要在现有纹理上并且相对于原始纹理内容在同一位置渲染该行像素,则可以使用修改该纹理glTexSubImage2D()
。假设您有一个字节数组rowBytes
,其中包含nPixels
要添加的像素行的RGB值。绑定现有纹理,然后调用:
GLES20.glTexSubImage2D(GLES20.GL_TEXTURE_2D, 0, 0, 0, nPixels, 1,
GLES20.G_RBB, GLES20.GL_UNSIGNED_BYTE,
ByteBuffer.wrap(rowBytes));
创建该行一个新的纹理,用你使用任何其它质地的标准要求(glGenTextures
,glBindTexture
,glTexImage2D
)。对于仅一行像素,将高度指定为1。然后以与现有纹理相同的方式渲染纹理,通常是通过为要覆盖的区域渲染一个纹理四边形。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句