diff options
-rw-r--r-- | docs/GL2ES2Pipeline usage guide.md | 7 | ||||
-rw-r--r-- | docs/perf_guide.txt | 57 |
2 files changed, 32 insertions, 32 deletions
diff --git a/docs/GL2ES2Pipeline usage guide.md b/docs/GL2ES2Pipeline usage guide.md index db61b9e..41a9ee9 100644 --- a/docs/GL2ES2Pipeline usage guide.md +++ b/docs/GL2ES2Pipeline usage guide.md @@ -84,13 +84,11 @@ The shader will compile and run fine, but you will get no data in that variable. ##GL2ES2Pipeline limitations
These limitations will be written out to standard err if they can be detected by the pipeline. In many cases they cannot, and will either be ignored or throw an exception.
-The GL2ES2 pipeline only supports a subset of the Geometry data types and formats.
* Coordinates must be defined and float type, colors must be float type, if defined.
-* J3DGraphics2D of Canvas3D is not supported
-* Rasters and Decaling is not supported.
+* Decaling is not supported.
* Model Clip is not supported and must be re-implemented in shaders
* QuadArray or IndexedQuadArray cannot be supported.
-* Texture Coordinate generation cannot be supported.
+* Texture Coordinate generation cannot be supported, examples of it's use can be found in SimpleShaderAppearance in the Java3d-Utils.
* Texture Lod, Filter, Sharpen and Combine cannot be supported
* Texture3D cannot be supported.
* Accum style anti-aliasing cannot be supported.
@@ -100,7 +98,6 @@ The GL2ES2 pipeline only supports a subset of the Geometry data types and format * Antialiasing enable/disable GL\_MULTI\_SAMPLE is gone, but the method glSampleCoverage exists still, so if the caps support it then it must be on
GL\_SAMPLE\_ALPHA\_TO\_COVERAGE and GL\_SAMPLE\_COVERAGE can be enabled under ES2
* Display lists are removed, so if you are not using by_ref geometry you are likely to need to add System.setProperty("j3d.displaylist", "false");.
-* TextureFillBackground is not supported, but geometry Background works
* Line patterns cannot be supported
* Screen door transparency cannot be supported
* AutoMipMaps are disabled as pure ES2 has a separate system glGenMipMaps but GL2ES2 doesn’t support this
diff --git a/docs/perf_guide.txt b/docs/perf_guide.txt index fa07779..df4d077 100644 --- a/docs/perf_guide.txt +++ b/docs/perf_guide.txt @@ -13,6 +13,19 @@ application. II - Performance in the API + + Due to some introduced bugs in the Java3D API some of the most important performance features + are effectively disabled. As of Java3D 1.7.0 they can be turned back on but will require some + code changes through any given project due to the possibility of reliance on the features + that broke the compilation system. + In order to maximize compilation of the scene graph you must have these properties set: + j3d.defaultReadCapabilities = false + j3d.defaultNodePickable = false + j3d.defaultNodeCollidable = false + Also, contrary to documentation you MUST manually call compile on BranchGroups and SharedGroups before adding + them to the scene graph, it does not happen automatically. + + There are a number of things in the API that were included specifically to increase performance. This section examines a few of them. @@ -327,19 +340,19 @@ performance. that don't follow these guidelines completely. - Behaviors - One of these cases is the Behavior scheduler when there - are pending WakeupOnElapsedTime criteria. In this case, - it needs to wakeup when the minimum WakeupOnElapsedTime - criteria is about to expire. So, application use of - WakeupOnElapsedTime can cause the Behavior scheduler to - run more often than might be necessary. + One of these cases is the Behavior scheduler when there + are pending WakeupOnElapsedTime criteria. In this case, + it needs to wakeup when the minimum WakeupOnElapsedTime + criteria is about to expire. So, application use of + WakeupOnElapsedTime can cause the Behavior scheduler to + run more often than might be necessary. - Sounds - The final special case for Java 3D threads is the Sound - subsystem. Due to some limitations in the current sound - rendering engine, enabling sounds cause the sound engine - to potentially run at a higher priority than other - threads. This may adversely effect performance. + The final special case for Java 3D threads is the Sound + subsystem. Due to some limitations in the current sound + rendering engine, enabling sounds cause the sound engine + to potentially run at a higher priority than other + threads. This may adversely effect performance. - Threads in General There is one last comment to make on threads is general. @@ -351,12 +364,12 @@ performance. etc.), more CPUs could be utilized. - Switch Nodes for Occlusion Culling - If the application is a first person point of view - application, and the environment is well known, Switch nodes - may be used to implement simple occlusion culling. The - children of the switch node that are not currently visible may - be turned off. If the application has this kind of knowledge, - this can be a very useful technique. + If the application is a first person point of view + application, and the environment is well known, Switch nodes + may be used to implement simple occlusion culling. The + children of the switch node that are not currently visible may + be turned off. If the application has this kind of knowledge, + this can be a very useful technique. - Switch Nodes for Animation Most animation is accomplished by changing the transformations @@ -385,13 +398,3 @@ performance. and better picking performance, use PickRay instead of PickCone/PickCylnder unless you need to pick line/point. PickCanvas with a tolerance of 0 will use PickRay for picking. - - - D3D user only - Using Quad with Polygon line mode is very slow. This is because - DirectX doesn't support Quad. Breaking down the Quad - into two triangles causes the the diagonal line to be displayed. - Instead Java 3D draws the polygon line and does the hidden surface - removal manually. - - Automatic texture generation mode Eye Linear is slower - because D3D doesn't support this mode. |