Testing the audio , animation and input synchronization of Jpony editor. This is my final phase of testing. I’m going into full development of my first game next week
Have you thought about rewriting jME’s terrain system yourself?
First, I have no time really. Second, the main component of JME’s terrain system is the editor in the SDK. Rewriting that is a pretty huge undertaking.
Third, if you supply your own terrain then I sort of already have. It’s not difficult to adapt the IsoSurface stuff to height maps. I did it already for a back-burnered game project Dragonfly Odyssey.
The only reason i still work on classical terrain is that i never managed to implement that transvoxel algoroithm, or any other lod supporting voxel mesher…
Easy LOD is imho the one big advantage of classical heightmap with a grid mesh
If the voxels are based on a heightmap then the LODs are easy to generate.
The edge stitching that JME’s terrain does is completely unnecessary. Just dropping edge skirts is enough to seal the gaps at the LOD boundaries.
Even if IsoSurface isn’t used for the terrain generation, the paging library is already more flexible for plugging things in (like rocks, trees, grass, whatever… at different grid sizes) than JME’s terrain will ever be.
Plus, it is sensibly based on center cell + radius grid instead of the odd 2x2 choice that I remember JME’s terrain uses.
Edit: someday I may provide a traditional height mapped terrain generator. I almost did it for Dragonfly Odyssey (it does for the far terrain) but I liked the meshing of the voxel version better in the end.
Well, the big benefit of iso data based terrains are caves, overhangs and so on. If you plainly rely on heightmap data i think a simple grid based solution work better.
Yeah, i was not defending jmes terrain, i use a custom build grid with a global paging service.
writing on the phone so no long detailed answer…
For Dragonfly Odyssey, I did this at first because it was easy… but I went back to the IsoSurface version even though it’s just based on a heightmap because for some reason the mesh looked better. Nicer curves or something… I don’t remember exactly but having the vertical ‘cliffs’ subdivided was nice for some reason I don’t recall.
I think this approch with the newer tessealtion shaders could also work for a 3dtexture heightmap.
Do a cylinder instead of a slice, and modify all vertex position to the next fitting border (up or down) in the 3dmap.
Lod could be done nowadays by not using a fixed mesh with lowering density of vertices, but by using a tesselation shader.
The real advantage here is that you can directly scale the quality based on framerate and other factors, as no geomtry building phase is required.
The down side is that it becomes harder to accurately manage all of the other LOD’ed stuff like grass and trees… which will still likely need to be grid based at least.
Also, this may not still be true but I found vertex displacement in shader to be slower than simple meshes… a per frame cost versus a tile-boundary-crossing cost. Perhaps on modern cards the texture lookups in vertex shaders are fast enough and the pipeline issues that causes aren’t as big a deal.
- Work on colour variation
- move LOD calculations into the shader
- make the grass propagate across an arbitrary mesh
- improve wind - currently with only one random octave it looks more like an ocean
extend core for person project:
- make it so the grass can be flattened, by say, a tank
future future :
- include normal information and make it a fur shader
- hijack the animation system and make a human hair shader
video shows LOD debugging, zooming in to show difference between 3 levels of LOD :
0 - blue, closest, full detail
1 - yellow, medium, half detail, half density, double thickness
2 - green, far, quarter detail, quarter density, 4 x thickness
it’s not configured to look good from above, only really from ‘eye’ level, for now.
It also shows rotating around the grass, since its not camera aligned there is no weird spinning effect
Are you running SSAO as well?
I reworked my deferred rendering pipeline, it now features shadows. I also tested it on my new model, which still needs some work:
Another round of testing from my jpony development / debug project. I’ve decided to make this into an actual mini game so I’ll have something to put on steam while I’m developing my first full length game.
Here’s a video showing some early testing of my Navigation Toolset for JME.
Obviously far from perfect but in somewhat working order.
If you pass the waypoints to a voronoi generator it finds automatically the shortest paths between them, and as a bonus you will always know the way to the nearest waypoint from every position inside a field…
@Apollo whats the terrain systen you are using?
@zzuegg It is my own implementation of T. Ulrich’s ChunkedLOD, mapped to the spherical shape of a planet using the six faces of a cube.
sounds scary and complicated D:
and we miss you on the IRC
By the way Jmonkey friends
www.freenode.net our channel is #jmonkeyengine
Come by and chat.