Soooo.... Because I have redesigned the GCORE system, the polygon gestion is kindy outdated. Methods I used *won't* work well with all the new stuffs. So I've just put in place a all new pipeline. Of course, it's kindy the ultimate pipeline to reach (if I ever do that, GLib will be finished and totally awesome, if I can say so
), and some functionnality could get remove.
GLIB PIPELINE VER 2.0 omega
*PRE-PROCESSED*
1.Lightning processing
1.Process a per-vertex based on light type and strenght
2.Multiple pass, many as lights defined
*MAIN*
*USER CONTROL**call GUpdateVBO()*
2.Vertex Processing:
1.Each vertex is acted upon by a Vertex Shader. Each vertex in the active VBO is processed. (turned into a point coordinate)
*USER CONTROL**call GPrimitive()*
3.Optional Geometry Shader primitive processing. The output is one or more primitives. Geometry shader function is always used to return from drawing
4.Primitive Clipping.
5.Scan conversion and primitive parameter interpolation, which generates a number of fragments.
[1.Textures coordinates are interpolated if texturing is set. Use a common data set.]
[2.Light intensity is interpolated if light is set. Use extra per-vertex informations.]
[3.Depht is interpolated using VBO informations.]
6.A Fragment Shader processes each fragment. Each fragment generates a number of outputs.
7.Per-Sample_Processing:
[1.Stencil Test]
[2.Depth Test]
[3.Occlusion query updating]
4.Blending
Fragment sub structure:
-GDepht
-GFragX
-GFragY
-8 colors between 0-16 (0 is white,16 is black)
GFragX is multiple of 8.
Vertex sub structure:
-GVertexX
-GVertexY
-GVertexZ
-GScreenX
-GScreenY
Primitive sub structure:
-°TYPE
-VBO's id of vertex1
-VBO's id of vertex2
...
[] is modifiable options (set by extra functions)
So, what do you think about it ?