4365 Commits

Author SHA1 Message Date
pspeed42
079c4c6482 Only allocate the array list when there are results.
A small thing... but significant in some use-cases.
2014-08-12 04:38:03 -04:00
pspeed42
a47fb27e56 WaterUtils tries to hard to avoid allocation... I
fixed three cases that were causing new Vector3fs
to be created.
2014-08-12 04:06:07 -04:00
pspeed42
c98a348fd2 Was a little overzealous in my Float conversion and
converted some stuff that only needs to be float.
Undid that.
2014-08-12 03:54:48 -04:00
pspeed42
3cf0e35a17 Added a setFloat() that takes a Float to avoid
auto-boxing in the case where a Float is already
at hand.
2014-08-12 03:54:19 -04:00
pspeed42
1185d2099b Avoid some teeny-tiny per frame allocations by
only creating a new Plane() and setting the water
height uniform when the water height changes.
Also got rid of the redundant dot() product and
Vector3f allocation in the process.
2014-08-12 03:13:16 -04:00
pspeed42
c0465b73a8 Added a newFrame() method to UniformBindingManager
to signal the beginning of a frame.  Currently this
just grabs the time and tpf values once so as to avoid
per-material Float allocation and time drift within a
frame.
RenderManager now calls this at the beginning of the
root-level render() method.
2014-08-12 03:11:43 -04:00
pspeed42
852ae28605 Removed the redundant camera.update() calls.
Switched many of the lists to SafeArrayList to avoid
per frame iterator allocations.
2014-08-12 02:52:55 -04:00
pspeed42
5d6d2b9bd7 Commented out the onFrameChange() in update() because
its redundant.
Modified setGuiBounding to call the new setCenter(x,y,z)
method instead of allocating a Vector3f each time. (This
method is called any time someone sneezes.)
Fixed a missing line feed in a javadoc comment.
2014-08-12 02:50:08 -04:00
pspeed42
efd6f0bf66 Avoid per-render iterator allocations by using the
SafeArrayList.getArray() method.
2014-08-12 02:48:06 -04:00
pspeed42
6625e572f5 Keep the scene and processor lists as SafeArrayList
for faster/cleaner iteration.
2014-08-12 02:47:34 -04:00
pspeed42
34b4eebb81 Avoid allocation of a temporary float[] array
and avoid allocation of a needless Vector3f array.
2014-08-12 02:46:42 -04:00
pspeed42
28adc784a9 Allow the center to be set without creating a
new Vector3f first.
2014-08-12 02:46:11 -04:00
pspeed42
97b8cb7435 Let triangle intersections fall right on the edge
the diagonal.
2014-08-12 02:45:36 -04:00
Julien Gouesse
2bca84a43d Ports all changes done on the official renderer during several months to the JOGL renderer (I thank a lot the lazy developers) 2014-08-10 18:27:47 +02:00
Julien Gouesse
44f7e8bb84 Updates JOGL (2.2.0) 2014-08-10 15:30:01 +02:00
relu91
ba848391dd UndoSupport, now the editor will reload the gui only if file is changed and some property editors. Also xml auto completition and XmlNavigator 2014-08-09 15:48:59 +02:00
David Bernard
42ae669c6d jbullet: refactor PhysiscSpace.addAll/removeAll
- only add joint with current PhysicNode is BodyA
  => avoid logging warning
  => fix a previous bug in test about getBodyA when adding/removing BodyB
- remove optimisation that by-pass routing made by add()/remove()
2014-08-07 23:03:34 +02:00
pspeed42
1b0f6d0f59 Fix for proper collision distance based on
precedent.  "I had one job..."
2014-07-27 21:47:55 -04:00
pspeed42
0633c0c5bc Fixed an accidental sharing of temp vars vects
that turned out to matter.
2014-07-27 18:31:44 -04:00
pspeed42
d5e20d53d0 Implemented accurate bounding sphere to triangle
collision.  The old code had an implementation but
it missed tons of cases.

For 100,000 random points, the old way would process
that in about 12+ ms.  The new way does it in about
18+ ms... but the old way missed 643 collisions
(180 versus 823).

Plus, with the new way accurate contact normal and
contact point can be provided trivially... so it is.
2014-07-27 18:11:43 -04:00
pspeed42
1ad6a57b32 Added a version of createFloatBuffer that takes
a ColoRGBA array.
2014-07-27 18:08:28 -04:00
Rémy Bouquet
628f73cb79 Merge pull request #158 from Perjin/colorRGBA-bugfix
Fixed clamp method in ColorRGBA.
thanks to Perjin
2014-07-19 07:17:54 +02:00
Jan Ivenz
dacaaa5477 Fixed clamp method in ColorRGBA. 2014-07-18 18:31:40 +02:00
pspeed42
e76e770d17 Modified the multi-slot buffer support to work even
if the buffer is not instanced.  Saw no real reason
not to and it makes buffer support more flexible.
2014-07-11 01:38:14 -04:00
pspeed42
216f874175 Added support for instancing at the mesh level.
(so far only for lwjgl because I'm lazy)
Went ahead and added in divisor support while I was
at it because it doesn't cost anything and there might
be use-cases for it.
Mesh now knows about instances and you can directly
ask it for an instance count.  I haven't added support
for proper bounding box calculation but it should
at least be possible now.
2014-07-11 01:14:47 -04:00
pspeed42
7ca599dfd9 More tabs to spaces. 2014-07-11 00:03:04 -04:00
pspeed42
61cbf16ebc Fixed the duplicate definition errors in normal.vert
...I left them commented out for reference and because
maybe this needs some rethinking.
2014-07-10 03:57:00 -04:00
pspeed42
cce7b0f6de More tab eradication. 2014-07-10 02:49:21 -04:00
pspeed42
9b8b730c44 Added a license header. 2014-07-10 01:55:29 -04:00
Paul Speed
1a4f07b36a Fixing tabs to spaces. 2014-07-10 01:38:19 -04:00
relu91
f1071fd05b Update README.md 2014-07-09 20:14:00 +02:00
relu91
80548dd4a6 Create README.md 2014-07-09 20:10:30 +02:00
neph1
8700871e76 Fixed some merge issues (now it's working properly)
Added test case for IK
2014-07-04 17:59:09 +02:00
relu91
865980291a Update repo 2014-07-04 13:44:33 +02:00
Nehon
1b7421a153 Used correct colorSpace in android Image loaders 2014-07-02 20:55:02 +02:00
Hannes Nevalainen
dd88363900 Screen blend mode for andriod. 2014-07-01 19:23:28 +02:00
Hannes Nevalainen
09b4ef6d82 Screen blend mode for JOGL. 2014-07-01 19:22:13 +02:00
Hannes Nevalainen
9027b748eb Update javadoc for screen blend mode. 2014-07-01 19:19:53 +02:00
Hannes Nevalainen
ccb946e65d Add Screen blend mode. 2014-07-01 19:17:25 +02:00
Christian Gärtner
33c9e6041b [Bounding] Minor JavaDoc fix 2014-07-01 17:53:46 +02:00
Nehon
7356b727c3 Instancing now works with Lighting material, and shadows are supported with instanced geometries 2014-06-29 18:41:32 +02:00
Nehon
a11bfa5e63 Fixed a bug where grouped geom were rendered in shadow pre-pass because they were still in the shadow cast queue 2014-06-29 18:40:31 +02:00
shadowislord
fa41da59a4 * Fix outstanding cloning related issues in InstancedNode
* Throw exception if the geometry's material does not support instancing
 * Test the cloning function in TestInstanceNode
2014-06-28 20:52:30 -04:00
shadowislord
6ddc68278b * Make sure InstancedGeometry is non-batchable spatial 2014-06-28 20:50:10 -04:00
shadowislord
4ae99f9d5d * Fix incorrect reset of Geometry members after cloning 2014-06-28 20:49:21 -04:00
shadowislord
4fdce777b5 * Fix ParticleEmitter.control reference which became incorrect after cloning 2014-06-28 20:02:25 -04:00
shadowislord
564a08672f * Remove InstancedNode.setCullHint(CullHint.Never) from TestInstancedNode example as it is not neccessary 2014-06-28 19:34:53 -04:00
shadowislord
eee43b470e * Added InstancedNode: easy to use instancing with similar API to BatchNode. The underlying scene graph will be automatically optimized so instancing is used as much as possible, thus reducing number of draw calls and improving performance. Unlike BatchNode, it does not copy the geometry's mesh around, but only its transform. In order for it to work, it requires the Renderer to support the GeometryInstancing capability.
* Replaced existing instancing test with TestInstanceNode, which demostrates how to use the new InstancedNode by changing the transform, mesh, and material of every instance periodically.
 * The lower-level InstancedGeometry API rewritten: Users don't need to manage the number of instances they have and their indices. Instead, they can use addInstance() and removeInstance() to add and remove instances as desired. Unlike InstancedNode, InstancedGeometry requires all Geometries to have the same mesh and material, but they can have different transforms.
 * Instancing.glsllib now requires the InstanceData to have world transforms instead of world view transforms. As a consequence, users of instancing must specify in the material the world parameters ViewProjectionMatrix and ViewMatrix instead of ProjectionMatrix.
2014-06-28 19:27:26 -04:00
shadowislord
52b93ba933 * Made Geometry.associate/unassociate To/From GroupNode methods public so they can be GeometryGroupNode implementations outside the com.jme3.scene package
* Added ability to get the geometry start index for GeometryGroupNode implementations
2014-06-28 19:15:39 -04:00
shadowislord
5b7a408bcc * Fix issue where BatchNode.clone() would still re-use the previous BatchNode's data structures 2014-06-28 19:09:20 -04:00