Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
general purpose attenuation functions (linear, quadratic, etc.)
general purpose attenuation functions (linear, quadratic, etc.)
These functions are generic, but described in terms of representing a light source. They take the form of
result = attenuationType(distance, maxDistance)
maxDistance
specifies the maximum distance attenuation can occur over. For example if you are simulating
a light source, and don't want the light to have any contribution beyond a distance of 500, set maxDistance
to 500.
result
is a value from 0.0
-> 1.0
with 0.0
being complete attenuation, and 1.0
being no attenuation.
The decline of this type of falloff is linear, inversely proportial to the distance from the source:
I = 1/d
where I
is intensity and d
is distance). This means that the intensity
(set by its magnitude/brightness) will diminish (at a fixed rate) as it travels from its source.
In the real world a 100% linear lightsource would be practically impossible, as it would represent a real world soft light of infinite size, but in the virtual world, a 0:1:0 lightsource is believable for most entity based lightsources.
result = linear(distance, maxDistance)
The attenuation of a 100% quadratic light is exponential (quadratic), expressed as:
I = 1/d^2
meaning that the further the light travels from its source, the more it will be diminished. This creates a very sharp drop in light.
A quadratic lightsource represents a pure "point light source" in the real world. In the virtual world, this effect looks like a lightsource shining through murky water, looking far from typical real world lightsource behavior.
When used in moderation, quadratic attenuation can be used not only for small lightsources, but also to reflect light travelling through something more dispersing than air, like air humidity (like fog) or water.
result = quadratic(distance, maxDistance)
import { linear } from 'attenuate'
const maxDistance = 1000
console.log(linear(0, maxDistance)) // 1.0
console.log(linear(100, maxDistance)) // 0.9
console.log(linear(500, maxDistance)) // 0.5
console.log(linear(1000, maxDistance)) // 0.0
console.log(linear(1001, maxDistance)) // 0.0
FAQs
general purpose attenuation functions (linear, quadratic, etc.)
The npm package attenuate receives a total of 0 weekly downloads. As such, attenuate popularity was classified as not popular.
We found that attenuate demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.