2014-06-26 82 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.); 
}