Skip to content
Snippets Groups Projects
Commit 7d28b015 authored by Dj's avatar Dj
Browse files

Add: Particle scaling depending on content size

parent 09f122e8
Branches
Tags
No related merge requests found
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
function randomValue(min, max) { function randomValue(min, max) {
var value = (Math.random() * (+max - +min) + +min) var value = (Math.random() * (+max - +min) + +min)
// Prevent values that can be possible boring // Prevent values that can be possible boring
return (value === 0 || value === 1) return (min !== 0 && max !== 0 && (value === 0 || value === 1))
? randomValue(min, max) ? randomValue(min, max)
: value : value
} }
...@@ -31,6 +31,17 @@ function getNodeHeight(node) { ...@@ -31,6 +31,17 @@ function getNodeHeight(node) {
return (dimensions) ? dimensions.height : window.innerHeight return (dimensions) ? dimensions.height : window.innerHeight
} }
function calcParticleCount(scene, particleDensity) {
var referenceArea = 100 * 100 // 100px * 100px => px^2
var sceneVolume = scene.width * scene.height
var scale = 100
var particleFactor = (sceneVolume / referenceArea) / scale
var particleCount = Math.abs(Math.trunc(
particleFactor * particleDensity
))
return particleCount || 0
}
// //
// Data // Data
...@@ -233,14 +244,16 @@ function CreateScene({ canvasId, contentId, depth, fps }) { ...@@ -233,14 +244,16 @@ function CreateScene({ canvasId, contentId, depth, fps }) {
function CreateParticles(scene, { function CreateParticles(scene, {
amount, density,
color, color,
size, size,
speed, speed,
lifespan, lifespan,
}) { }) {
return Array.from( return Array.from(
{ length: amount }, {
length: calcParticleCount(scene, density)
},
function createParticle() { function createParticle() {
return Particle({ return Particle({
position: position:
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
<div class="static full-bg bg-image"></div> <div class="static full-bg bg-image"></div>
<div class="static full-bg vcr-overlay"></div> <div class="static full-bg vcr-overlay"></div>
<div class="static full-bg grid"></div> <div class="static full-bg grid"></div>
<canvas id="debug-particles" class="static full-bg particles"></canvas>
<canvas id="bg-particles" class="static full-bg particles"></canvas> <canvas id="bg-particles" class="static full-bg particles"></canvas>
<div class="static full-bg vignette"></div> <div class="static full-bg vignette"></div>
<canvas id="fg-particles" class="static full-bg particles"></canvas> <canvas id="fg-particles" class="static full-bg particles"></canvas>
...@@ -94,7 +95,7 @@ ...@@ -94,7 +95,7 @@
depth: 2.5, depth: 2.5,
}, },
particles: { particles: {
amount: 50, density: 15,
color: 'white', color: 'white',
size: 40, size: 40,
speed: 0.5, speed: 0.5,
...@@ -113,14 +114,13 @@ ...@@ -113,14 +114,13 @@
depth: 0.08, depth: 0.08,
}, },
particles: { particles: {
amount: 150, density: 100,
color: 'white', color: 'white',
size: 7, size: 7,
speed: 0.2, speed: 0.2,
lifespan: 8000 // in milliseconds lifespan: 8000 // in milliseconds
} }
} }
var animation = Particles([ var animation = Particles([
fgParticleConfig, fgParticleConfig,
bgParticleConfig, bgParticleConfig,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment