0
$\begingroup$

Isometric video game graphics article on Wikipedia says:

The projection commonly used in videogames deviates slightly from "true" isometric due to the limitations of raster graphics. Lines in the x and y directions would not follow a neat pixel pattern if drawn in the required 30° to the horizontal. While modern computers can eliminate this problem using anti-aliasing, earlier computer graphics did not support enough colors or possess enough CPU power to accomplish this. So instead, a 2:1 pixel pattern ratio would be used to draw the x and y axis lines, resulting in these axes following a 26.565° ( arctan(0.5) ) angle to the horizontal.

I'm making a game and decided to create some assets in blender, with this typical use of pseudo-isometry, in order to be able to retouch my renders with "neat" (as Wikipedia puts it) lines, or to avoid changing viewing angle when switching from renders to fully drawn pixel art.

I've added a new camera with 0;0;0 rotations in the center, moved it up, parented it to an empty in the center and rotated that empty along X to 63.4 (which is 90 - 26.565, as I had to set the angle from the vertical and not the horizontal).

Then I parented that empty to another object in center, which I rotated along Z by 45°. You can see on the image, that a bounding box of a plane I use as a guide, is drawn in same, sharp style as in pixel art - except it has a jagged line:

Result of my dimetric (pseudo-isometric) setup

This wouldn't be a problem, as I see it, the algorithm drawing these lines could be not optimized to draw them in a "neat" pixel art pattern, even if its angle allows for it. However, I started to have some fun with the interface, by fine-tuning the rotation of my empty until the lines became perfect:

Same setup, but with camera slightly changed to get "neat" lines

I looked at the angle with which I achieved this result, and lo and behold, the angle was exactly 60° from the vertical (30° from the horizontal).

I don't understand what is happening here. Is Wikipedia wrong on the angle 26.565° producing "neat" lines? Does Blender introduce some magic algorithm, that somehow makes the "neat" lines possible on true isometric view? Does Blender lie about the angle, or does it apply some kind of a trick like slight vertical stretching/horizontal contracting in order to preserve 2:1 ratio for these lines?

I tried to see if it stays the same on renders, and it seems the effect is there too (I didn't know how to render crisp lines, but I measured pixel colors in 2 px to the side and 1 px down pattern and the render with real isometric setup was more consistent with the colors along edges than the one with pseudo-isometric setting).

As in title, I tested it on Blender 2.8.

$\endgroup$
0
$\begingroup$

I misunderstood the Wikipedia article. The angle 26.565° is the angle between projected non-vertical axes, and the horizontal line:

angle between non-vertical axis and the horizontal line

While the angle of the camera should indeed be 30° from the horizontal / 60° from the vertical:

angle between the camera and the floor

To those, who want to achieve true Isometry in Blender, instead of the pseudo-isometry that I need, you actually have to set the angle of the camera to 35.264°.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.