View more

View more

View more

Image of the Day Submit

IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Question on isometry

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

9 replies to this topic

#1CyrusVorazan  Members

Posted 16 November 2013 - 02:15 AM

Hello everyone

Just recently, I've got a project of a game that is isometric, but not exactly isometric. I don't know how to exactly call this sort of camera view, and that's the reason for my question.

Basically, it's 2D with tilted vertical axis. Taking this picture as an example, it would be the middle dice. As an another example (taken from the same article, which, sadly, doesn't provide necessary information), it would look something like this. In principle of course, the art style will be different.

So, the question is - is there any specific information on how to program such a game? And how exactly is this style of isometry called?

#2SiCrane  Moderators

Posted 16 November 2013 - 02:45 AM

I've seen this called three quarters view, but I've also seen three quarters view used to refer to other kinds of pseudo-3D rendering.

#3Álvaro  Members

Posted 16 November 2013 - 08:24 AM

The class of parallel projections are called axonometric, of which isometric is a particular case.

What exactly do you need? A projection matrix?

#4CyrusVorazan  Members

Posted 16 November 2013 - 08:51 AM

Pretty much so. Since you need to convert 2D to isometric coordinates and vice versa, it's the same here. So I wondered if there's a description on calculations and transformations that need to be considered for such game.

#5Eck  Members

Posted 16 November 2013 - 09:36 AM

You can achieve this effect a few different ways.

1. You can fake it with sprites. By drawing your sprites in a particular order it will give the illusion of 3d. There are plenty of "how to" resources for Isometric games that explain this concept.

2. You can do what Álvaro said and in 3d and write a matrix which will give you the camera view that you'd like.  In XNA, I think this might be as simple as using Matrix.CreateOrthographic with the appropriate values.

3. Use an isometric game engine.

- Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

#6Anthony Serrano  Members

Posted 17 November 2013 - 01:47 AM

For what it's worth, that's technically referred to as an oblique projection.

#7Oolala  Members

Posted 17 November 2013 - 02:44 PM

Short answer:  The projection matrix you're looking for is exactly identical to a typical isometric projection matrix.

Your normal isometric projection matrix is effectively:  RotationMatrix(transform) * Projection, where transform is a ~45* rotation around the Y axis and a ~30*-~60* [depending on the specific case] rotation from the X-Z plane.  In your case, you'll just forgo the rotation, but still keep the rotation from the X-Z plane.  Projection would simply be something like this:

{  { xScale, 0, 0, 0 },

{0, yScale, 0, 0},

{0, 0, zScale, 0},

{0, 0, 0, 0} }

Where *Scale is a transform from your view [which is effectively a bar-shaped region] to a -1,-1,-1 to 1,1,1 cube used for normal rendering.  You can effectively consider the zScale to be 1/infinity for all practical purposes, but sometimes it's nice not to quite go that far so as to preserve effective zBuffer behavior.

If you want the actual math behind it, or something more detailed, I can post that to, but it's long winded and if you don't care about the grit, there is no point in going into it.

#8Burnt_Fyr  Members

Posted 19 November 2013 - 10:29 AM

Not to detract from the op's question, but I'm aghast as to what to call this. My first thought was axonometric, as Alvaro mentioned. But I can also see how it could be an oblique projection. Keeping in mind I'm lacking a severe amount of sleep, am without coffee, and am working in an office that is currently about 46f, are there certain angles of rotation for oblique and axonometric projections that would result in the same 2 dimensional projection? Could an axonomic projection of an object rotated along only 1 axis be considered an oblique projection? Can the same be said of objects rotated on 2 axii? 3? If the latter is true, is there any real distinction between an axonometric projection and oblique projection?

After a large double double and some paper work, I can see now that it is not an axonometric projection at all, but for sure an oblique projection, as Anthony suggested.

Edited by Burnt_Fyr, 19 November 2013 - 11:54 AM.

#9Álvaro  Members

Posted 19 November 2013 - 01:36 PM

If the projection is such that the lengths along the directions x and y are preserved, it is indeed an oblique projection. This wasn't completely clear to me from the original examples, but I think you are right: It's an oblique projection, and not axonometric.

#10FLeBlanc  Members

Posted 19 November 2013 - 01:46 PM

Don't get too hung up on terminology. Just make the game you want to make. In this day and age, making a game for your particular projection is no different from making a game for any other projection: set up a projection matrix and a view matrix, and draw some geometry. All the rest is just details.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.