Question

Island and coastline disappears when translating DEM to Minecraft world.


So I've played around with FME's for some weeks now, and I really do like it. But what I've discovered is that when one make the dem into a Minecraft world, the coastlines, islands (Little height and close to the sea) in 90% of the cases seem to disappear.

Here's a picture of an island from a Dem that I use

http://i.imgur.com/0doJNYY.png

Here it is afterwards:

http://i.imgur.com/JFaICXk.png

I think the cause may be scaling, is it possible to scale the z-range of mountains that are over 255 blocks high and preserve the rest below it? (perhaps not the best idea)


4 replies

Userlevel 5
Badge +25

You can do that with the Scaler transformer, keep the X and Y scaling at 1 and only alter the Z scaling to introduce vertical exaggeration.

Userlevel 2
Badge +11

Hi @trob2119,

I wonder how you generate water around the island. With PointCloudFilter or PointCloudExpressionEvaluator you can make sure that all points belonging to the islands are above the sea level. For example, you can add a condition that would lower only water blocks by 1 - something like setting z to "if(@Component(blockID)==8, @Component(z)-1, @Component(z))" or raise all blocks but water: "if(@Component(blockID)!=8, @Component(z)+1, @Component(z))".

In general, I usually do a lot of component fine tuning after making a point cloud for Minecraft - not only with z, but also with blockID and blockData, for example, randomly place saplings in forest areas or set some blocks inside buildings to glowstone for nice night scenes.

Answering your scaling question - yes, it is possible, although might probably look not very realistic - split the point cloud using PointCloudFilter (z > some_elevation), scale one or both point clouds with different multipliers, offset the top one so it touches the lower, and combine with PointCloudCombiner.

Dmitri

Hi @trob2119,

I wonder how you generate water around the island. With PointCloudFilter or PointCloudExpressionEvaluator you can make sure that all points belonging to the islands are above the sea level. For example, you can add a condition that would lower only water blocks by 1 - something like setting z to "if(@Component(blockID)==8, @Component(z)-1, @Component(z))" or raise all blocks but water: "if(@Component(blockID)!=8, @Component(z)+1, @Component(z))".

In general, I usually do a lot of component fine tuning after making a point cloud for Minecraft - not only with z, but also with blockID and blockData, for example, randomly place saplings in forest areas or set some blocks inside buildings to glowstone for nice night scenes.

Answering your scaling question - yes, it is possible, although might probably look not very realistic - split the point cloud using PointCloudFilter (z > some_elevation), scale one or both point clouds with different multipliers, offset the top one so it touches the lower, and combine with PointCloudCombiner.

Dmitri

I've now tested your idea, and by also including an offsetter, I set Z to 0.5. The coastlines are now perfect!

Here are the results:

http://imgur.com/a/i2oK7

Oh, and for the water. I used WorldPainter. (You can set the height for the water)

I've now tested your idea, and by also including an offsetter, I set Z to 0.5. The coastlines are now perfect!

Here are the results:

http://imgur.com/a/i2oK7

Oh, and for the water. I used WorldPainter. (You can set the height for the water)

Looks awesome. Thanks for sharing the results.

Reply