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....
Progress with Stencil in Postprocessing (doesn't work still)
Progress with Stencils in postprocessing.
1. Correct some bugs in DistortedRenderState2. Thus make the Stencil App work3. New icon for it
Some corrections so that most apps still work on the Android emulator (OpenGL ES 2.0-based)
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.
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.
Mipmap levels!
More MIPMAP work.
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.
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.
Separate the Postprocessing Effects to their own DistortedEffectsPostprocess queue.This partly breaks Multiblur (to be debugged)
Move the Postprocessing buffers to OutputSurface.
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)
Progress with Multiblur.
This introduces some regressions with transparency (see: 'Different Bitmaps' and 'Around the world' )
Advances in Multiblur - breaks BLUR for now.
simplify blitPriv()
Introduce Effects.blitPriv() (faster than previous drawNoEffectsPriv)
Speed up shaders (both compilation and execution) by explicitly enabling only the needed effects.
Introduce 3 types of Surfaces: System, Tree, User
Fix OutputSurface.resize(): before it couldn't be called mid-render.
A lot of different fixes.
A lot of issues still there:
1) if we only render part of the tree, tree isomorphism will sometimes not work correctly2) when we change Effects that are inside Trees mid-render, even if we detach() the affected parts of the Tree first, for the last frame the new Effects will be used...
Simplify yesterday's refactoring.
Major: change of API.
Split DFramebuffer into Framebuffer and Screen; introduce the 'DistortedInputSurface' and 'DistortedOutputSurface' interfaces.
Some fixes for issues discovered by the Multiblur app.
Small progress with Blur.
Try using OpenGL ES 3.0 everywhere (but if device does not support it, try creating 2.0 context - this is important because of the emulator!)
Manifest: require OpenGL ES 3.0.
Minor.
Still one more problem in boundingVertices.
Postprocessing effects: remove support for Center
boundingVertices fully work now!
Debugging
Progress with getting Mesh'es bounding rectangle. Still doesn't quite work yet (visible : 'Cubes' app with a 0111 Mesh)
Progress with getting Mesh'es bounding rectangle.
Correct a bug with Postprocessing Shortcut.
Move more intelligence to EffectQueuePostprocess.
Minor reorganization.
Progress with multi-program rendering.
Naive implementation of blur works now!
Blurred image visible now!
Initial version of the first post-processing effect - BLUR - ready for the first app!
Further progress with Postprocessing. Now the missing bits are:
- implement Distorted.getFBO()- implement Distorted.clean()- improve compilation of DistortedPrograms so that the NUM_POSTPROCESSING and names of POSTPROCESSING effects will be #defined.
progress with Postprocessing.
rename all the 'grid' variables to 'mesh'.
Rename Grid to Mesh
New DistortedProgram class.
Add API to render from a FBO to another FBO
Again change of API. Now instead of the 'DistortedEffects.draw() and DistortedTree.draw()' we have 'DistortedFramebuffer.renderTo()'
Change of names.