Jump to content

  • Log In with Google      Sign In   
  • Create Account

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.

  • You cannot reply to this topic
9 replies to this topic

#1 CyrusVorazan   Members   -  Reputation: 119

Like
0Likes
Like

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?



Sponsor:

#2 SiCrane   Moderators   -  Reputation: 9676

Like
2Likes
Like

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   Crossbones+   -  Reputation: 13934

Like
0Likes
Like

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?

#4 CyrusVorazan   Members   -  Reputation: 119

Like
0Likes
Like

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.



#5 Eck   Crossbones+   -  Reputation: 3356

Like
2Likes
Like

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



#6 Anthony Serrano   Members   -  Reputation: 1254

Like
3Likes
Like

Posted 17 November 2013 - 01:47 AM

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

#7 Oolala   Members   -  Reputation: 861

Like
1Likes
Like

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.



#8 Burnt_Fyr   Members   -  Reputation: 1249

Like
0Likes
Like

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   Crossbones+   -  Reputation: 13934

Like
0Likes
Like

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.



#10 FLeBlanc   Crossbones+   -  Reputation: 3125

Like
0Likes
Like

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.



PARTNERS