webGL,SLGL?我应该从哪里开始使用这段代码

webGL,SLGL? where should I start with this code

我熟悉CC++

但是,对于 WEBGLGLSL 我是一个新手。

虽然这可能是太基础或愚蠢的问题...感谢您给我一些提示。


我找到了制作精美 CG 图形的源代码。

我想自己编译这个,但是老实说我不确定它是什么,以及我可以编译并使它工作的编译器。

#define R rotate2D
for(float i,e,g,s;i++<1e2;g+=e*.2)
{
    vec3 n,p=vec3((FC.xy-.5*r)/r.y*g,g-4.);
    p.zy*=R(.4);
    p.z+=t;
    e=p.y;
    for(s=1.;s<6e3;s+=s)p.xz*=R(s),n.xz*=R(s),n+=cos(p*s),e+=dot(sin(p.xz*s),r/r/s/3.);
    n.y=1.;
    n=normalize(n);
    e-=snoise2D(p.xz*40.)*n.y*n.y*.4;
    o-=exp(-e*9.-5.);
}
o++;

所以一开始,我开始学习webGL

并完成基础学习webGL

但是我无法让它与 webGL 一起使用。

接下来,我开始学习SLGL关于unity的知识,,,然而它并没有切中要害。

编译这个要学什么???

这看起来像是 GLSL 着色器的一部分,您会 compile that with gl.compileShader()

但还不完整。首先要完全可编译,它需要一个设置 gl_FragColormain 函数。我看到了对 snoise2Drotate2D 的引用,它们应该是函数,但丢失了。以及至少一些局部未定义变量,如 FCr。所以如果没有这些部分,这将无法编译。

如果你能解决这些问题,你应该能够插入类似 ShaderToy 的东西,而不必从头开始发明整个 WebGL 应用程序。但是,如果此着色器旨在与可能根本不起作用的特定几何体交互。

如果没有更多关于这是什么、它的用途以及所有单字母变量名称应该意味着什么的信息,就很难提供更多建议。