New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

attenuate

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

attenuate

general purpose attenuation functions (linear, quadratic, etc.)

  • 2.0.0
  • unpublished
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

Build Status Greenkeeper badge

attenuate

general purpose attenuation functions (linear, quadratic, etc.)

api

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.

linear

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)

quadratic

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)

example

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

Package last updated on 24 May 2021

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc