{
var geometry = new THREE.SphereBufferGeometry( 1, 32, 32 );
const uniforms = {
mousePos: {
type: "vec3",
value: [0, 2, 0]
},
maxDistance: {
value: 1,
},
};
var material = new THREE.ShaderMaterial( {
side: THREE.DoubleSide,
vertexShader: vertexShader(),
fragmentShader: fragmentShader(),
uniforms,
});
const mesh = new THREE.Mesh( geometry, material );
const renderer = meshRenderer(mesh)
var sphereGeo = new THREE.SphereGeometry( .1, 16, 16 );
var sphereMaterial = new THREE.MeshBasicMaterial( {color: 0x55cc00, opacity: 0.5, transparent: true} );
var sphere = new THREE.Mesh( sphereGeo, sphereMaterial );
sphere.position.set(0, 2, 0)
renderer.scene.add( sphere );
var light = new THREE.PointLight( 0xffffff, 1, 10 );
light.position.set( 5, 5, 5 );
renderer.scene.add( light );
const startTime = Date.now()
while(true) {
let elapsed = (Date.now() - startTime)/1000;
let yPos = Math.sin(elapsed * 2) + 1;
let xPos = Math.cos(elapsed);
uniforms.mousePos.value[0] = xPos;
uniforms.mousePos.value[1] = yPos;
sphere.position.set(xPos, yPos, 0)
yield renderer.render()
}
}