SceneComposer Editor Tools

After writing the better terraingrid plugin, and being tipped off by @monkeychops about what looks like a very intuitive editor (see video below) I took a look at the SceneComposer - and currently the terrain editing tools are in a state of what I would describe as “proof of concept” right now - and I would like to (if possible) improve upon those tools. Is there any information or documentation on how to one would go about doing so?



Awesome… really would love to see this new paging terrain component and better tools integrated into the editor… very exciting stuff.

Awesome. Well I think it will take longer if I try to improve the existing “Edit Terrain” system, and would serve me better if I created my own so I can better understand what’s going on as I require certain functions.

I’ve got the SDK checked out and it’s of great eductional use, but I’m unable to work out how I can get a plugin to get added to this context menu, or if it’s even possible via a plugin.

What I intend to do is add a menu item there called “Edit in TerrainPainter” - which will open a sceneComposer-type window with its own set of tools just like the “Edit Terrain” menu item does.


Thats a normal file action, you can create it with the Action Wizard.


Thanks normen, those were the keywords I was looking for. And so begins the journey.

Hmm. Any idea why it opens my controls in one tab and the scene in another?

I couldn’t find any documentation explaining the exact procedure, so I created a new “Panel Form” and modified it so that it “extends TopComponent implements SceneListener, LookupListener”.

Yeah I read through that a few times. Both a SceneComposer tab and the Tools tab open when i “right-click a j3o file => Edit in TerrainPainter”. When I close the SceneComposer tab the Tools tab closes too - so they’re both connected to each other in some form, it’s just that the Tools tab is docked in the wrong place:

Ah. You can define that in the TopComponents Annotations. Also when you create the TopComponent with the wizard.

1 Like

The current terrain editor does everything the editor in that video does. Rewriting it would be a waste of time. It’s fairly easy to add tools to it, they ate all separate and hook into the undo/redo system. It even uses the Terrain interface so tiled terrain can be plugged in without rewriting the tools. The feature it needs is to be able to add new terrain tiles to make it larger.


@Normen I couldn’t find any TopComponent wizard, so I just created a Panel Form and modified the extensions and implementations.

@Sploreg On second look, I didn’t realize it actually had as many features as it does. I think you’re right, I’ll set about adding support for multiple terrainquads instead.

Still, nothing ventured, nothing gained. At least I know more than I did yesterday. Always a bonus.


@jayfella @sploreg

I know I am offering more opinions than actual help on this, I apologise for that but I am too busy with RL work to contribute usefully right now. I think this a great initiative though and I am really happy to see work progressing on this as I think the terrain size has been a limiting factor for JME until now - paging is really needed to get nice big detailed terrains.

That said, here’s another opinion :smiley:

I’d like to see this properly integrated into the SDK. As Sploreg says, the terrain tools are already pretty good, but we do need support for working with multiple stitched terrains, slope-based painting, trees and grass painting etc. to make the editor workflow really come alive and let people build beautiful worlds.
If this works well, I hope the core devs will consider making this a proper permanent part of the editor, as I have not seen anything better so far.

@monkeychips yea I would like to see all the features you suggest too.
If someone can write it, I will gladly integrate it. As with @jayfella, RL work has prevented me from adding these new features.

The hardest part to figure out will be the texture count and blending textures beyond zones. For example going from a desert area with 8 textures and normal maps to a forest area with 14 textures and normals. People will definitely want that, and keeping it organized across zones will be a bit tricky for the UI, especially with managing the texture order.
I will be adding support for supplying a custom material to terrain, as long as it supports the mat params the tools require.

@jayfella said: @Normen I couldn't find any TopComponent wizard, so I just created a Panel Form and modified the extensions and implementations.

Thanks normen, Iv never really used swing at all, I only usually use wpf or jquery for a UI. It strikes me as similar to winforms.

Well my aim first is to make it work over multiple terrains. I already wrote a plugin that you can use in the scene composer that pages terrain. It wouldn’t be beyond me to allow vegetation into that equation. I could check when an item is added to the scene if not a character control or vehicle, then put it in the paging system. Or something like that anyway.

In an ideal world we could replace the deprecated terraingrid with my one, and thus be able to provide integrated support in the editor natively. I could then check if the scene has my pagedterrain control in it, and if true, also page the vegetation placed on the terrain. Combined with the features @monkeychops mentioned I think it would be make for a very handsome setup.

I managed to get some progress done today, and got the raise/reduce tool working on any terrainquad in the scene. It doesnt work seamlessly yet as the image shows. but I think I already have a fair idea on how to fix that. @Sploreg the terrain on the far left is the first terrain, however any other terrain added has a wierd lighting issue - is that one of the texture-related issues you mentioned earlier?

Different material issue than I was thinking of.
Seems the directional light isn’t shining on the new terrains. Do the new ones have the TerrainLighting material or just the default (no-lighting) terrain material?

They are added using your button from the Terrain Editor, so assumedly they are identically cloned.

It looks like the controls (lod control, normal recalc) don’t update on terrainquad’s other than the first terrainquad located in the scene.

Edit: I can confirm this to be true. What confuses me is that updates to those controls are done automatically via the scene’s update loop - seperate from our logic. Curious.