Jump to content

  • Curse Sites
Become a Premium Member! Help
Latest News Article

PixelMap


  • Please log in to reply
262 replies to this topic

#1

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 02 November 2010 - 08:33 PM

PixelMap is an application written in C++ language designed to create bitmap images of Minecraft Beta worlds in various different styles. The program can be used with both command line and the built in GUI. If there is problems with the command line, then try out the GUI first. It's small and easy, but contains most of the program supports.
I have myself compiled and run it in both Linux and Windows without any special difficulties.

Features
  • Optimized in both memory consumption and speed
  • Option to run program in several threads (Multithreading)
  • No special support packages required: Just download and run
  • Cave mode
  • Standard and custom worlds supported
  • Only and exclude options
  • Slice mode
  • Supports Nexus/Nether rendering
  • Custom textures
  • Heightmap(line/gray/color/solid)
  • Rotation
  • Caching for gigantic worlds
  • Serverfriendly
  • GUI
  • Nightmode
  • Both Alpha and Beta save format support
Posted Image

License(s)
PixelMap and all content associated with it, but third-part libraries, is licensed under CC BY-SA. The author leaves the right to change the license for the product whenever necessary.
Third-party libraries: libpng, zlib

Download v0.86
x86 (32bit)
RAR, ZIP, 7z
x64 (64bit)
RAR, ZIP, 7z

Support
As I want to keep this a free service, still I give my time for something free. I am mere human and still need to pay my dept.

PayPal donation - A small donation of what You value my work
Posted Image

AdF.ly - 5 seconds advertisement and still get a download
ZIP, RAR, 7z

Older versions
x86 (32bit) v0.85
RAR, ZIP, 7z
x86 (32bit) v0.84
RAR, ZIP, 7z

Mirrors
http://mirror.dataorb.net/PixelMap.rar - x86 (32bit) v0.86
http://mirror.dataorb.net/PixelMap.zip - x86 (32bit) v0.86
http://mirror.dataorb.net/PixelMap.7z - x86 (32bit) v0.86

Source v0.85
TAR.GZ

Installation
  • Download archived file that your system supports (zip/rar/7z)
  • Put the file in desired folder you have read/write access to, e.g. Desktop
  • Unpackage the file in the folder
  • Run PixelMap
Compilation
  • Download archived source file
  • Put the file in desired folder you have read/write access to
      Linux
    • Unpackage the file in the folder: tar zxf PixelMap_Source_085.tar.gz
    • Run commands:
    • make
    • make install
      Linux (Command line)
      $ cd /tmp
      $ wget http://dl.dropbox.com/u/8304300/Minecraft/PixelMap_Source_085.tar.gz
      $ tar zxf PixelMap_Source_085.tar.gz
      $ cd PixelMap_Source_085
      $ make
      $ make install
      $ cp pixelmap ~/Desktop
      Could be copied to an another location
      Windows
    • Unpackage the file in the folder with Winrar or 7-zip
    • Either compile it with a define WIN32 or use Visual Studio Express to open up PixelMap.vcproj
    • Compile
Changelog
http://dl.dropbox.co...t/changelog.txt

Strickethrough text is old.
Renders
http://dl.dropbox.co...raft/world1.png


Examples
http://dl.dropbox.co...orld-normal.png
http://dl.dropbox.co...world-rot90.png
http://dl.dropbox.co...-heightgray.png
http://dl.dropbox.co...heightcolor.png
http://dl.dropbox.co...rld-exclude.png
http://dl.dropbox.co.../world-only.png
http://dl.dropbox.co...ave-slice32.png
All was created right after the other using this script:
@echo off
PixelMap -w 1 -f world-normal.png --silent
PixelMap -w 1 -r 90 -f world-rot90.png --silent
PixelMap -w 1 -h g -f world-heightgray.png --silent
PixelMap -w 1 -h c -f world-heightcolor.png --silent
PixelMap -w 1 -x w l -f world-exclude.png --silent
PixelMap -w 1 -o 14 15 16 -f world-only.png --silent
PixelMap -w 1 -c -s 32 -f world-cave-slice32.png --silent
echo on

Parameters
The order of parameters is irrelevant but the arguments must be after a parameter. Do not use brackets (< >) in the arguments. All parameters are optional.

-w
    This parameter requires the folder name of a world. If alpha is specified a number from 1-5 could be used. If specifying a custom path, (back)slash(/ or \) is required. If this parameter is not provided, World 1 will be rendered. The path can contain spaces.
-f .png
    Sets the path where you want to save the rendered image. You can only save as .png.
-l
    Path to where you want the log file to be saved. Any and all file types are supported. If no argument is provided, the log will be saved as log.txt to the same folder with the PixelMap.exe.
-o
    Only renders the user defined blocks, multiple blocks are supported. You can also use 'W' or 'L'(Small letters) to quickly select all, flowing and stable, water and/or lava. 'T' is used for trees.
-x
    As above, but excludes blocks instead.
-s  <0 or 1>
    User defined slice of a world. To render all slices under the selected slice put 0 after the height or 1 to only render the selected slice.
-h
    Renders a line heightmap with a user defined frequency. Using 'G' or 'C' (Small letters) allows you to see either gray gradient or color gradient. 'S' is used when disabling the normal mode and therefor showing plain colors.
-t
    Sets the amount of processor (CPU) cores to be used when rendering. It is not recommended to use more threads (cores) than your processor has. Using multiple cores greatly speeds up the rendering process. Default is value for this 1.
    If providing no arguments, max cores of the computer is used.
-c
    Renders caves.
-r
    Rotates the world 90, 180 or 270 degrees.
-n
    Render the world as if it were night with torches, lava and other sources where light can come from.
--texture
    Uses the colors from the terrain.png image when rendering. Any size or type of terrain.png can be used as long as it works with Minecraft.
--no-render
    Disables the rendering of a map. Only useful if you wish to only write a log of a world, not render a map.
--nether
    Renders the Nexus/Nether.
--cache
    Instead of allocating the image directly, it  creates a temporary cache-file where it stores the image data before saving it to the actually image. Default folder is in %temp%.
--silent
    Does not display any message/error box when done.
--no-gui
    Does not display any gui(It does everything in the background). Good for servers.
--no-heightmap
    Removes the use of lightmap provided in chunks to instead display hidden objects above the light. This decreases performance but gives a more reliable result.
--auto-close
    Closes the application when rendering is ready. Good for stacked renderings. --no-gui also activates this. Windows only.
--open-folder
    Opens up the folder the output is in. Windows only.
--version
    Chooses the version of a map. Currently it only supports alpha and beta.
--debug
    Enabled debug mode where it logs interesting parts in the program.
By default, the rendered image of a world is saved to the same folder where the PixelMap file is. If you use the -f parameter you can save the rendered image where you want it.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

Register or log in to remove.

#2

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 04 November 2010 - 08:36 AM

Here are some statistics for PixelMap when loading Aminia(Skylands):
Chunks: 42632
Size: 36.2MB
Time: 2:31/1:28
Memory peak(before creating image): 108MB/123MB
Memory peak(while creating image): 161MB/178MB
Left value is default and right is two threads on dual core processor. Both generated this image:
http://dl.dropbox.co...inecraft/sl.png
Using this setup on first:
PixelMap -w sl
And this setup on second:
PixelMap -w sl -t 2
Also generated a log afterwards:
PixelMap -w sl -t 2 -l log.txt --no-render
Which gave me this log:
http://dl.dropbox.co...necraft/log.txt

I was unable to provide with comparison, like mcmap, Cartograph or c10t.
mcmap cannot generate top-of-view.(Way too slow too)
Cartograph crashed each time I tried to load the map.
c10t had too much dependences on several libraries that I was unable to find everyone. Therefor, it didn't start at all... And I couldn't find any documentation of how to use the tool.

If you doubt these results, then please provide with your test data here.

Edit: I got Cartograph working by placing the world in the Minecraft folder. First time it took more than 5 minutes, and second time took approximately 2:41(Used a stopwatch). It used 75MB constantly of memory, and in the end went up to about 150MB.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#3

Darknes2
    Darknes2

    Tree Puncher

  • Members
  • 19 posts

Posted 06 November 2010 - 06:02 PM

nice!
however; i prefer to use high-quality renderers, which is why i use overview.
I really wish it were faster (i have my server box auto run it every 4 hours) but i guess you cant really get too much faster when your having to process and render that much data! :/

#4

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 06 November 2010 - 06:36 PM

Darknes2 said:

however; i prefer to use high-quality renderers, which is why i use overview.
I could take that as an insult, but due that this mapper have no spreadrate, I don't blame you. If more people could test this and find bugs and suggest features, I would be more than happy to keep this more updated.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#5

OrangeXP

Posted 06 November 2010 - 07:46 PM

For benchmarking, what sort of setup are you using (file caching affecting times)?

I poked your program, and it tried rendering World 1 by itself. The render time is similar to my program when I add the -t 2 option to your program.

I noticed that the program info window flickers a lot while it's rendering. Is there a need to display every single change immediately, or is that your preference? I noticed that I lost a few seconds of time in my program a while ago because the console spent extra time trying to render each number update to the screen.

Also, right-click->Properties for the map folder (chunks only) says 2,996 files (in Windows XP), but your program reports 3001.

You could also make some test pictures for your other rendering modes and place thumbnails on your first post.
AlphaVespucci: Currently under renovation. Tiling a large map still works for easier web viewing.

#6

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 06 November 2010 - 07:59 PM

OrangeXP said:

For benchmarking, what sort of setup are you using (file caching affecting times)?
AMD 2GHz Dual Core
2GB RAM 800MHz DDR2
PM use no caching. It's pure loaded and stored in RAM, which is why the use of RAM increases slowl

OrangeXP said:

I poked your program, and it tried rendering World 1 by itself. The render time is similar to my program when I add the -t 2 option to your program.
Yes, I've found out that after I tested your program. Although, first time I tested your program it took over 10 minutes, and second time it was below 2 minutes. Same time as mine when I'm using 2 threads, although a tiny bit slower.

OrangeXP said:

I noticed that the program info window flickers a lot while it's rendering. Is there a need to display every single change immediately, or is that your preference? I noticed that I lost a few seconds of time in my program a while ago because the console spent extra time trying to render each number update to the screen.
I use a separate thread for updating those values. It sleeps each loop, so it wont take up any special CPU time.

OrangeXP said:

Also, right-click->Properties for the map folder (chunks only) says 2,996 files (in Windows XP), but your program reports 3001.
I think I'm counting all files, meaning that it also counts files that is not part of the chunks. I'll see what I can do about it.
Edit: This is not critical and it's harder to fix than I thought.

OrangeXP said:

You could also make some test pictures for your other rendering modes and place thumbnails on your first post.
Thank you for suggesting that.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#7

OrangeXP

Posted 06 November 2010 - 08:27 PM

McTwist said:

Yes, I've found out that after I tested your program. Although, first time I tested your program it took over 10 minutes, and second time it was below 2 minutes. Same time as mine when I'm using 2 threads, although a tiny bit slower.
I meant file caching as in how NTFS remembers recently accessed files, so the second rendering time is always shorter.

McTwist said:

I use a separate thread for updating those values. It sleeps each loop, so it wont take up any special CPU time.
I kinda meant that the drawing routines may waste a small amount of time from the amount of drawing it does. Earlier, I wasted 4 out of 20 seconds of rendering time on a small map because the console was printing out each number from 1-~3000. I figure if you can't read each number that's on the screen, it's probably unnecessary to update that fast (despite how fancy it looks).

McTwist said:

I think I'm counting all files, meaning that it also counts files that is not part of the chunks. I'll see what I can do about it.
Edit: This is not critical and it's harder to fix than I thought.
My program does the count when it's iterating over the files and finding things that are specifically labeled c...dat (Boost library makes directory iterating relatively easy).
AlphaVespucci: Currently under renovation. Tiling a large map still works for easier web viewing.

#8

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 06 November 2010 - 08:43 PM

OrangeXP said:

I meant file caching as in how NTFS remembers recently accessed files, so the second rendering time is always shorter.
I ran both programs twice, and both was faster on the second run due the filecaching.

OrangeXP said:

I kinda meant that the drawing routines may waste a small amount of time from the amount of drawing it does. Earlier, I wasted 4 out of 20 seconds of rendering time on a small map because the console was printing out each number from 1-~3000. I figure if you can't read each number that's on the screen, it's probably unnecessary to update that fast (despite how fancy it looks).
Oh yeah. Drawing routines are expensive, but as long as it does not conflict with the CPU then it doesn't conflict with other threads. Even though, I should add so it remember last value so it only updates when the value is updated, or just update it 10 times a second. I could also add an another parameter/program for servers that does not display the GUI(I know that the GUI looks like shit, but it is displaying the data at least).

OrangeXP said:

My program does the count when it's iterating over the files and finding things that are specifically labeled c...dat (Boost library makes directory iterating relatively easy).
I don't use boost. I know boost are fancy, and I've used it myself. However, I don't need that library to do simple tasks, even if this issue isn't as simple anymore.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#9

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 06 November 2010 - 10:43 PM

Released v0.7. See changelog for more information.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#10

Darknes2
    Darknes2

    Tree Puncher

  • Members
  • 19 posts

Posted 07 November 2010 - 05:52 AM

Oh! i'm afraid you misunderstood me when i said "High quality mapper"; i did not mean one that was more feature rich or well made. i meant one that rendered a more detailed image!
Overview renders very detailed images, your program is really nice but i just need tons of detail in my images.
Example: http://map.smp.em32.net/map/index.html

#11

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 08 November 2010 - 05:51 AM

My mapper have a lot of features, but does not support isometric nor night. I will make these features later, but need to optimize the loader first, because it seems that the only thing that makes it faster tan other mappers if is you're using the multithreaded feature.

Overview looks like the same output as PM makes, except that it currently does not support Google maps. So when you're telling me "detailed image", what details does you referrer to?

About optimization: I found out that when I'm reading a map normally, it goes by a certain speed, but when I jump with the pointer to skip parts of the file that is unnecessary to read, it does not get optimized, but making the program go slower. I have no idea why this is, but I hope that someone could give me an answer to that question some day.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#12

C4C3
    C4C3

    Void Walker

  • Members
  • 1741 posts
  • Location: Christchurch, New Zealand.
  • Minecraft: C4C3

Posted 08 November 2010 - 06:57 AM

This actually looks very Good.
Screenshot of what it produces?
I'm guessing it's one of those "Use at your own risk" mapping tools?

[Reserved]


#13

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 08 November 2010 - 07:21 AM

C4C3 said:

Screenshot of what it produces?

McTwist said:


C4C3 said:

I'm guessing it's one of those "Use at your own risk" mapping tools?
Sort of. All programs ever created have a license that the usage of the program and the defects it creates does not give any responsibility to the creators. Although, this tool does not modify any map, and the only feature in this program that could at most crash your program is the threading. Although, it's stable enough so you don't have to worry unless you crash each time you test it. Tell me if you encounter problems.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#14

C4C3
    C4C3

    Void Walker

  • Members
  • 1741 posts
  • Location: Christchurch, New Zealand.
  • Minecraft: C4C3

Posted 08 November 2010 - 08:29 AM

McTwist said:

C4C3 said:

Screenshot of what it produces?

McTwist said:


C4C3 said:

I'm guessing it's one of those "Use at your own risk" mapping tools?
Sort of. All programs ever created have a license that the usage of the program and the defects it creates does not give any responsibility to the creators. Although, this tool does not modify any map, and the only feature in this program that could at most crash your program is the threading. Although, it's stable enough so you don't have to worry unless you crash each time you test it. Tell me if you encounter problems.
Nice screenshots.
Ok,Thats good to know,I'll download it tomorrow.

[Reserved]


#15

FrostyWolf
    FrostyWolf

    Forum/Wiki Sponsor

  • Curse Premium
  • Curse Premium
  • 541 posts

Posted 19 November 2010 - 01:16 PM

McTwist said:

My mapper have a lot of features, but does not support isometric nor night. I will make these features later, but need to optimize the loader first, because it seems that the only thing that makes it faster tan other mappers if is you're using the multithreaded feature.

Overview looks like the same output as PM makes, except that it currently does not support Google maps. So when you're telling me "detailed image", what details does you referrer to?

About optimization: I found out that when I'm reading a map normally, it goes by a certain speed, but when I jump with the pointer to skip parts of the file that is unnecessary to read, it does not get optimized, but making the program go slower. I have no idea why this is, but I hope that someone could give me an answer to that question some day.

Overview uses actual textures...try zooming in all the way on the map he posted, you'll see the difference.

#16

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 19 November 2010 - 03:13 PM

Pardon me on that one. I think I knew that before, but forgot about it.

And some information about progress: I tried to optimize the parser a bit more, and came up with a new idea that ended in the cleanest way to be up to 350% faster than the original parser. Although, when adding logging and other stuff, it became unclean, and therefor slower. I then instead made a correct continuous NBT parser, which is currently 10% slower, but it reads the data correctly, and the parser can be extended for more uses later on.
And the threading bug is still there, so I will take an even deeper look at it before releasing next update.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#17

C4C3
    C4C3

    Void Walker

  • Members
  • 1741 posts
  • Location: Christchurch, New Zealand.
  • Minecraft: C4C3

Posted 20 November 2010 - 08:19 AM

McTwist said:

Pardon me on that one. I think I knew that before, but forgot about it.

And some information about progress: I tried to optimize the parser a bit more, and came up with a new idea that ended in the cleanest way to be up to 350% faster than the original parser. Although, when adding logging and other stuff, it became unclean, and therefor slower. I then instead made a correct continuous NBT parser, which is currently 10% slower, but it reads the data correctly, and the parser can be extended for more uses later on.
And the threading bug is still there, so I will take an even deeper look at it before releasing next update.
Thats some good progress there.
Do you also need the Mirrior download?

[Reserved]


#18

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 20 November 2010 - 11:26 AM

The mirror download is for those that cannot get the first download. I mostly will update that asap after the normal update.

As I also said in the first post:

McTwist said:

    [*:jdvy6i8x]No special support packages required: Just download and run

If you encounter problems, don't hesitate to post here or pm me.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.

#19

C4C3
    C4C3

    Void Walker

  • Members
  • 1741 posts
  • Location: Christchurch, New Zealand.
  • Minecraft: C4C3

Posted 22 November 2010 - 05:04 AM

Ok.
I mapped a 5.4k chunk world,Took 3:15.

[Reserved]


#20

McTwist
    McTwist

    Zombie Killer

  • Members
  • 246 posts
  • Location: Sweden
  • Minecraft: McTwist

Posted 22 November 2010 - 07:50 AM

That seems pretty normal to me. If your CPU supports multiple cores, then please test them with the -t parameter too to enhance the speed.
PixelMap - Beta(1.4) mapper, GUI, multithreading, portable, modular, source. Use the full power of your computer.