gpt4 book ai didi

android - 在 OpenGL ES 2.0 上使用字节数组的 GL_LUMINANCE

转载 作者:行者123 更新时间:2023-11-30 03:40:58 27 4
gpt4 key购买 nike

我正在结合 libvpx(WebM 解码库)和 OpenGL ES 2.0 着色器(适用于 Android)获得的 yuv 数据进行编程。

这些是相同的字节数组,但在这种情况下绘制不正确。

成功:

// ex) unsigned char *p = yuv.y, yuv.u or yuv.v;
for(int dy = 0; dy < hh; dy++){
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, dy, ww, 1, GL_LUMINANCE, GL_UNSIGNED_BYTE, p);
p += ww;
}

失败:

glTexSubImage2D(GL_TEXTURE_2D, 0,  0, 0, ww, hh, GL_LUMINANCE, GL_UNSIGNED_BYTE, p);

因为我对OpenGL一窍不通,所以不明白这个道理。我认为如果为每一行调用 glTexSubImage2D,性能会变差。是不是不能再改进了?

最佳答案

我最好的猜测是您传递给 glTexSubImage2D 的数据没有正确对齐。

来自glTexSubImage2D Reference page对于 OpenGL ES 2.0:

Storage parameter GL_UNPACK_ALIGNMENT, set by glPixelStorei, affects the way that data is read out of client memory. See glPixelStorei for a description.

一次从您的数据中传递一行可能隐藏了每行未正确对齐的事实,因此调用成功。

关于android - 在 OpenGL ES 2.0 上使用字节数组的 GL_LUMINANCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com