Various relatively minor cleanups.
1. (hopefully) finish the 'Save' app (now we can adjust the size of the resulting file)2. Fix one long-standing bug in almost every single app.
Move the 'Save' app to using a DistortedFramebuffer.
Improvements for DFramebuffer.
Fix the 'Save' app so that the saving thread does not run all the time in a tight loop
Javadoc
Fix with Projection
Turn the former 'FOV' app into 'Projection' app that also checks the (x,y) the camera looks at.
Move the *List classes into static members of DistortedFramebuffer and DistortedObject.
Cleanup
DistortedFramebuffer should we working now, including deletions.
Simplify SurfaceViews
Move DistortedNode and Distorted to use the new DistortedRenderTarget.
Minor progress with RenderTarget
New DistortedRenderTarget - preparation for being able to render to any FBO (screen, offscreen pixmaps)
Minor stuff
Fix the 'Save' app on Android API >=23 (we need to explicitly ask for write permission)
Add 3rd dimension to the Deform effect.
Improve the Deform app
DEFORM: add support for Regions
Polish up DEFORM.
re-write the deform effect
rearrange comments
Merge remote-tracking branch 'origin/master'
Allow more than the default number of concurrent VERTEX and FRAGMENT effects in Effects3D.
New vertex effect 'PINCH'
Complete moving center to 3D.
Make the effect Center be always 3D.
Unify Effects3D and Matrix3D (still incomplete!)
Encode more info in the EfectNames enum.
Progress with WindManager.
Dynamics: Introduce 2 Modes of operation:
- 'random access' mode, where we are able to call a single Dynamic from multiple thread simultaneously.- 'sequential' mode, which only permits sequential interpolation from one client.
The second mode has an advantage when one needs to change mDuration: it keeps on interpolating smoothly. In the first mode, this is not possible.
2 bugfixes:
- in Dynamics, it has to be t<=0.5 (rather than t<0.5) (see comment in code)- in EffectQueueVertex, we need to postprocess() the last time, when effect is finished but not removed!
Minor details
Progress with Wind
Tidy up 'Cubes' app
Bugfix
Bugfix (sometimes, when t=0.5 exactly, it wouldn't recompute Noise in case of PATH mode)
re-generate noise after passing each Point.
Flag app finished
Next fixes for issues with 'jumping' path when noise is on. (and a whole lot of commented out debugging)
1. Attempt to deal with unstable Orthonormal Base in Dynamic class (so far unsuccessful)2. Improvements to the 'Dynamic' (and by necessity, 'MovingEffects') applications (to be able to debug the previous)
1. Workaround for th issue that my shitty Nexus 4 crashes while compiling the vertext shader (actually the wave function)2. Improvements to the Dynamics app
minor stuff
Fix 4D and 5D noise, make noise N dimensional.
Bugfix for the fishy loops in 2D noise.
Some corrections for the new Noise, it is still fishy though (some suspicious loops form - see it with the ''Dynamics" example app, 2D, 3 points)
Completely redesign Noise in the Dynamics and move all the complexity to the parent class.
something does not work with it now :)
Move most of the NOISE complications from DynamicND classes to the parent Dynamic class.
New constructor to DistortedCubes - easily create a hole-less Cuboid.
Beginnings of a new example app - a waving flag.
No actual waving yet!
Javadoc.
Correct Javadoc issues
Comments
Make the WAVE effect 5D (extra parameter 'offset')
Add Static5D and Dynamic5D.
Improvements to comments.
Reflect the fact that we are no longer caching sine and cosine in the EffectNames comments.
swap the 2nd and the 3rd parameters in the WAVE effect and improve comments for the WAVE user API.
Switch off the pre-compulting of sin and cos in CPU as it turns out that those two are single-instruction functions on any modern GPU ( http://www.gamedev.net/topic/322422-number-of-gpu-cycles-for-cos-and-sin-functions/ - link form 2005 ! )
Improve the comment the WAVE effect.
Correct one more issue with computation of WAVE.
Correct one issue with incorrect shadows in WAVE when V.z <0 .
Now we can add up the WAVE effect to others with smooth shading! Remaining issues:
- when angle A < 0, the shades are wrong- sometimes (check with the 3D vertex & Fragment effects' app) we get black spots at seemingly random points. Looks like computational instability again.
Shades in the WAVE effect fully working, if the effect is the only one.
Remaining: combine the shades with other effects!
Shades of the WAVE effect (almost!) working.
small improvements in DISTORT
Better normals in DISTORT
Vertex positions fully 3D now. Remaining: normals!
Preparation to make the WAVE effect fully 3D
Adjustments for EffectQueueVertex.postprocess()
Improvements for WAVE
Beginnings of the WAVE effect.
Correct an important bug in the vertex shader.
b = 1/a if a!=0, 1 otherwise was incorrectly computed as b = 1.0 / (a+1.0-sign(a)). This, when 0<a<2^-24, suffers from 'round-off error': then a+1.0 = 1.0 (sic!) thus b = 1/0 !.
Correct way: b = 1.0 / ( a - (sign(a)-1.0) )
Fixes for fragment effects in Effects3D.
Fix for Bug #17: Regions of Fragment Effects migrate.
Fix is: don't send vertex position and the Fragment Effect region to the fragment shader already multiplied by the ModelView matrix (that introduces the imprecise interpolation because of the projection effect) but simply send both of them in local coords.
Remove the MACROBLOCK Effect altogether.
Finally fix the 'when rendering though an FBO, the other side of triangles is visible'
Fix the 1x1 case! Before it used to be impossible to create a DistortedBitmap just with 2 triangles!
Remove the 'invert' option from DistortedProjection - this was making the DistortedNode-based apps not show the Objects, because the winding of triangles was wrong.Now however the DistortedNode based stuff is inverted top-down :)
Further simplify and speed up the DistortedCubes target.
Simplify and spped up the DistortedCubes target.
Correctly tesselate the DistortedBitmap target!
Advanced tesselation of DistortedCubes should be done! This fixes Bug #22
beginnings of support for advanced tesselation in DistortedCubes target (still doesn't quite work)
minor formatting stuff
Tesselate DistortedBitmaps better - now all the triangles long edges point at the center of the bitmap, which makes z-distortions look much better!
Cull back faces of triangles.
Minor stuff - make the Bitmaps and the Cubes agree on the size of the grid, mostly.
Fix for Bug #16: When rotated at an angle, surfaces get increasingly transparent.
This also fixes the saturation, chroma, alpha + contrast effects, while completely breaking macroblocks :)