(And I do realize I have the benefit of analyzing the aftermath, hindsight is 20/20, etc.) Included a big long comment about the right way to implement this optimization.
However, this is not ideal, as this code will trigger a recompilation of the shader on each pass, in case there is more than 1 lighting pass.
Another way could be to multiply the indirect lighting contribution by the Ambient light color in the shader, and always perform the indirect lighting code (even without light probe).
As in the second pass ambient light is forced to 0, the indirect lighting contribution would be nullified. However we'd have to force ambient light to 0 if there are no light probe.
This would also have the nice side effect of having a way to dim or boost indirect lighting with the ambient light color.
a client are running on the same instance. This should cover
99% of the cases where this would come up... and the others
can't really use this service anyway and so must disable it.
already registered. This avoids one of the issues of a client
running in the same JVM as a server that already registered these
classes. This was the easy fix.
same JVM. a) this makes a good example of self-hosted style
LAN multiplayer games, and b) it causes the serialization bug
to show up so I can fix it. (Already fixed it and that commit
will be next... it's almost like TDD.)
to make a more complete example. It should now be relatively
well behaved through all normal shutdown paths.
Modified the server to gracefully close the client connections
when shutting down rather than just letting the sockets die.
* Y hotspot is top in jogl, and bottom in jme
* in jme when mouse is invisible it should be confined into the window (on mac it could go out of the window)
* when window doesn't has the focus the mouse should not behave like when has the focus like
* trying to re-center
* stay invisible
* master: (94 commits)
First attempt to fix a bug reported by david_bernard_31, the size of the strings in the shader code was wrongly computed for the JOGL backend
Allows to choose between the forward compatible profile and the backward compatible profile in the JOGL backend
Displays the JOGL version instead of the NEWT version
Updates JOGL (2.3.2)
Bugfix: fix to importing blend files with linked content.
native loader: set lwjgl library path for lwjgl3
Updated lwjgl3 module to use LWJGL 3.0.0b #35 which is the current stable build.
Change duplicated docstring in FlyByCamera.unregisterInput
light : fixed pointLight v. bounding sphere unit test
light : replaced duplicated code by methods from Intersection
Removed native library jemalloc.dll for LWJGL3 as this will not be needed until 3.0.0b and after.
light : added unit tests for the new support of bounding spheres intersections (for lightFilter)
Fixed Issue #46 : The MaterialViewer will now simply ignore not available textures instead of crashing
Lights (see #362) : added light v. sphere intersection, and implementations of intersectsSphere(), second attempt
GImpactCollisionShape : fix for #188, added a call to updateBound() in native jni binding, just after creating the shape, (native createShape() method)
Bugfix: fixed a bug that caused importer to crash when the author of the blend file assigned non existing UV coordinates group name to a mesh.
Bugfix: fixed a bug that caused subdivision surface modifier to crash if at least one not connected vertex was in the mesh.
The LWJGL 3 renderer was missing a call to GLContext.createFromCurrent(), sorted now.
Changed the default app title in AppSettings to use the full name string from JmeVersion. This way no more manual changing of this will be needed for future versions. This also closes#320 which highlighted this issue. Thanks @8Keep.
Fixed#316 where some post processing effects were not working when using OPENGL_3 renderer due to an error in the fragment shader.
...