CSV file
我正在尝试从包含预先计算的纹理的a 中读取浮点数,将其存储在 1 维数组中,然后将读取的数据放入 2 维纹理中。
我需要确保以下代码可以做到这一点,因为我在访问数据时遇到问题,而且我无法弄清楚错误出在哪里:
// Allocate memory
float * image = new float [width * height * 3 ];
for( int i = 0; i < height; i++)
{
for( int j = 0; j < width-1; j++)
{
fscanf( fDataFile, "%f,", &fData );
image[ 4 * i * j + 0 ] = fData;
image[ 4 * i * j + 1 ] = fData;
image[ 4 * i * j + 2 ] = fData;
}
fscanf( fDataFile, "%f", &fData );
image[ 4 * i * width-1 + 0 ] = fData;
image[ 4 * i * width-1 + 1 ] = fData;
image[ 4 * i * width-1 + 2 ] = fData;
}
这里应该没有问题,但困扰我的是以下几点:
// create the texture
glGenTextures(1, &texHandle);
glBindTexture(GL_TEXTURE_2D, texHandle);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_FLOAT, &image[0]);
只给出glTexImage2D
指向我的一维数组的指针可以吗?
数组的大小是宽*高*3,纹理的格式应该是宽*高,有 3 个通道……所以我猜大小应该没问题?!我的程序仍然无法按预期工作,这是错误的一个潜在来源。