Update Myanmar flag.
Progress making it possible to apply Vertex Effects only to some Components of a Mesh.
1) Cube: convert it to the latest library. Main difference: objects are rendered better, individual cubits have rounded corners.2) Examples: some adjustments to MeshJoin & Predeform3) Library: fix a bug in main_vertex_shader's 'degree' function, which didn't work proprely in case of a vertex which was exactly at the center (i.e. vector PS was zero)
Change 'tag' to a more appropriate name - 'association'.
Introduce 'tags' (soon to be renamed to 'associations') to Mesh and VertexEffect.A 'tag' is a way to associate a Vertex Effect only to a subgroup of a given Mesh's vertices (more precisely, only to an arbitrary subset of its Components)
Fix licenses :)
Have VERTEX_QUATERNION, VERTEX_ROTATE and VERTEX_SHEAR modify inflate vectors.Split Vertex attribute array into two (the one modified by preapply effects and the one not)
Speedup for preapply
First attempt at the MeshBase.apply(VertexEffect) API.
Remove the MeshBase.{set/get}Stretch API altogether.
A lot of changes.
1) main vertex shader: remove support for degree_object. This functionality will hopefully come back when we introduce other than circular regions.2) MeshBase: remove the need to set a Bounding box (this is the point of the whole thing - we wanted to get rid of this so that the advances in MeshJoined will be easier)...
Add the first two VERTEX 'pseudo-matrix' effects: VERTEX_MOVE & VERTEX_QUATERNION i.e. implementations of those two MATRIX effects in VERTEX queue.
The point(s):
1) preparation for the upcoming MeshBase.preApply(VertexEffect effect) API that's going to supersede the current much more limited MeshBase.apply(MatrixEffect effect)...
Minor.Looks like MeshBase.join() actually works.
Further corrections.
Rename all the classes that are not exported to application to 'Internal'
Correct Distort.
Make Distort truly 3D.
Redefine the Vertex Region from (x,y,r,unused) to (x,y,z,r). This takes into account the 'Z', which makes it possible to warp only one side of a 3D Mesh like Sphere.
Also corresponding changes in applications.
Improve computation of the thickness of the postprocessing halo - should be independent of the size of underlying object now.Still it is not completely ok, it appears to depend on the ModelView matrix (use the Effects3D app to rotate the object around Z-axis to see this)
Make the Effects3D app a bit more user-friendly.
Progress with Inflate (building block of postprocessing effects: the proper way of marking a halo around a Mesh)'Inflate' app testing the machanism. MeshFlat appears to be working, now we only need to fill up the per-vertex Inflate vector in the MeshCubes.
Added a new attribute to vertices of a MeshBase object: the vec3 'inflate' vector.This vector describes the direction where the vertex needs to be moved when we 'inflate' the whole mesh.If the mesh is locally smooth, this is simply the normal vector; otherwise (for example in the corners of the MeshCubes) - not....
Simplify Main OIT shader.
Progress with non-postprocessed OIT.
Status: compiles, but fails to work on both Adreno and Mali. Crashes the app (Adreno) or the whole system (Mali)
Update the 'main' shaders for OIT.
Fixes ported from the 'OIT' branch:
- remove counting of transparent pixels- various fixes for the Mali GPU
Move all the knowledge about Vertex and Fragment effects to their respective classes.
Progress with support for Effect classes.
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...
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.
Simplifications.
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)
Minor
Preparation for shader optimization
Back out the last change.
Effect-independent normals.
Preparation for effect-independent computation of the nermal vectors.
Define float precision in Vertex Shaders to the same like in Fragment Shaders.
Blurred image visible now!
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
New vertex effect 'PINCH'
Complete moving center to 3D.
re-generate noise after passing each Point.
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
Make the WAVE effect 5D (extra parameter 'offset')
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) )
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.
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 #18: DISTORT effect: disappearing triangles
Fix for Bug 19: SWIRL effect: mess if Center out of Region.
remove the 'Color' vertex attribute.
Make the 'deform' effect continuous when 'center' point passes through (0,0) i.e. middle of the Object.
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
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.
- Javadoc for EffectNames- make Matrix effects consistent with the rest (center of effect as last parameter!)- bugfix for yesterday's bugfix (we only want to send 'EFFECT_REMOVED' messages if it was really the Application that called 'abortAll' and not when we are cleaning up everything)
Major push towards simplifying DistortedObject's public API.Beginning of work on VERTEX Effects - does not compile ATM!
Add license
Initial commit