Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript three.js,通过着色器绘制虚线_Javascript_Three.js_Webgl_Line_Shader - Fatal编程技术网

Javascript three.js,通过着色器绘制虚线

Javascript three.js,通过着色器绘制虚线,javascript,three.js,webgl,line,shader,Javascript,Three.js,Webgl,Line,Shader,我试图为我的虚线制作一个着色器;但我唯一能得到的是从原点到+也许是x方向 如果我渲染这条曲线Ellipse.curve,它们会很好。和着色器不 当然,我不知道为什么。。请帮帮我 <script type="x-shader/x-vertex" id="vs-orbit"> uniform float time; attribute float sovereign; varying vec3 vColor; ve

我试图为我的虚线制作一个着色器;但我唯一能得到的是从原点到+也许是x方向

如果我渲染这条曲线Ellipse.curve,它们会很好。和着色器不

当然,我不知道为什么。。请帮帮我

    <script type="x-shader/x-vertex" id="vs-orbit">
        uniform float time;
        attribute float sovereign;
        varying vec3 vColor;

        vec3 setColorBySovereign() {
            vec3 color;

            color.r = 0.5 - ( 0.5 * sovereign );
            color.g = 0.25 + ( 0.25 * sovereign );
            color.b = 0.5 + ( 0.25 * sovereign );

            return _color;
        };

        void main() {
            vColor = setColorBySovereign();
            gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
        };
    </script>
    <script type="x-shader/x-fragment" id="fs-orbit">
        attribute vec3 vColor;

        void main() {
            gl_FragColor = vec4(vColor, 1.0);
        };
    </script>

// ... Below is where use shader above;

Ellipse.prototype.createOrbit = function( soveregin ) {
    var shape, mater;
    var sov = soveregin || 0.0;

    shape = new THREE.Geometry();
        var v2;
        for(var i=0; i<721; i++) {
            v2 = this.curve.getPoint(i);
            shape.vertices.push(new THREE.Vector3(v2.x, v2.y, 0));
        };
        shape.computeLineDistances();

    mater = new THREE.ShaderMaterial({
        attribute: { soveregin: sov },
        vertexShader: document.getElementById('vs-orbit'),
        fragmentShader: document.getElementById('fs-orbit')
    });

    this.orbit = new THREE.Line( shape, mater, THREE.LineStrip );
    return;
}

我解决这个问题;在main{}之后,我不应该使用“;”还有其他语法错误

在片段着色器中,我必须使用操作符“variable”声明vColor,就像顶点着色器一样。在片段着色器中;来自GLSL参考;可变等于in运算符