0 Favourites

2D Perspective Transform

This forum is currently in read-only mode.
  • Helo,

    I cant wait for the release of Consctruct.

    Anyway, for sprite object, i see Skew X,Y option.

    Could you (Scirra) please add 2D Perspective Transform? where you can set horizontal % (or pixels) and vertical % (or pixels) ? The transform takes precedence over rotation.

    As Consctruct is 2D game creator, I'm going to use the 2D Perspective Transform to make the top down sprite a 3D illusion.

    Perhaps plugins?


  • Have you tried the 3D Box object?

  • I'd definitely like to see perspective transform added to the sprite features, especially since the 3D box object doesn't support animated textures

  • .....especially since the 3D box object doesn't support animated textures

    Or rotating layers.

  • if you need it urgent, you could achieve a perspective transformation by using the math to influence the distort map of the sprite (transforming the grid that the sprite is drawn upon).

    that could be a hassle, though. i wouldn't know, i only understand half of that wikipedia article :P

  • dkdoom: not urgent, since Construct is not even released yet I'll wait til the public release 1.0 with full documentation. Besides i'm not very good at programming nor do I know how to integrate to Construct's Sprite object instant call procedure. Though I had looked at the plugin SDK tutorial and other perspective transformation algorithm. I just thought perhaps someone with programming skills will do it better.

    Ashley: 3D box doesn't suit my usage. Say I'm making and rts game like yours, how can we apply 3D box to the tank to make perspective? as the tank is not box rather a complex shape.

    With the perspective transformation and bit of skills we could possibly make 2.5D game like Starcraft... hopefully Anyway, my initial engine was created using Gamemaker Pro 7.0

    I'm working on a space sci-fi rpg rts sim more like combination of Star Trek Armada + Starflight + Starcraft. Later would like use real 3D engine for better visual. Well now is out of hobby.

    The idea is space exploration where you can land to planet that has lifeforms, plants, and civilizations. One can collect raw materials, or capture lifeforms + plants, trade, and using research of captured lifeforms to make other things, etc. And perhaps a bit of sims inside the spaceship where one can manage where to put the engine, living quarter, etc.

    Well jst a beginning.... Hell I would love to show Construct is da best engine ..

    Correction of the original post: Rotation should take precedence over perspective transform


  • Why not just change the sprite to show different animations for different angles?

  • newt: yes tried that before. but then you will have at least 36 sprites for each ship without animations. 36 sprites for missiles ? etc etc... Even so, the rotation is not very smooth yet. With perspective people will only need to create 1 top down sprite like always. Besides it is Construct vision to make game creation easy. I want to make sprite creation for modding later easy..

    Also: using diff sprites for each angle would the defeat the purpose of Construct having rotation / angle option rite. I'd like to use full potential of Construct though. Make things easier not more difficult.

    Actually I have two version engines created with Gamemaker Pro 7.0; the 2.5D one with 36 sprites each ship (3D) and the 3D illusion using Perspective Transform.

    Also, i wonder if there's LAN support? Space exploration that can be play 4 persons, independently then together.. would sound good... dont they?

  • Wow Gamemaker Pro 7.0, can't argue with that.

    Any way, joking aside, have you tried it with Construct? I've gotten away with it using only 8.

  • With perspective people will only need to create 1 top down sprite like always.

    and how do you want to cheat perspective using only one sprite, huh?

    distortion of flat sprite will not give it more depth or 3d look

  • shinkan: well yes, it wont give 3D look nor depth to the sprite itself. The sprite would be 3d prerender top down. Then 3D illusion comes from the environmental which gives an illusion that the playfield is 3D like isometric games; whereelse in Isometric games one would need to pre-render all angles of the 3D sprite. It wont be perfect, but it could look good. An example of what I did and researched was using Sins of Solar empire captured top down spaceship and using Photoshop to create the 36 sprites of 2D perspective transformed. Indeed it did look good Well everybody wants to make game easily, and 3D is rather complex that's why Gamemaker and Construct is focusing on 2D. I was just thinking a way to make my game a little of 3D easily. Anyway, I hope the option is given a bit of consideration. Just a request from my side.

  • Construct 3

    Buy Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Buy Now Construct 3 users don't see these ads
  • can you post an image of that example

    [quote:18p2omyt]"...Sins of Solar empire captured top down spaceship and using Photoshop to create the 36 sprites of 2D perspective transformed."


  • Sins of a Solar Empire was a 3d game as far as I know. I looked at a gameplay video and you can rotate around in 3d space... This indicates that it is more than likely a 3d game because it wouldn't make much sense to render out a whole bunch of sprites and transform them by hand when you could just do a 3d model and plop it in the engine and let the camera do the rest.

  • maybe the game was too much for his PC and rendered only 36 frames per camera's full circle, you know that feeling?

    jokes aside, you didn't understand the guy, he did a print screen on a space ship from the game and made 36 rotaded frames for his own creation.

  • We tried moving the vertices along the x and y axis to achieve a perspective effect, but the texture co-ordinates mess up and you get a kind of tearing. There might be a way to do it using the texture transformation matrix...or perhaps it can be done by changing the projection matrix to a perspective projection (how 3d box is rendered) and rendering the object on an angle... either way its something that requires some time to investigate, and we are more keen on getting construct to 1.0 at the moment. Perhaps as a comprimise, a shader could be written that applies perspective?

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)