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 :)
Fix for Bug #21: implement z-shear.
Fix for Bug #18: DISTORT effect: disappearing triangles
Fix for Bug 19: SWIRL effect: mess if Center out of Region.
beginnings of support for drawing the Region in Vertex3D app.
Minor stuff - comments.
Some progress with Fragment3D app - doesn't compile yet!
Revert the Cubes App.
Add DistortedGridFactory to share Grids among same-shaped DistortedObjects.
revert latest changes to the fragment shader.small things in DistortedObjects.
some improvements for the way we test DistortedObjects.
fix fragment effects :)
remove the 'Color' vertex attribute.
switch precision to low in fragment shader
Make the 'deform' effect continuous when 'center' point passes through (0,0) i.e. middle of the Object.
Avoid a crash on exiting MessageSender
fix in vertex shader
Bugfix in vertex shader (vertices were shot into outer space if P==S, i.e. if center point was exactly equal to the vertex being computed)
Progress with Vertex3D
Minor: deal with IntelliJ warnings
minor
Important bugfix in the vertex shader: there was division by 0 in case Center point was on the edge of the Object, resulting in some vertices being shot into outer space.
Vertex3D almost finished - there's still a problem when parts of Cubes get culled if the Object gets Deformed or Distorted to the left (curiously only the 'left' direction seems to trigger this!)
Cleanup, consistent variable names, minor details.
Further progress with SenderThread: make it possible to actually exit the thread on app exit.
Major: the MessageSender thread used to be running all the time in a tight loop!!
Additional Javadoc stuff.