Jump to content

13 posts in this topic Last Reply

Highlighted Posts

Posted:
Last Online:  
 

Many of us are familiar with the common BAT-making convention of increasing the scale of the heights of custom buildings by some 133%, particularly for doing real-building recreations.  Doing so offsets the visual squashing effect of SimCity 4's axonometric view, whose foreshortening is most severe and apparent on an object's height components when rendered.  This foreshortening is an inherent aspect of this type of constructed perspective view, and the effect is solely visual--a discrepancy between the abstraction of the constructed false-perspective and our understanding of what it should naturally look like.  Jasoncw's example BAT cube of 1m x 1m x 1m without any height rescaling will not look like a cube when exported into the game, but will instead look like a 1m x 1m square box that was only roughly 0.75m high.  The 133% adjustment to the height scale before rendering compensates for the height foreshortening visually perceived after rendering, so that our cube in game remains looking proportionally cubical.

Everything rendered into the game's axonometric view will primarily have its height components foreshortened by the inherent mathematics of the axonometric view, and we commonly compensate our BATs and props beforehand with the 133% height adjustment so they don't look squashed after rendering.  However, map terrain too should also be affected by height foreshortening when it is rendered.  This is not really an issue for those making freeform maps using imported painted maps or in-game map tools where the heights of mountaintops are already chosen by how they visually appear, but what to those making real-world maps and importing DEMs with a specific target for certain terrain heights and map proportions do?  I know the game and its query tool will identify terrain with in-game elevations, and DEM grayscales can be pegged to these specific elevations, but will any of these be visually or proportionally correct after the axonometric foreshortening?

Suppose I imported a DEM with a hill set to be treated by the game as rising 100m high above the game's sea level, and then used in-game map tools to create another hill queried as rising 100m high above the game's sea level.  Further suppose I made a BAT building that was 100m x 100m x 100m cube whose height was then rescaled by 133% before rendering so that it remained proportionally cubical in game, and this cube was then plopped into the game at the game's sea level.  Would the two hills and the BAT cube visually appear in the game to all have the same heights, or would either or both of the hills visually appear shorter than the cube?  I guess I've laid out the experiment...has this been done already, or does anyone already know what might be the results?

I ask all this because I often come across real-world-sized maps where the elevations still just look too flat, or am working with maps where the elevation levels are not leaving me the expected visual clearances.  Part of this I'm sure is a personal bias while another part is just imperfect available map data while playing with toy-sized objects, but I wonder how much is from a need to visually compensate for the game's abstracted perspective.  Now that I am finally tinkering with my own real-world-based maps, I wonder if and how others have dealt with this.

 

  • Like 6

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

Sounds like a reasonable conclussion. Maybe a way to test it is to look for an accurate-scaled map and to compare it with its google earth counterpart. While it would require hard work to make precise measurements, a visual examination would signal easily if the heights are adequately related. Considering that, the required map would need to showcase some geographical landmark that is close to a comparable artificial landmark that has been done for the game (lets say, a hill and a skyscraper)

  • Like 1

matias93's Unexpected Mod Workshop (dev thread)             Ciudad del Lago in the making (dev City Journal)

"Let us be scientists and as such, remember always that the purpose of politics
is not freedom, nor authority, nor is any principle of abstract character,
but it is to meet the social needs of man and the development of the society"

— Valentín Letelier, 1895

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

Seems to me a consistent argument - if you are going to destroy the projection by upscaling one dimension then you will need to do it for everything in that dimension. This should also include automata, trees, etc. Automata are typically rendered as is to world scales, although people do upscale props of them which does lead to weirdness.

However -  there are differing foreshortenings in X,Y and Z and the perspective changes with zoom. The lower three zooms are progressively more elevated views. A long way back I wrote this article  on Projection, Scaling and Rescaling because I found that I couldn't rely on consistency with any of the buildings I found on STEX - some were rescaled, some weren't, and MAXIS wasn't consistent to start with. The problem caused with rescaling is so as soon as you rescale one dimension you are in effect distorting the projection to something that isn't consistent with perspective. 

I personally don't think we should rescale as it breaks the projection - but that's me. 

  • Like 2

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

Looking at your cubes, the 133% version "feels" too tall. You're right that the original feels squashed. I think 125% would be a more comfortable correction factor (for me).

As for terrain, I am happy with it as it is. I'd need better memory of precisely how a hill appears before a slightly squashed version would look "wrong". A squashed human face might be fall into the "uncanny valley", but hills are hills. Making them taller/steeper will just run afoul of slope mods that won't let me build my roads.

  • Like 2

-- Jeff Fisher ><> Vancouver WA
"I may be pissing into the wind, but if I keep my enemies behind me and aim carefully, I can still rain on their parade."

Share this post


Link to post
Share on other sites
Posted:
Last Online:  
 

In my experience, 99% of the maps made by the mapping wizards like @drunkapple and the NHP team (Blade3kmaster comes to mind) are already scaled up by 133% to match the game's scale.

I cannot tell if this was intentional, but, for instance, in the San Diego map (with which I am familiar), the heights of known locations were roughly 133% higher than the actual elevations that I knew them to be (Mt. Soledad, for instance, is only ~250m high, but in the game map was 340 or so, roughly 140% taller). FWIW, I recently had taken the same map, and scaled it up even more to better reflect the hilly terrain which I felt the game did not show very well. It still doesn't, but I get a little more height to better reflect the scale of the hills in comparison to the buildings.

  • Like 4

My MD on SC4Devotion (updated first)
And Here on Simtropolis
NAM Associate

"My mother always told me, 'Elwood, you can be two things in this world...you can either be Oh So Smart, or Oh So Pleasant.'

Well, for years I was smart. I recommend pleasant."
-Elwood P. Dowd, Harvey

Share this post


Link to post
Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    @jeffryfisher  Though 133% is the common convention, I've also actually used 125% in the past on projects.  Foreshortening in the axonometric is actually happening along all three x, y, and z components at different amounts based on the camera positioning, with the x-component being affected the least dramatically and the z-component the most.  Using the x-component as the most convenient baseline, many of us can easily overlook the minor effect on the y-component, while the z-axis is the only one whose scale we can adjust to match the x-component in proportion across all four rotations.  While 133% rescale on the z-axis fits for the rendered proportion of the major shown face with regards to the x-component and is the adjustment easiest to make, it does make the cube seem taller to me too as the lesser affected y-component still remains unadjusted.  I once was working with a sphere and a hemispherical dome, and found that 133% rescaling makes them seem ovoid or egg-shaped.  SOH-CAH-TOA trial calculations suggested for me something at the lower end between 126% and 133%.  There can never be a perfect rescale factor, for it is all a balancing of unreal visual proportions among components that can never all match and finding which seems the least visually distorted.  133% will generally keep the major showing face for a given rotation at Zoom 5 in proportion.

    Still, 100% versus 125% of my modeled 1,719m Mt. Ōmine near Nara creates an in-game 429.75m visual discrepancy, and that distance is practically a mountain in itself at almost 27 tiles.  It would be the length of over 35 ground tiles, or 1/8 the length of a single large map, if I was using 133%.  Of course, this is only true at Zoom 5, for as @rivit points out, the different zooms have slightly different camera positions creating different foreshortening factors.  It may well be that at Zoom 1 or even at the Region View, where we are best able to admire the total breadths of our landscapes, the effect might become insignificant.

    @APSMS  That's interesting to know, as I have been following drunk's Cheap and Cheerful MapTutorial, which doesn't mention rescaling heights to compensate for visual distortion in perspective in his truly amazing maps.  However, in that tutorial he does run his maps through SC4Terraformer, making me wonder if the popular mapping tools like Terraformer already make this adjustment for us?

    Then again, having not yet done any experimenting on my own, it may even be that SimCity 4 already makes this compensation when it renders our terrain as maps.

     

    • Like 2

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Part of the discrepancy may be due to the fact that, aside from the differing projections at different zoom level, Sims are 2.5m tall, which is ~136% taller than a reasonable assumption of 1.83 meters (6 feet). If you make your buildings based on Sim scale in Z5, then this would end up being a reasonable scaling factor, even if when unadjusted for it makes spheres into ovoids and cubes into prisms.

    • Like 1

    My MD on SC4Devotion (updated first)
    And Here on Simtropolis
    NAM Associate

    "My mother always told me, 'Elwood, you can be two things in this world...you can either be Oh So Smart, or Oh So Pleasant.'

    Well, for years I was smart. I recommend pleasant."
    -Elwood P. Dowd, Harvey

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    I finally got time to sit down briefly and do a quick mockup.

    A DEM was imported with a mountain set at grayscale RGB 117 to create in game a mountain rising to 100m above sea level.  The game was kept to its defaults, so sea level is at 250m, ImageImportScaleFactor remained at 3, lowest dry ground level is 252m with grayscale RGB 84, and targeted mountain height was a 351m above seafloor with grayscale RGB 117.  100m cubes were created in gmax with 100% (no rescaling), 125%, and 133% vertical rescaling.

    The results are in line with what many of us already expected...

    As I used 100m so I could have a useful view of fuzzy terrain sculpting across the more distant zooms, the image is rather large.  Here is the preview:

    bxZ4nVx.jpg

    Here is the full-sized image.

    A mockup of all this at Zoom 5 creates an unnecessarily huge image, but I'll offer this smaller Zoom 5 mockup of just the three scaled cubes.  As the camera angle is again different from Zoom 4, there is a again a subtle different in proportions.  As many of us do create BATs and BAT complexes at this size, maybe seeing these proportional differences may prove useful.  Zoom 6, sometimes used for HD rendering, is just an expansion of Zoom 5, and should have the same camera position and axonometric foreshortenings.

    The mockup of Zoom 4 shows that for a 100m high mountain, or even a 100m tall building, you could potentially be visually losing an entire setback tier of Maxis's Empire State Building in elevation depending on the vertical rescaling used.  With much higher mountains, you could be losing the full heights of complete skyscrapers....or a lot of skiing slope!

    As @rivit noted, different zooms have different magnitudes of squashing due to the different heights of the zooms' cameras.  Compensating for squashing by vertically rescaling 133% for best look in Zoom 5 may leave a result that is too vertically stretched and overcompensated for in Zoom 1.  With the gargantuan sizes of mountain ranges, would we even notice distorted elevation proportions in Zoom 5 given the less-than-gargantuan sizes of most of our monitors?

    Unexpectedly to me, Maxis's Empire State Building, which is already infamous for its wonky in-game proportions, actually gets taller as the zoom level recedes at a rate dramatically different from the gmax test cubes.

    I guess the next step might be to render a Region View with a dramatic mountain landscape using different vertical rescaling.  If the pattern holds, I suspect that no vertical rescaling for the Region View level may actually have the least distortion.  I wonder what size cube I would need to make.

     

     

    • Like 7

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Mountains are too big to even fit in high-zoom frames, so they should be proportioned to look good at low zoom levels (zoomed out). Buildings might work best on a sliding scale. Figure out the closest zoom level will still show the entire building, and then optimize for that or a level further out. Don't stretch a building to look right at a zoom level that can't show it all.

    Looking at the cubes in different zoom levels, I now think that something less than 125% would be the best compromise. I'm guessing 112-120%, and then only for buildings that fit on screen at zoom-4 & 5.

    • Like 2

    -- Jeff Fisher ><> Vancouver WA
    "I may be pissing into the wind, but if I keep my enemies behind me and aim carefully, I can still rain on their parade."

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    The-CUBE.png.065523b28463d5ec330b7d2e506fc4ca.png

    The two views are from opposite sides of the cube at differing elevation and range. You'd think they'd have rescaled this to look right, wouldn't you. 

    The-CUBE.png

    • Like 3

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     
    On 1/14/2017 at 9:52 PM, Odainsaker said:

     

    @APSMS  That's interesting to know, as I have been following drunk's Cheap and Cheerful MapTutorial, which doesn't mention rescaling heights to compensate for visual distortion in perspective in his truly amazing maps.  However, in that tutorial he does run his maps through SC4Terraformer, making me wonder if the popular mapping tools like Terraformer already make this adjustment for us?

    Then again, having not yet done any experimenting on my own, it may even be that SimCity 4 already makes this compensation when it renders our terrain as maps.

    Bit late to this party.

    DA wasn't vertically rescaling his maps at the time i was learning from him, and to say he was meticulous is a colossal understatement.  I never could match the exactness of his detail.  I never rescaled my released maps but i did some experimenting.  It really depends on what level of detail you're looking at.  At the macro level, upscaling the Z just feels wrong.  The mountains are noticeably stretched and there's too much cliff texture showing up where it wasn't before.  I did a little experimenting and rescaling the Z to 105% or so was okay, but above 110% it felt bad.

    But when you get down to the level of the buildings that changes.  In the bottom 100m or so map detail has never felt right to me, but most of that is up to the maxis scaling.  Country roads and single lane city streets just aren't 16m wide, so when you're running them across hills or through mountains-especially ones you've hiked-the default scale feels a little jarring to me.

    Is the game itself rescaling the Z when it renders maps? Maybe.  The terrain model in terraformer that you can pan arround in is spot on, but those 7.5m ground lifter tiles in game sure do feel like they're lifting much less than a hair under half a tile width...

    I would suggest if you're going to experiment that you rescale the entire DEM and not just the Z axis.  So when you're resampling the GeoTiff down to a PNG and also when you're using the compressor to get the right elevations.  I might try that when i have a little time.

    • Like 4

    Share this post


    Link to post
    Share on other sites
  • Original Poster
  • Posted:
    Last Online:  
     

    Over four years later I can finally post an answer to my original musing post by actually doing the experiment.

    I had made a scale accurate map of Mt. Fuji using SC4 Mapper and a 16-bit DEM from ASTER data.  It had been processed both without any vertical rescaling on my part and with 133% vertical rescaling.

     

    Without vertical rescale, Mt. Fuji should reach 3,776 m above sea level, or a total vertical elevation of 4,026 m from SimCity sea floor:

    UVGS5do.jpg

    To make sure I wasn't misreading my map of Mt Fuji, we can compare the render with excellent previous maps by blake2k5 and drunkapple.

     

    With 133% vertical rescale, Mt. Fuji would reach 5,022 m above sea level, or a total vertical elevation of 5,272 m from SimCity sea floor:

    1vTaZus.jpg

     

    The 133% rescaled Mt. Fuji, though impressive and mountainous, is too tall when compared to a basic, uncompressed, scale cross-section of the mountain.  The version without any rescaling looks more correct to cross sections, which surprised me as we know from experience with SimCity that the isometric view does visually compress the proportions of BAT models, especially in the vertical, and that this distortion can be largely visually compensated for by rescaling the vertical by 133%.

     

    To simplify the experiment, I have made with SC4 Mapper and 16-bit PNGs two 3x3 large city regions, one with a uniform 4,096 m elevation, and the other with a 133% vertical rescaled region with a uniform 5,448 m elevation.  A large city has sides of 256 tiles, where each tile represents 16 m, so the total length of each side is 4,096 m.  If each side is 4,096 m and the elevation is 4,096 m, the resulting city with topography should be a cube.

     

    3x3 large cube city region with no vertical rescaling and 4,096 m total elevation from sea floor:

    KUTW34z.jpg

     

    Cube city region with 133% vertical rescaling and 5,448 m total elevation from sea floor:

    zWh8kxu.jpg

     

    It's obvious the version without any vertical rescaling has visually cubical cities, while the version with 133% vertical rescaling is grossly overstretched, even when accounting for an added sliver of seafloor that SimCity seems to attach to the bottom of any map.  The sides of the major face and verticals in the version without rescaling are not perfectly equal for a perfect isometric cube, with the verticals being slightly short in direct measurement, and it may be that 105% or 110% vertical rescaling would bring the results closer.  However, it all looks closely enough proportional.

    r7yC2h5.jpg

     

    This is again surprising to me, and it suggests that a rescaling has already been done by SimCity's ingame terrain modeling program, or, put another way, the algorithm by which the SimCity program constructs its terrain model with regard to foreshortening or isometric scaling is different from that used in rendering BATs.  Cubes made in BAT programs definitely do not render visually as cubes in the proportional way that the terrain engine has rendered these cubical cities.  No doubt these two different systems were designed by two different development teams, but they really diverged on this point, generally resulting in visually proportional terrain but often squat buildings.

    EDIT:  Actually, I did not take into account that the cameras at different zoom levels are at different positions, with the max zoom out camera used in the region maps and max zoomed out city map of the Zoom 1 camera being at a much lower angle to the game ground plane than the Zoom 5 camera commonly used as the standard best image of BATs.  The result is that the foreshortening of the verticals is significantly less with the Zoom 1 camera, while people at different zoom levels could be seeing things too tall or too squat depending on the zoom level.  A vertical rescale could conceivably still be used when looking at max zoomed out maps, but it will be much less than 133%, maybe in the aforementioned 105% to 110% range, and it is arguable whether such a rescale would be visually perceptible to be significant.

    Below is a group of Zoom 5 cubes from gmax BAT with no vertical rescaling overlaying our Zoom 1 cube cities from region view.  The discrepancies where they overlap indicate not only how the cameras are at different angles, but also that the vertical foreshortening is different, with the BAT cubes being more squat than the region view cubes.

    9Wx7THX.jpg

    I would suspect that a similar foreshortening is actually still happening to terrain at Zoom 5, but, with Zoom 5 in a city tile, we will not be able to see enough of the total terrain to appreciate a significant difference.  I won't see the full face of Mt. Fuji at Zoom 5 to perceive a visual change in proportion the way I will see such a change of proportion on the detailed facade of a BAT building.

    Ah well, I can admit that 133% vertical rescaling on terrain by SimCity mapmakers is absolutely not needed in the way that it is commonly recommended for BATs, as the SimCity terrain engine has largely mooted the problem for us.

     

    • Like 4
    • Thanks 1

    Share this post


    Link to post
    Share on other sites
    Posted:
    Last Online:  
     

    Fascinating. I have nothing really useful to add, just want to say Kudos to you sir for carrying out an experiment after such a long time gap. It is fantastic to see an actual empirical test.

    • Like 1
    • Yes 1

    Share this post


    Link to post
    Share on other sites

    Sign In or register to comment...

    To comment in reply, you must be a community member

    Sign In  

    Already have an account? Sign in here.

    Sign In Now

    Create an Account  

    Sign up to join our friendly community. It's easy!  

    Register a New Account


    ×

    Thank You for the Continued Support!

    Simtropolis depends on donations to fund site maintenance costs.
    Without your support, we just would not be in our 24th year online!  You really help make this a great community. *:thumb:

    But we still need your support to stay online. If you're able to, please consider a donation to help us stay up and running. This helps sustain a platform where we can share our community creations for years to come.

    Make a Donation, Get a Gift!

    Expand your city with the best from the Simtropolis Exchange.
    Make a Donation and get one or all three discs today!

    STEX Collections

    By way of a "Thank You" gift, we'd like to send you our STEX Collector's DVD. It's some of the best buildings, lots, maps and mods collected for you over the years. Check out the STEX Collections for more info.

    Each donation helps keep Simtropolis online, open and free!

    Thank you for reading and enjoy the site!

    More About STEX Collections