Closed gshort closed 13 years ago
I saw those posts, but not until they were 4 pages old. That thread sure moves fast.
To anyone that's wondering, maps are laid out with southeast at the top because, when I was writing the early parts of the code, I wasn't sure which direction they would come out. So I picked one arbitrarily and it happened to be this one. Since no one complained, I hadn't done anything about it yet.
Like everything else I said I'd do, this is one of the things I want to get to when I get a good chunk of free time.
Choosing what direction to render from or even having it turnable would of course be great.
Oh, turnable ... I gave this a thought, well, just a small one. Currently my map data renders to ~0.9GB pngs (crushed already) and that is only one direction. If rotation is considered that surely would mean the map must be rendered four times (once for every direction), which would create about 3.6GB data in my case .. quite big.
I'm wondering if rendering static PNGs is the appropriate approach for this use-case.
I'm still going to make the maps point north-east. I don't plan to make them rotatable, or code in any other directions.
If they weren't rendered obliquely, you could just rotate the resulting PNG...
Rendering a straight top down view would be pretty easy, but I don't think it would look anywhere near as good. Or maybe I just like to give myself a challenge.
If someone can convince me that it would be worth it, though, I'll give it a shot
Convince? Like money? :) Just kidding.
I could see your tool becoming the swiss army knife for Minecraft in that regard. Unfortunately my python-foo is like below 0 :-/
Hah, no I meant make a case that a lot of people would find it useful.
Still though, with how busy I am, I need to pick and choose which tasks I want to tackle. I would love to see this become a swiss army knife tool, but to immediately do the most good, there are three things I want to do: make it faster, make it easier to use (gui), and make a windows exe (done).
Throwing in my support and a number of others for north up. Still love it though.
But optional, if ever, please. Quite some people currently build stuff facing west and north so it's visible on the maps ...
Yes, definitely. Whenever I find the time to tackle this, I'll probably put it on a separate branch and then figure out how to proceed.
I have the math worked out, but I have yet to actually start coding it.
Wouldn't fixing this be a simple matter of swapping the signs on one or two axis (probably in more than one place)?
Pretty much. The chunk rendering needs to be changed, and the tile rendering has to be changed. Since the coordinate system is being translated along the way, it's slightly confusing.
It's not like it can't be done, I've just had like no time to work on this for the last few weeks.
to chime in with what mfn said, since alpha vespucci uses the exact same orientation for it's "Oblique Left" rendering style ( http://luckz.de/files/minecraft/tetrix-vespucci-overlayable-obleft/ ), any forced "rotation" of my Minecraft-Overviewer output would be extremely confusing :P
+1 to making this at least an option. I always render my AlphaVespucci maps with -obliqueright and it would be very nice for Overviewer to also have a "north is up-and-something" option.
in order to alleviate potential confusion for viewers who may not be aware of where North is, could we place a compass rose on the map (with the correct perspective) to indicate which direction is north? i'd be glad to look into how to do this with the google maps interface if someone can provide an nice attractive image.
To work around this, we built a physical compass on the map right next to spawn to help orientate ourselves.
I would think it would be easy to support other alignments of the map, however. You should be able to simply take the code and apply a translation matrix depending on the desired alignment.
It has been a while since i seen someone post on this issue/feature request, but i found it important enough to actually make an account to comment on this. It would be nice to have an option when building the map to determine which is north (up-right, up-left, down-right, down-left; choices). The changes made to the program so far are wonderful, thank you for the time making it. : )
Ditto Deszeraaeth's suggestion; there should be a command-line flag for the gmap.py script that allows an input orientation: 'SE' (default), 'SW', 'NW', or 'NE'.
It has been a few months since the last post on this. Does Minecraft Overviewer now have configuration settings to change the orientation?
sorry @kiloforce, this remains low on our priorities at the moment... i have thought of the ability to use google's rotation settings within the api... but im not certain it will work. As for true perspective its rendered from, we really can't change this very easily.
I like this project but due to the file/folder count causing some issues with our server limits and the directional compass consistently confusing/upsetting players i have decided not to use it for our servers. The mapping tool is very powerful and i hope to see it flourish soon. For now we are using a dynamically updated map through bukkit that can be hosted on our mc server (with relatively low bandwidth use) rather than our web server that currently has a file count limit.
Thank you for your time and hard work!
Just adding the same desire to the list. Great utility otherwise! :)
Throwing my support on the pile for rotatable maps! This would be an awesome feature.
This confuses our players pretty regularly on our SMP server, will +1 this too.
I have to agree with the OP. People are viewing the map and then trying to find there way around the world. Very confusing for the player. +1 to place north in the top left or top right.
Not so much rotatable, such a space hog and the render time would be *4 as well. Just north pointing up to either corner...
+1 for sure.
That is the exmaple map, rotate with north pointing to the upper-right corner!
Code is here https://github.com/rmrector/Minecraft-Overviewer.
I've added more new bugs than new features, I think, but it's running nicely on my server, so at least it's unlikely to eat your cat.
Great to see progress on this, your work is appreciated.
Whoah, nice work! This has been probably the single most-requested feature, at least since the DTT merge. Once it's finished it's a shoo-in for a merge.
I'll check it out more thoroughly when I find the time, and maybe help squash some of those bugs / performance problems.
o_0, that's awesome! I'll be giving this a test go today see if I can't help out with the bug hunting.
Great! Nice way to implement it!
Any chance of a win32/64 compiled version for testing?
unless @rmrector has any objection, please stop by #overviewer on freenode and we'll try to get a windows binary build for you.
Running a series of render passes now, options, directions, etc. Recording time stamps and any other relevant information. Do what I can to help out.
Did some tests, results: Using these parameters: overviewer.exe --processes=1 --rendermode=lighting,night --north-direction=lower-right "folderfrom" "folderto"
Got these results:
Test 1-0: Upper-right: Started:2:11 Ended: 2:52 Total: 41min
Test 1-1: Upper-left: Started:3:05 Ended: 3:42 Total: 43min
Test 1-2: Lower-left (defualt): Started:4:18 Ended: 4:30 Total: 12mins
Test 1-1: Lower-right: Started:4:53 Ended: 5:05 Total: 12mins
@rmrector : it seems that the north direction has broken the biome support @KariTrace : i do not have this issue, all both upper direction and default one render with almost the same time (tests done using 16 cores)
@KariTrace Thanks! It's curious that it's split between upper and lower. I had initially thought that every direction except lower-left would be slower. Curious. @Icarus Biomes! Biomes completely skipped my mind. I'll add it to the list. It's also curious that it's not any slower for you. My tests with 3 cores are slower, but only 30%, not more than 300% like @KariTrace's single process tests. I suppose that is what 16 cores are for, though.
@rmrector You said around 30% slower with 3 cores, that makes around 5% slower with 16 cores. I use 5 renderers on a 70MB world, everything is rendered in around 10mins. 5% of 10 is 2 and honestly I did not notice any difference.
Another issue (beside the Biomes), is that the compass is not shown. I guess it comes from a wrong merge.... But perhaps you could try on a fresh clone of your rep.
Ran another test using normal render mode only:
Start time: 9:18:43.19
C:\Program Files (x86)\Mojang\overviewer_test>START /WAIT cmd /C ROBOCOPY /MIR "C:\Program Files (x86)\Mojang\Server\world" "C:\Program Files (x86)\Mojang\overviewer_test\world_map" World Copy finished: 9:18:49.24 Total: 6s
C:\Program Files (x86)\Mojang\overviewer_test>START "Renderer Running 1" /WAIT overviewer.exe --processes=1 --rendermode=normal --north-direction=upper-right "world_map" "C:\Program Files (x86)\Mojang\overviewer_test\upper-right" 9:33:19.03 15mins
C:\Program Files (x86)\Mojang\overviewer_test>START "Renderer Running 2" /WAIT overviewer.exe --processes=1 --rendermode=normal --north-direction=lower-right "world_map" "C:\Program Files (x86)\Mojang\overviewer_test\lower-right" 9:48:27.54 15mins
C:\Program Files (x86)\Mojang\overviewer_test>START "Renderer Running 3" /WAIT overviewer.exe --processes=1 --rendermode=normal --north-direction=lower-left "world_map" "C:\Program Files (x86)\Mojang\overviewer_test\lower-left" 10:01:09.74 13mins
C:\Program Files (x86)\Mojang\overviewer_test>START "Renderer Running 4" /WAIT overviewer.exe --processes=1 --rendermode=normal --north-direction=upper-left "world_map" "C:\Program Files (x86)\Mojang\overviewer_test\upper-left" 10:14:25.98 13mins
...I think we have a trend here...Trying it again using 'night' render mode, I'll let you know the results.
Redering 'night' using 16 cores, the world size is 78MB.
My results:
The biggest delta is 10 seconds. Not really a big deal.
For info, here is the settings.py I use everyday (the tests were done with night only), it usually take 10 to 15 minutes to finish the rendering. https://gist.github.com/1086174
Please note that 'defaultZoom' and 'minZoom' options are modifications made by me and not available in other forks. The diff is here https://gist.github.com/1086181 (@agrif: if you think it worth it, include it in the main repository).
@rmrector : I an issue related to the north direction, some trapdoors are not well rendered, you can see it on this picture: http://img837.imageshack.us/i/traprender.png/ The trapdoors should look as the others on the south side of the house but there are down&left shifted by one block. This happens on lower-right and upper-left (not tested with lower-left). It is ok for upper-right.
I hope this information will be helpful.
Cheers.
@Icarus, @rmrector, about the trapdoors, maybe it's obvious, but just in case: they are not shifted by one block, they are in the correct block but the ancillary data is not rotated correctly, so they are drawn as they were hanging in the air.
Some more info!
The render times for exmaple in the four orientations are for me:
Orientation | Time |
---|---|
upper-right | 44.406s |
upper-left | 35.998s |
lower-right | 41.764s |
lower-left | 38.022s |
I did these tests with profiling and the results are:
lower-left: http://imgur.com/zKLlb lower-right: http://imgur.com/eaRMn upper-left: http://imgur.com/bBWUN upper-right: http://imgur.com/rLLJy
In the graphs the lower-right and upper-right orientations take 4 times more calls to rendernode:274:_apply_render_worldtiles
and rendernode:297:_apply_render_inntertile
functions than the lower and upper-left orientations, and these *-right orientations are the affected ones. I haven't looked the code and I don't know why this happens, but this may be the problem.
Hope this helps!
@Fenixin Thanks for the kick in the pants reminder that I still had work to do! I was pretty engrossed in staring out into space there for awhile.
Thanks everyone for the benchmarks and profiling data, that got me pointed in the right direction. There no longer seems to be any significant performance hit for any of the rotations.
The code is complete and a pull request is in, so it's only a matter of time before this is included!
You are welcome! Thanks a lot for the hard work and the nice implementation!
rmrector's pull request has just been merged, and --north-direction
is now in the master branch. I've just uploaded builds of the new 0.2.0 version. Have fun! and remember to report any issues you come across.
Edit: so it seems there's a pretty big ol' bug in 0.2.0 when rendering new maps, so go for achin's 0.2.0-1 nightly. Sorry!
Entering on behalf of a few user comments on the SA MC thread. In short, they expect the community-accepted north (the direction clouds move towards) to be either upper left or upper right. Currently, north is the lower-left corner of the map.
My own suggestion would be for north being in the upper-left corner, as most people are right-handed and that's the way one would normally orient a piece of paper for reading/writing (obviously not to the extreme of the isometric view, but you get the idea.)