Isometric Graphics using 3:1 Aspect ratio
Posted: Sun Jun 11, 2006 3:17 am
Most (if not all) isometric graphics are based on a 2:1 Aspect ratio.
That is to say that if you looked closely enough at one straight edge, you would notice that the pixel step in the x direction is 2 and 1 in the Y direction. Perhaps someone else can come up with a better description?
Anyway, this format originates from the Spectrum, Amstrad and C64 computers where each displayed byte is 8 pixels wide.
However on the Oric 6 pixels are displayed for every byte.
This brings forth the intriguing idea of using a 3:1 aspect ratio, where each byte can hold 2 steps right for one step down.
So again looking closely at one edge, you would notice that the pixel step in the x direction is 3 and 1 in the Y direction.
This aspect in practice produces a much less acute camera angle. Instead of the camera almost looking at 45 degrees, it looks at something more like 33 degrees.
The example below shows a 2:1 Aspect and following it is the same image as 3:1 aspect...
![Image](http://www.defence-force.org/ftp/forum/isometric/p2_room1.png)
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_room1.png)
Apart from this aspect looking kinder on the eyes, it may have some programming benefits (And ultimately speed and memory benefits).
1) Embedded masking(Memory Benefit)
Since each displayed byte holds two steps, the upper 2 bits of the byte (Which usually hold attribute flags) may (outside HIRES) hold the mask bitmap for the lower 6 displayed bits.
Any routine would simply extract these two bits and use them to index a Mask table whilst replacing these bits with 01.
The example below shows normal bitmap masking...
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_staircasesepmask.png)
The example below shows the same image with embedded masking.
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_staircaseb67mask.png)
yeah yeah ok, so the bitmap has been modified to look more natural with the cruder masking, but even so still quite acceptable i think?
The final example shows the same as previous but in the 3 level room.
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_3levelroom2.png)
Whilst the example has used a staircase, the better objects to use embedded masking are floors, Walls, windows and doors since these generally only require masking to prevent corruption of neighbouring objects.
2) Sprite Movement (Speed benefit)
Any sprite movement on the isometric view will move at the angle iof the aspect ratio. To this end a 3:1 layout may move the sprite in steps of 3 pixels at a time. The benefit being that the code need only shift up to once to position the sprite on the screen.
The only disadvantage of 3:1 aspect is that most isometric graphics cannot be ripped from 8 bit games
and must be created from scratch. ![Exclamation :!:](./images/smilies/icon_exclaim.gif)
That is to say that if you looked closely enough at one straight edge, you would notice that the pixel step in the x direction is 2 and 1 in the Y direction. Perhaps someone else can come up with a better description?
Anyway, this format originates from the Spectrum, Amstrad and C64 computers where each displayed byte is 8 pixels wide.
However on the Oric 6 pixels are displayed for every byte.
This brings forth the intriguing idea of using a 3:1 aspect ratio, where each byte can hold 2 steps right for one step down.
So again looking closely at one edge, you would notice that the pixel step in the x direction is 3 and 1 in the Y direction.
This aspect in practice produces a much less acute camera angle. Instead of the camera almost looking at 45 degrees, it looks at something more like 33 degrees.
The example below shows a 2:1 Aspect and following it is the same image as 3:1 aspect...
![Image](http://www.defence-force.org/ftp/forum/isometric/p2_room1.png)
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_room1.png)
Apart from this aspect looking kinder on the eyes, it may have some programming benefits (And ultimately speed and memory benefits).
1) Embedded masking(Memory Benefit)
Since each displayed byte holds two steps, the upper 2 bits of the byte (Which usually hold attribute flags) may (outside HIRES) hold the mask bitmap for the lower 6 displayed bits.
Any routine would simply extract these two bits and use them to index a Mask table whilst replacing these bits with 01.
The example below shows normal bitmap masking...
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_staircasesepmask.png)
The example below shows the same image with embedded masking.
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_staircaseb67mask.png)
yeah yeah ok, so the bitmap has been modified to look more natural with the cruder masking, but even so still quite acceptable i think?
The final example shows the same as previous but in the 3 level room.
![Image](http://www.defence-force.org/ftp/forum/isometric/p3_3levelroom2.png)
Whilst the example has used a staircase, the better objects to use embedded masking are floors, Walls, windows and doors since these generally only require masking to prevent corruption of neighbouring objects.
2) Sprite Movement (Speed benefit)
Any sprite movement on the isometric view will move at the angle iof the aspect ratio. To this end a 3:1 layout may move the sprite in steps of 3 pixels at a time. The benefit being that the code need only shift up to once to position the sprite on the screen.
The only disadvantage of 3:1 aspect is that most isometric graphics cannot be ripped from 8 bit games
![Evil or Very Mad :evil:](./images/smilies/icon_evil.gif)
![Exclamation :!:](./images/smilies/icon_exclaim.gif)