Bugfix in renderChildren (postprocess):
for each bucket, first render all the bucket members , only then render all of their Stencils+Depths (avoids this 'black ring' effect)
Minor.
Split up postprocessing into queue of effects + blit with depth.
Major speedup, BLUR fully optimized now.
Multiblur app, worst case (all 8 cubes blurred with max radius, HIGHEST quality: Nexus5X: 46.7 FPS, Nexus 4: 29.7 FPS.
Minor speedup.
Move on to Stencil on both stages of the BLUR + separate 'blit with depth'.
This works wonders on Nexus 5X ( r=50 quality=HIGHIEST 1,4,8 cubes: 59.3,43.6,41.0 FPS! ) but it somehow fails to clear the DEPTH and STENCIL buffers on Nexus 4....
Correct a bug where postprocessed objects would not re-appear after the app went briefly to the background.
Switch on Stencil in Postprocessing.
This is a clear win on Nexus 5X; on Nexus 4 it is debatable - faster on loads where area to be postprocessed is not much (~20% ?) of the screen; slower otherwise.
Move to a new way to detecting depth of postprocessing halos.This switches off stenciling (hopefully temporarily!)
10% speedup with postprocessing.
Beginnings of support for multi-COLOR attachment Framebuffers.This will be used in OutputSurface's Postprocessing Buffer.
Some improvements to DistortedRenderState.
minor
Fix Stencil in Postprocessing with lower than HIGHEST quality: now any quality works.
Progress with Stencil in Postprocessing: stencil during the 1st stage postprocess (buffer1->buffer2) works now, provided quality is HIGHEST.(lower quality --> render errors, looks like Stencil is not set up correctly then)
Progress with Stencil in Postprocessing (doesn't work still)
Progress with Stencils in postprocessing.
Progress with Magnify.
Beginnings of support of Magnification.
Full support for any-depth MeshCubes.
Progress with any depth MeshCubes.
Change of API in anticipation for MeshCubes of any depth (currently only 0 and 1 work)
Fix creating FBOs with combined DEPTH/STENCIL.
This makes the Stencil app fully work, including rendering thru a FBO.
Progress with Stencil app. Rendering through an intermediate FBO still doesn't quite work.
Add possibility to create FBOs with combined DEPTH/STENCIL.
Simplify setting up DistortedScreen.
1. Correct some bugs in DistortedRenderState2. Thus make the Stencil App work3. New icon for it
Progress with Stencil App; should be working now AFAIK but doesn't.
Beginnings of Stencil App.
Some corrections so that most apps still work on the Android emulator (OpenGL ES 2.0-based)
Merge Transform Feedback
Use Transform Feedback to (optionally) display the Normal vectors.
Dynamic display of bounding rectangles (with coords computed by Vertex Shader and gotten with Transform Feedback) works now.
Major problem: the glMapBufferRange() slows doewn rendering in a major way. Multiblur's FPS:
Nexus5X : 35.4 before -> 12.6 after...
Beginning of support for actual Transform Feedback.
Minor bugfix.
Move from unpacked to packad server-side Vertex attribute buffer.
Merge remote-tracking branch 'origin/master' into transform-feedback
Revert "Progress with Transform Feedback."
This reverts commit e78a30fd53d9463903521921e177028e5c869514.
Revert "This version appears to be fully working on Nexus 5X (it transfers back all the vertices and, if there are no vertex effects, the vertices transferred back are identical to the ones passed)."
This reverts commit 7cf57d72e238092806b3f833d85d16c1a38ac78d.
Revert "Progress with TransferFeedback app - introduce two modes: USEPOINTS 'true' or 'false'."
This reverts commit 21304c55380460c5882b789ea13eb00ffd9a686c.
Revert "Beginnings of support for DistortedEffects.drawPrivFeedback()"
This reverts commit a22c66287b616833b0ad72d81d40cc321e4bc920.
Revert "Some progress with Transform Feedback. Still many bugs all over."
This reverts commit 79921db22e4ff5a3b2e6e3466a39445f5607a695.
Some progress with Transform Feedback. Still many bugs all over.
Beginnings of support for DistortedEffects.drawPrivFeedback()
Progress with TransferFeedback app - introduce two modes: USEPOINTS 'true' or 'false'.
On Nexus5X, it works with 'true' and 'false'. On Nexus 4, it works with 'true', but returns GL_INVALID_OPERATION with 'false'.
This version appears to be fully working on Nexus 5X (it transfers back all the vertices and, if there are no vertex effects, the vertices transferred back are identical to the ones passed).
This however crashes with GL_INVALID_OPERATION during glDrawArrays() when run on Nexus 4.
Progress with Transform Feedback.
Progress with VBOs - this time abstract out a new class, DistortedObject - i.e. everything that uploads something to GPU and thus needs to be auto re-created upon loss of the context.
Preparation for Transfer Feedback: Convert the meshes from client-side to VBOs.
Minimize differences from master branch.
Progress with moving the Transform Feedback functionality from the APP to the library.
Remember the URL with Transform Feedback example.
Do not change postprocessing Quality mid-render but go through the Master.
1) Bugfix for an issue introduced with previous commit2) scale up the BLUR effect radius with MIPMAP levels.
Mipmap levels!
More MIPMAP work.
Beginning of work on Mipmap levels.
Make a MeshCubes object rendered with no effects have its front wall at the screen's surface (so that when we just replace MeshFlat with MeshCubes, it looks more similar)
Simplifications.
Revert "Major refactoring: convert the Matrix Effects to be independent of the resolution of the surface we render to."
This reverts commit ec231614152da2cfdb65c3450cd47da83ee05a6f.
revert the recenr matrix Effects work.
Revert "Minor."
This reverts commit 5fecbdb9d145354d84f0168b434a74d84c192c56.
revert the recent Matrix Effects work.
Revert "Convert next 4 APPs to the new Matrix effects."
This reverts commit d28acefad49451b502424dae12ec8a985007de86.
revert the recent Marix Effects work.
Convert next 4 APPs to the new Matrix effects.
Major refactoring: convert the Matrix Effects to be independent of the resolution of the surface we render to.
Re-write the first 15 apps to work with this.
Minor
Bugfix: create the Postprocessing buffer immediately.
1) bugfix computing Gaussian BLUR kernel (for odd radii, the last offset was incorrectly computed)2) introduce more advanced method of detecting BLUR halo (compute depths in a new way)
Roll back the recent MIPMAP work.
Preliminary support for MIPMAP levels of the postprocessing buffers. (doesn't work yet)
Node: Sort children IDs when generating their list for the Map of (List<Children IDs>,NodeData).This makes two internal nodes with the same children always isomorphic, no matter what is their order.
Release all TREE FBOs in Distorted.onPause().
Major:
1) in the Library, fix the fact that some applications (those that were creating their DistortedSurface objects outside of onSurfaceCreated or onSurfaceChanged) would not render after the activity went to background (press POWER to see that).2) in the Apps, call the new 'Distorted.onPause()' API to fix the above problem...
Reset EffectsPostprocess' ID back in 0 on Destroy.
Children now properly sorted into Postprocessing Buckets.
Messing around with the AttachDaemon (from now on a more generic DistortedMaster).
In preparation for thr SORT job that will let us sort the children Nodes into postprocessing Buckets.
Actually implement proper postprocessing Buckets.
Bugfix (before we couldn't call postprocess() more than once per frame)
Separate the Postprocessing Effects to their own DistortedEffectsPostprocess queue.This partly breaks Multiblur (to be debugged)
Move the Postprocessing buffers to OutputSurface.
When detaching Nodes, do make sure we also cancel any ATTACH jobs that might be pending.
Improve Projection.
Bugfix - POSTPROCESSING FBOs weren't properly released!
Merging blurred surfaces mostly ok now (blurred image still appears a bit shifted down for some reason)
Bugfix (samplers need to be sent to shaders as INTEGER Uniform
It now automatically chooses OpenGL ES 2.0 and GLSL 100 or OpenGL ES 3.0 and GLSL 300.
Postprocessing effects will not work on OpenGL ES 2.0 contexts.
Make it more flexible; now it can run almost all apps on OpenGL 2.0 contexts; OpenGL 3.0 ( with GLSL 3.00) required for POSTPROCESSING.
Upgrade from GLSL 1.00 to GLSL 3.00 ESIntroduce separate BLUR1 and BLUR2 shaders, the second one marging (writing to gl_FragDepth still does not work)
Simplify BLUR shader.
New 'glClearColor' and 'glClearDepthf' APIs in OutputSurface. This fixes the 'transparency' regressions from last commit.
Progress with Multiblur.
This introduces some regressions with transparency (see: 'Different Bitmaps' and 'Around the world' )