[GEM-dev] [ pd-gem-Feature Requests-2612731 ] glsl_geometry

Matthias Neuenhofer matthias at neuenhofer.de
Sat Apr 25 20:22:07 CEST 2009


>>
success :)

i attached 2 examples
dub made a copy from a mesh_square and you can set the offset from xy,
thorn is the modified file from cyrille you can set the high and alpha  
from the spikes

but before it worked i had to comment out line 173-176 in  
glsl_geometry.ccp
got the error "cannot load shader now" didn´t really understand why

and add the glProgramParameteriEXT to the LinkARB part in  
glsl_program.ccp

anyway put the ccp also in the zip

fun can start

Matthias


-------------- next part --------------
A non-text attachment was scrubbed...
Name: _geometry.zip
Type: application/zip
Size: 165913 bytes
Desc: not available
URL: <http://lists.puredata.info/pipermail/gem-dev/attachments/20090425/ae290e1a/attachment.zip>
-------------- next part --------------


> 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
> GEM-dev at iem.at
> http://lists.puredata.info/listinfo/gem-dev



More information about the GEM-dev mailing list