小编Chi*_*hiu的帖子

GLSL - 如何访问纹理的像素数据是GLSL着色器?

我想要做的是,在OpenGL着色器中访问纹理的像素数据.之后,将它们的红色组件进行比较,以便我可以获得具有最大红色组件的像素的坐标.我可以用目标C,CPU处理能力来做到这一点.代码如下所示.

- (void)processNewPixelBuffer:(CVPixelBufferRef)pixelBuffer
{
    short maxR = 0;
    NSInteger x = -1, y = -1;

    CVPixelBufferLockBaseAddress(pixelBuffer, 0);    
    height = CVPixelBufferGetHeight(pixelBuffer);
    width = CVPixelBufferGetWidth(pixelBuffer);

    size_t bytesPerRow = CVPixelBufferGetBytesPerRow(pixelBuffer);
    uint8_t *src_buff = CVPixelBufferGetBaseAddress(pixelBuffer);

    short** rawData = malloc(sizeof(short*) * height);
    for (int i = 0; i < height; i++){
        rawData[i] = malloc((sizeof(short) * width));
        for (int j = 0; j < width; j++)
            rawData[i][j] = (short)src_buff[(i + width * j) * 4];
    }

    for (int j = 0; j < height; j++)
    for …
Run Code Online (Sandbox Code Playgroud)

opengl-es glsl objective-c gpuimage

1
推荐指数
1
解决办法
6065
查看次数

标签 统计

glsl ×1

gpuimage ×1

objective-c ×1

opengl-es ×1