
The number one killer for mobile and integrated GPUs is said to be multi pass rendering due to their limited bandwidth and shared memory architecture. The results are in some cases not as expected. So I read some docs like “ Fast mobile shaders” and tested what really kills those GPUs. Even current netbooks and office PCs run horrible (except FixedFunc, but I don’t want to be stuck at it any longer), although they claim to support shader model >= 2 and DirectXzy. My employer cut the nVidia GPU from my company notebook and jME3 doesn’t run very well on a “Mobile Intel® 4 Series Express Chipset Family”, neither does it on my 7 year old notebook (ATi Mobility Radeon 9700). I know you guys designed jME3 for high end hardware, but there are a lot of good reasons for me to start working on this. Anyway, I’ll commit it to google code as soon as it is a little more mature. It might also be a solution to pass the number of lights as an uniform and #define MAX_LIGHTS to prevent re-compilation if the number of lights changes. It will support an arbitrary number of lights by passing the actual number of lights as a #define to the shader at compile time. I’m trying to make it as compatible as possible to Lighting.j3md in terms of parameters and rendering output. I’m currently working on a slim single pass lighting system optimized for weak hardware (integrated or just old). TestSinglePassLighting.NUM_LIGHTS (if the shader doesn’t compile, set this to 1).

The settings in Materials/Rock.j3m (preview not always working).Dynamic Parallax Occlusion Mapping with Approximate Soft Shadows (LightingSP_POM.j3md).MultiPassParallelLightingRenderer + Lighting_MPPLR.vert + Lighting_ag.SpotLight support for all Lighting_* shaders.
