Smooth Terrain Heightmap/Colormap Importer Release!

Hi Developers,

One of our goals for this year is enabling the quick creation of larger, more diverse worlds. Our roadmap to deliver on this goal involves a variety of improvements to the Smooth Terrain system. Today, we are happy to announce the launch of the first major feature - the Heightmap/Colormap Importer! The Importer can be found under the Import icon on the Terrain Editor Plugin.

New Limits
Using the Heightmap/Colormap Importer, you can quickly create terrain of enormous size. We’ve tested to ensure performance up to 16384x16384x1024 studs (4096x4096x256 voxels), which we have set as the current limit. Imported terrain can be centered at any chosen location in the world, allowing separate segments of terrain to be built if desired. N.B. All units in the Importer are in studs.

Technical Bits
The Importer expects PNG images for both the heightmap and the colormap. It’s best to provide a grayscale image for the heightmap but the importer will still work if given an RGB image - it will just select the value from the Red channel as the height information.

The PNG pixel channels provide 256 levels of height information. The importer will scale the terrain to the desired Y height and use a smoothing algorithm to remove stair-stepping artifacts.

A heightmap can be imported by itself - the terrain will be created with Asphalt as the default material. A colormap cannot be imported by itself - it requires a heightmap as the terrain base. Materials are interpreted from the below key. Colors not found on this key will be rounded to the nearest key value.

material_table

RGB Value Material RGB Value Material
[115,123,107] Asphalt [206,173,148] Limestone
[30,30,37] Basalt [58,46,36] Mud
[138,86,62] Brick [148,148,140] Pavement
[132,123,90] Cobblestone [102,108,111] Rock
[127,102,63] Concrete [198,189,181] Salt
[232,156,74] CrackedLava [143,126,95] Sand
[101,176,234] Glacier [137,90,71] Sandstone
[106,127,63] Grass [63,127,107] Slate
[102,92,59] Ground [195,199,218] Snow
[129,194,224] Ice [139,109,79] WoodPlanks
[115,132,74] LeafyGrass [12,84,92] Water

Have fun! Please let us know what you think! Feel free to post fun terrain creations in this thread.


[Update 6/28]
Hi All,

Thanks for trying out the Heightmap/Colormap Importer and all your fun creations! Unfortunately, we found a few critical bugs that are causing issues. We are turning the feature off while we diagnose and fix.

Thanks,
GeneralRelish


[Update 8/15]
Hi Developers,

Today, we are excited to re-release the Smooth Terrain Heightmap/Colormap Importer! We’ve cleaned up a few bugs and made a significant change to the workflow. To encourage safe and responsible usage, the Importer now requires that the images go through moderation before being used. Once an image has been uploaded and approved by moderation, it can be selected in the Importer.

Selecting an image that has not gone through moderation will display an error and not allow the import process to proceed.

Please note that your Game now must be published in order to use the Importer. Using the Importer in an unpublished Game will display a “Game must be published before importing terrain” error in the Output window. For best results, image resolution should be kept to 1024x1024px or below - images larger than this limit will be automatically scaled down.

One of our most important values at Roblox is to respect the community. This means respecting developers and players alike. This workflow change was critical to ensure we are in line with our own core values. As we look at the future of development on Roblox we know we need to improve your efficiency and this means not blocking your workflow. We are currently investigating ways to enable you as developers to work faster than ever, while still upholding our safety standards.

361 Likes

Amazing update, this will allow creators to at last build maps at scale quickly!

44 Likes

Finally, I’ve been waiting so long for this!

15 Likes

Brilliant Update, been waiting for this for a while!

6 Likes

This is great! It will be much easier and faster to use terrain tools after this :grinning:

13 Likes

Hooooooly! I’ve been waiting for this! Normal maps soon? :wink:

16 Likes

There’s another program called FeralHeart that uses a similar feature in it as well. From what I’ve heard, I’m sure many will love using this as well.

5 Likes

This update is huge! Really loving the pace that Roblox is advancing at. I hope that we get to see custom terrain materials and normal maps in the near future. :wink:

4 Likes

YES! This solves literally all of my problems with using plugin based solutions. Thanks so much!

EDIT: This is amazing and all you folks at the HQ are even more amazing.

68 Likes

The island of Mata Nui. I’m still experimenting with color mapping, but so far I’m loving this feature!

57 Likes

Oo! Very nice addition, but it would be GREAT if we could have APIs for producing color/heightmaps and building chunks of terrain from them.

9 Likes

Is there a size limit? Im currently unable to use studio to check, but I really hope that we are able to import enormous maps.

2 Likes

Is anyone else getting an issue where their materials don’t seem to properly import? I followed the key, yet limestone is generating as salt, sand as cobble, sandstone as concrete, etc.


image

EDIT: If anyone else is having this issue, you need to type the key color manually instead of just color-picking like I did. At the time of writing the RGB values in the key aren’t the same as the RGB values of the colored squares in the key.

12 Likes

Very cool. I will look into this for sure.

4 Likes

Great addition! I already started experimenting with it.

4 Likes

YOOOO, I HAVE WAITED THIS FOR SO LONG!
No limits as well! That’s amazing, can’t wait to use this feature!

3 Likes

Yeah, I think their rounding method for colors is a bit off. I used this for my color mapping:

But somehow cracked lava is appearing in the ice region, and ice is appearing in the desert region.

26 Likes

image

:frowning:

EDIT:
The OP was updated to reflect the presence of the limits.

19 Likes

I see what my problem was. The color on the key and the RGB value don’t seem to match.

I needed to type in the RGB value manually as the key’s actual image was off.

15 Likes

Since @144hertz and @XenoSynthesis and mentioned this, I checked every value and as he said, most of them were off. So I painted everything again by manually setting the RGB values in the table.

If anyone else needs the “correct” table:

image

Just as a side note on why I believe the materials weren’t matching:
Since some materials worked and others didn’t, I assume when “colors not found on this key [were] rounded to the nearest key value”, some of the approximations were too close and resulted in different materials.

EDIT: me and the boys testing colormap: (@Anwendungsentwickler)

image

109 Likes