2014-06-26 116 views
0

我会在我的光盘中间以黑色从外部渐变色。 2个第一部分是GLSL代码,使我的着色器,我的问题是当我这样做: “gl_FragColor = vec4(VEC3(VUV,0.17),1。);”使用GLSL着色器的WebGL中的渐变色

`

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(); 

'

+0

请制定你的问题更好。这里没有问题。 – gaitat

+0

同意。 什么是vec3(vUv,0.17)应该做什么? – pailhead

回答

0

试着做这样的事情对于初学者:

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