Моя цель: - отобразить перекрывающуюся область с целым левым правым спутниковым или аэрофотоснимком
- rotate image using roll, pitch yaw angles
-image format is Tiff image
Сейчас я занимаюсь просмотром стереозвука OpengGL для получения стереоизображения с воздуха (левая, правая стереопара). Я отобразил свое левое правое изображение, используя следующий код:
glDrawBuffer (GL_BACK_LEFT);
LeftBuf = new unsigned char [LeftCol * LeftRow *3];
for (int i = 0; i < LeftRow; i++){
for (int j = 0; j< LeftCol; j++){
LeftBuf [(i*LeftCol + j)*3] = tiff.LnBuf [i*LeftCol + LeftCol-(j-1)];
LeftBuf [(i*LeftCol + j)*3+1] = tiff.LnBuf [i*LeftCol + LeftCol-(j-1)];
LeftBuf [(i*LeftCol + j)*3+2] = tiff.LnBuf [i*LeftCol + LeftCol-(j-1)];
}
}
glRasterPos2f(-1,-1);
glDrawPixels(LeftCol, LeftRow, GL_RGB, GL_UNSIGNED_BYTE, LeftBuf);
glDrawBuffer (GL_BACK_RIGHT);
RightBuf = new unsigned char [RightCol *RightRow *3];
for (int r = 0; r < RightRow; r++){
for (int c = 0; c< RightCol; c++){
RightBuf [(r*RightCol + c)*3] = tiff.RnBuf [r*RightCol + RightCol-(c-1)];
RightBuf [(r*RightCol + c)*3+1] = tiff.RnBuf [r*RightCol + RightCol-(c-1)];
RightBuf [(r*RightCol + c)*3+2] = tiff.RnBuf [r*RightCol + RightCol-(c-1)];
}
}
glRasterPos2f(-1,-0.45);
glDrawPixels(RightCol, RightRow, GL_RGB, GL_UNSIGNED_BYTE, RightBuf);
теперь мне нужно 3D повернуть мое правое изображение, используя следующую функцию Opengl: glRotatef (rightphoto.omega * 180 / PI, 1.0f, 0.0f, 0.0f); glRotatef (rightphoto.phi * 180 / PI, 0.0f, 1.0f, 0.0f); glRotatef (rightphoto.kappa * 180 / PI, 0.0f, 0.0f, 1.0f); но я не могу повернуть свое изображение.
Пожалуйста, помогите мне повернуть мое изображение !!!!! Также я хочу отображать перекрывающиеся слева целые изображения одной и той же части левого и правого изображений с трехмерным вращением. Я не знаю, как вычислить координату перекрывающихся областей целых левых и правых изображений. извините за мой плохой английский.





Пиксели, считываемые или записываемые с помощью glDrawPixels(), не преобразуются матрицей вида модели, что и изменяет glRotatef(). Это пиксели, примитив более низкого уровня, чем реальные модели.
Чтобы решить эту проблему, рассмотрите возможность рисования вашего контента, например, с помощью примитив с отображением текстуры, такой как четырехугольник.