IOhannes m zmoelnig a écrit :
cyrille henry wrote:


i try anything i can think of, but i did never change the drawing behaviour : it work with cube in draw quad or draw triangles mode, but no line.

...

so it actually was opposite to what you experience.
mabye i introduced some problems when i defaulted to "triangles" (mainly because that's the major default mode in Gem)

i'll try in the next days...


did you find a good resource to explain all of this?

no, but i didn't even search. probably matthias's mail points to some good ressources.
thanks it help, event if i still have lot's of questions...



ouch, ouch, Ctrl-Z
of course my stupid little message boxes should be followed by something like...

|
[route read       ]
|                 |
[symbol]          |
[open $1(         |
|                 |
[glsl_geometry]   |
                  |
+-----------------+
|
[glsl_program]


sorry for the confusion...

no problem, that's what i understand.

so, to keep you inform, here is the 1st goemetry shader i'm working on.

it just replace triangles with pyramids...
#version 120 
#extension GL_EXT_geometry_shader4 : enable

void main(void)
{
        //increment variable
        int i;

        vec4 pos1,pos2, pos3, pos4; // tmp
        vec3 high;

        for(i=0; i< gl_VerticesIn; i += 3){ // for all triangles
                pos1 = gl_PositionIn[i];
                pos2 = gl_PositionIn[i+1];
                pos3 = gl_PositionIn[i+2];
                pos4 = (pos1 + pos2 + pos3) / 3.; // center of the triangle

                high = 10.*cross(pos2.xyz-pos1.xyz,pos3.xyz-pos2.xyz); 
                        // hight and orientation of the piramide

                high = normalize(high);
                high *= length(pos2-pos1);
                pos4.xyz += high;

                gl_Position = gl_ModelViewProjectionMatrix * pos1;
                EmitVertex();
                gl_Position = gl_ModelViewProjectionMatrix * pos2;
                EmitVertex();
                gl_Position = gl_ModelViewProjectionMatrix * pos4;
                EmitVertex();
                gl_Position = gl_ModelViewProjectionMatrix * pos3;
                EmitVertex();
                gl_Position = gl_ModelViewProjectionMatrix * pos1;
                EmitVertex();
                EndPrimitive(); 
                        // new primitive
        }

}

void main()
{       
        gl_Position = gl_Vertex;
}


void main()
{        
        gl_FragColor = vec4(1.0,1.0,1.0,0.6);   
                // set color
}

#N canvas 685 31 564 661 10;
#X msg 26 105 print;
#X msg 14 320 print;
#X msg 15 461 print;
#X floatatom 185 382 9 0 0 0 ID - -;
#X floatatom 160 154 9 0 0 0 ID - -;
#X obj 204 447 print linking;
#X obj 183 404 pack 0 0 0;
#X msg 15 217 print;
#X floatatom 143 260 9 0 0 0 ID - -;
#X obj 71 18 gemhead;
#X msg 186 426 link \$1 \$2 \$3;
#X obj 71 43 alpha;
#X floatatom 110 485 5 0 0 0 - - -;
#X floatatom 152 485 5 0 0 0 - - -;
#X floatatom 197 486 5 0 0 0 - - -;
#X obj 66 463 glsl_program;
#X obj 169 51 t b b b b;
#X msg 244 84 -1;
#X obj 167 32 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 161 132 change;
#X obj 143 239 change;
#X obj 187 359 change;
#X obj 226 548 t a b;
#X obj 226 591 newWave 25 25;
#X msg 285 563 D1 0.01 \, D2 0;
#X obj 284 542 loadbang;
#X msg 406 566 2;
#X obj 71 107 glsl_geometry;
#X obj 60 217 glsl_vertex;
#X obj 61 334 glsl_fragment;
#X msg 104 83 open tri2p.geo;
#X msg 105 195 open tri2p.vert;
#X msg 86 305 open tri2p.frag;
#X obj 169 6 loadbang;
#X text 197 29 reload;
#X obj 322 98 gemwin;
#X msg 332 53 create \, 1;
#X msg 341 75 destroy;
#X obj 69 502 rotateXYZ -55 10 0;
#X text 290 144 replace triangle with piramides;
#X obj 63 546 triangle;
#X connect 0 0 27 0;
#X connect 1 0 29 0;
#X connect 2 0 15 0;
#X connect 3 0 6 0;
#X connect 4 0 6 2;
#X connect 6 0 10 0;
#X connect 7 0 28 0;
#X connect 8 0 6 1;
#X connect 9 0 11 0;
#X connect 10 0 5 0;
#X connect 10 0 15 0;
#X connect 11 0 27 0;
#X connect 12 0 38 1;
#X connect 13 0 38 2;
#X connect 14 0 38 3;
#X connect 15 0 38 0;
#X connect 16 0 17 0;
#X connect 16 1 32 0;
#X connect 16 2 31 0;
#X connect 16 3 30 0;
#X connect 17 0 21 0;
#X connect 18 0 16 0;
#X connect 19 0 4 0;
#X connect 20 0 8 0;
#X connect 21 0 3 0;
#X connect 22 0 23 0;
#X connect 22 1 23 0;
#X connect 24 0 23 0;
#X connect 25 0 24 0;
#X connect 26 0 23 3;
#X connect 27 0 28 0;
#X connect 27 1 19 0;
#X connect 28 0 29 0;
#X connect 28 1 20 0;
#X connect 29 0 15 0;
#X connect 29 1 21 0;
#X connect 30 0 27 0;
#X connect 31 0 28 0;
#X connect 32 0 29 0;
#X connect 33 0 18 0;
#X connect 36 0 35 0;
#X connect 37 0 35 0;
#X connect 38 0 22 0;
_______________________________________________
GEM-dev mailing list
[email protected]
http://lists.puredata.info/listinfo/gem-dev

Reply via email to