Добрый день! Изучаю OpenGL и возникла необходимость получить информацию о пикселе из картинки, а именно значение R * G * B.
Загрузка картинки происходит посредством stbi:
int width, height, numComponents;
unsigned char * data = stbi_load("./resources/models/terrain/heightmap.png", &width, &height, &numComponents, STBI_rgb);
if(data == NULL)
std::cerr << "Unable to load texture: hightmap.png" << std::endl;
После загрузки в data информация хранится в формате:
Предположил, что пиксели в data хранятся следующим образом: r1g1b1r2g2b2 .. и написал простенькую функцию:
int Terrain::GetRGB(int x, int y, unsigned char * image, int width, int height)
{
int rgb;
rgb = image[3 * x * width + 3 * y * height] +
image[3 * x * width + 3 * y * height + 1] +
image[3 * x * width + 3 * y * height + 2];
return rgb;
}
Но функция вылетает при значении:
Может кто-то работал с этим форматом и знает как его использовать, для того чтобы получить пиксель? Буду признателен