java pixelformat,在金属中初始化MTLPixelFormatR32Float的纹理

我有一个缓冲区初始化单通道浮点图像,我需要进入浮点格式纹理(MTLPixelFormatR32Float) . 我尝试使用该格式创建纹理并执行以下操作:

float *rawData = (float*)malloc(sizeof(float) * img.cols * img.rows);

for(int i = 0; i < img.rows; i++){

for(int j = 0; j < img.cols; j++){

rawData[i * img.cols + j] = img.at(i, j);

}

}

MTLTextureDescriptor *textureDescriptor = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:MTLPixelFormatR32Float

width:img.cols

height:img.rows

mipmapped:NO];

[texture replaceRegion:region mipmapLevel:0 withBytes:&rawData bytesPerRow:bytesPerRow];

其中 rawData 是具有必要浮点数据的缓冲区 . 这不起作用,我在 [texture replaceRegion...] 行上收到EXC_BAD_ACCESS错误 . 我也尝试过MTKTextureLoader,它也返回nil而不是纹理 .

帮助将不胜感激 . 如果有人知道如何使用自定义浮点数据初始化MTLPixelFormatR32Float纹理以进行数据并行计算,我将非常感激 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值