Qt 2D Game Engine SDXM Mode 7 3D implementation Update

Qt 3D Mode 7 implementation
Qt 3D Mode 7 implementation

Oh yeah. It’s on. I can’t seem to get the perspective of the mapped objects correct, as it should converge into the vanishing point, but I observed Super Nintendo’s own Mode 7 and they never really pushed it so that it was all mathematically correct anyway. I watched Super Mario Kart and F-Zero very closely. But it’s good. Now I know for sure I can make a racing game or have a really nice looking gimmicky 3D background. It’s on. For sure.

========================================

SDXM Mode 7 Update
SDXM Mode 7 Update

Woah-hey, gang! Check this out. I’ve figured out how to do this wannabe SNES Mode 7 thing a little easier. Still pure Qt/c++ using just QTransform and QPainter, no DirectX and no OpenGL or other third party 3D libraries. I’ve been able to map the coordinates correctly and now the thing rotates around the correct point in the desired map. The only problem is that you have to limit your texture buffer size. This map of Vancouver from NASA is stored in memory at 3000 x 3000 pixels. You don’t want to be calling that from paintEvent() or it’ll blow up your hard drive and graphics card. So prebuffer your textures. Also, I’ve noticed that if you scale the texture via QPainter, it seems to process faster because it needs to scan less pixels (I’m assuming). The problem is your output will be pixelated and the markers won’t be 1:1, and that defeats the purpose of it all.

Otherwise, it runs really well with an output of 640x480x60fps. Anything bigger is pushing it.

So the next thing I’ll try to figure out is how to do fake scaling and z-distance. Having a flat 3D plane is cool, but you gotta be able to have at least billboarding trees, rocks, and buildings. I am trying to emulate F-Zero after all. 😛

I’ll upload a playable demo once I have enough to show off. Keep an eye out for it.