首页 > Web开发 > 详细

<OPENGL 12> WEB GLSL

时间:2020-04-04 15:26:57      阅读:99      评论:0      收藏:0      [点我收藏+]

Ready:

VScode + glslCanvas + glslLinter + Shadering languages support + glslang

Ref: tutorial

NDC:

uniform vec2 u_resolution;
vec2 pos = gl_FragCoord.xy / u_resolution - vec2(0.5,0.5);

 

1:sphere

技术分享图片
#ifdef GL_ES
precision mediump float;
#endif

uniform vec2 u_resolution;
const float e = 1e-8;

struct Shape{
    float sdf;
    vec3 color;
};

Shape combine_sdf(Shape a, Shape b){
    Shape temp;
    temp.sdf = min(a.sdf,b.sdf);
    temp.color = a.color * float(a.sdf<=0.0) +  b.color * float(b.sdf<=0.0) ;
    return temp;
}

float circle_sdf (vec2 pos,vec2 center,float radius)
{
    return length(pos-center) - radius;
}


void main()
{
    float radius = 0.2;
    vec2 pos = gl_FragCoord.xy / u_resolution - vec2(0.5,0.5);
    Shape cle01= Shape(circle_sdf(pos,vec2(-0.1, 0.0), radius), vec3(1,0,0));
    Shape cle02= Shape(circle_sdf(pos,vec2(0.1,  0.0), radius), vec3(0,0,1));
    Shape scene = combine_sdf(cle01,cle02);
    vec3 color = float(scene.sdf <=0.0) * scene.color;
    gl_FragColor = vec4(color, 1.0);
    
}
View Code

技术分享图片

 

<OPENGL 12> WEB GLSL

原文:https://www.cnblogs.com/gearslogy/p/12631868.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!