【发布时间】:2014-07-07 23:58:53
【问题描述】:
我有一个缓冲区,其中包含一个“原始”BGRA 纹理,每种颜色一个字节。 线条顺序颠倒(纹理倒置)。
BGRA 缓冲区全为绿色 (0, 255, 0, 255)。
我需要将其转换为 RGBA 并翻转纹理线。 我试过这个:
// bgra is an unsigned char*
int width = 1366;
int height = 768;
unsigned char* rgba = new unsigned char[width * height * 4];
for(int y = height - 1; y >= 0; y--)
{
for(int x = 0; x < width; x++)
{
rgba[(x * y * 4)] = bgra[(x * y * 4) + 2];
rgba[(x * y * 4) + 1] = bgra[(x * y * 4) + 1];
rgba[(x * y * 4) + 2] = bgra[(x * y * 4)];
rgba[(x * y * 4) + 3] = bgra[(x * y * 4) + 3];
}
}
但是渲染时的结果不是全绿屏,而是这样:
我在这里可能做错了什么?
【问题讨论】:
标签: c++ graphics cuda rgba optix