I'm evaluating jME for use in our upcoming project, and so far it looks pretty solid. However some features are implemented in an unusual way or non-existent. Before implementing them ourselves I'd prefer to get some answers here.
- Model format converters actually create scene tree while loading, but then serialize this scene tree, discard it and load it back. These saving/loading steps look highly redundant and unnecessary, is there some specific reason for them? Other then testing jME native model format functionality.
- Texture management is ugly. There's practically no nice way of disposing textures other then kill em all. Also no way to async load textures. Setting up texture management will be our priority task, or maybe I miss something here?
- Shader object management is worse then texture management. There's no such thing as 'shader object' at all, looks like setting up two nodes with different uniform values will load and compile shaders twice. Do I miss some nice way of doing things here? Say if I need to splat terrain using a couple of different shaders for 10 or so passes?
- Would be great to decouple uniforms from shaders altogether. So we can setup uniform values at any scene level and they will all be applied to current shader on geometry rendering. It's nice to control ligths & environment uniforms at the root level, while set up individual material values at Geometry level.
- Queue performance tip: in complex scenes with low depth complexity (like strategy or simulation games), it's much more efficient to minimize state changes instead of rendering opaque objects front to back. Can improve frame rates 2-3 times.
Would be great to get some feedback,