В общем есть некое изображение карты.
Я программно рисую вот такую хрень:
Как мне ее положить на карту, с видимостью перспективы. Никогда не работал с 3D. Даже не знаю как такое реализуется.
Перспективное изображение вычисляется так
x_screen = x * focal / z;
y_screen = y * focal / z;
Где (x, y, z) - 3D координаты, и focal - параметр 3D камеры, чем меньше - тем больше эффект перспективы и угол зрения. Поскольку реальных 3D данных у Вас не видно - подделайте их. Проходите картинку пиксель за пикселем, и заносите цвет пикселя в новую картинку по пересчитанным x, y. Например
QImage src, dst;
...
// create and fill images
...
int i, j, w = src.width(), h = src.height();
float cntrX = w * 0.5f;
float cntrY = h * 0.5f;
float focal = w * 0.75f;
float z = w;
for (j = 0; j < h; ++j) {
int y = (int)((j - cntrY) * focal / z + 0.5f) + cntrY;
if (y < 0 || y >= h) continue;
for (i = 0; i < w; ++i) {
int x = (int)((i - cntrX) * focal / z + 0.5f) + cntrX;
if (x < 0 || x >= w) continue;
dst.setPixel(x, y, src.pixel(i, j));
}
}
Это пока та же картинка смаштабленная относительно центра. Теперь крутите что-нибудь с z, например
z = w + h - j (в цикле)
И получите что-то типа титров в "Star Wars"
Ну и картинка нужна побольше, на той хрени что у Вас не разгонишься