Toggle navigation
Sign Up
Log In
Explore
Works
Folders
Tools
Collections
Artists
Groups
Groups
Topics
Tasks
Tasks
Jobs
Teams
Jobs
Recommendation
More Effects...
JS
var renderer, scene, camera, field; var ww = window.innerWidth, wh = window.innerHeight; function init() { renderer = new THREE.WebGLRenderer({ canvas: document.querySelector('canvas'), antialias: true }); renderer.setSize(ww, wh); renderer.setClearColor(0x000000); scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera(50, ww / wh, 0.1, 10000); camera.position.set(0, 200, 0); camera.lookAt(new THREE.Vector3(0, 0, 0)); scene.add(camera); controls = new THREE.OrbitControls(camera); createField(); } var size = 200; function createField() { var geometry = new THREE.Geometry(); for (var y = 0; y < 50; y++) { for (var x = -size / 2; x < size / 2; x++) { xTO = Math.cos((x/size)*Math.PI*2) * (y*(Math.sin(y/50))*5); yTO = 0; zTO = Math.sin((x/size)*Math.PI*2) * (y*(Math.sin(y/50))*5); vector = new THREE.Vector3(xTO,yTO, zTO); vector.origin = {x:xTO,y :yTO,z:zTO}; geometry.vertices.push(vector); } } var material = new THREE.PointsMaterial({ size: 1, sizeAttenuation : false }); field = new THREE.Points(geometry, material); scene.add(field); requestAnimationFrame(render); } noise.seed(Math.random()); function render(a) { requestAnimationFrame(render); for(var i=field.geometry.vertices.length-1;i>=0;i--){ var vector = field.geometry.vertices[i]; var value = noise.simplex3(vector.origin.x/40, vector.origin.z/40, a/4000); vector.x = vector.origin.x + (2 * value); vector.z = vector.origin.z + (2 * value); } field.geometry.verticesNeedUpdate = true; renderer.render(scene, camera); } init();
CSS
body{ margin:0; overflow: hidden; background:black; }
HTML
Join Effecthub.com
Working with Global Gaming Artists and Developers!
Login
Sign Up
Or Login with Your Email Address:
Email
Password
Remember
Or Sign Up with Your Email Address:
Your Email
This field must contain a valid email
Set Password
Password should be at least 1 character
Stay informed via email