<OPENGL 12> GLSL WEB

Pronto:

VScode + glslCanvas + glslLinter + Shadering línguas apoiar + glslang

Ref: tutorial

NDC:

u_resolution vec2 uniforme; 
vec2 pos = gl_FragCoord.xy / u_resolution - vec2 ( 0,5 , 0,5 );

 

1: esfera

#ifdef gl_ES 
precisão mediump flutuador ;
#endif 

u_resolution vec2 uniforme; 
const  flutuador e = 1E- 8 ; 

struct Forma {
     flutuador sdf; 
    cor vec3; 
}; 

Combine_sdf forma (Forma A, Forma b) { 
    Temp forma; 
    temp.sdf = min (a.sdf, b.sdf); 
    temp.color = a.color * flutuador (a.sdf <= 0.0 ) + * b.color flutuador (b.sdf <= 0,0 );
    voltar temperatura; 
} 

Flutuador circle_sdf (pos vec2, centro vec2, flutuadorraio) 
{ 
    retorno comprimento (pos-centro) - raio; 
} 


Vazio main () 
{ 
    flutuador raio = 0,2 ; 
    vec2 pos = gl_FragCoord.xy / u_resolution - vec2 ( 0,5 , 0,5 ); 
    Forma cle01 = Forma (circle_sdf (pos, vec2 (- 0,1 , 0,0 ), raio), vec3 ( 1 , 0 , 0 )); 
    Forma cle02 = Forma (circle_sdf (pos, vec2 ( 0.1 ,   0.0 ), de raio), vec3 ( 0 , 0 , 1 ));
    Cena Forma = combine_sdf (cle01, cle02); 
    vec3 cor = flutuador (scene.sdf <= 0,0 ) * scene.color; 
    gl_FragColor = vec4 (cor, 1,0 ); 
    
}
View Code

 

Acho que você gosta

Origin www.cnblogs.com/gearslogy/p/12631868.html
Recomendado
Clasificación