使用GLSL着色器的WebGL中的渐变颜色

时间:2014-06-26 14:16:27

标签: javascript three.js glsl webgl shader

我的磁盘中间会有黑色,外面有渐变。 2个第一部分是用于制作我的着色器的GLSL代码,我的问题是当我这样做时:“gl_FragColor = vec4(vec3(vUv,0.17),1。);”

`

varying vec2 vUv;

    void main()
    {
        vUv = uv;
        gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 0.8);
    }

” “

varying vec2 vUv;

void main()
{
    gl_FragColor = vec4( vec3( vUv, 0.17 ), 1. );
}

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 45, 1024 / 860, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer({ antialias: true});

camera.position.z = 30;
var my_shad = new THREE.ShaderMaterial({
vertexShader: document.getElementById( 'vertex' ).textContent,
fragmentShader: document.getElementById( 'frag' ).textContent
});

var radius = 8;
var segments = 80;
var circleGeometry = new THREE.CircleGeometry( radius, segments );              
var disk = new THREE.Mesh(circleGeometry, my_shad);
scene.add(disk);

renderer.setSize( 1024, 860 );
document.body.appendChild( renderer.domElement );

function render() {
    requestAnimationFrame(render);
    renderer.render(scene, camera);
}

render(); 

1 个答案:

答案 0 :(得分:0)

尝试为初学者做这样的事情:

void main(){
float uvD = length(vUv);
vec3 gradient = mix(color1, color2, uvD);
gl_FragColor = vec4(gradient,1.);
}