# glsl-specular-beckmann

> Beckmann specular distribution for GLSL

Latest version **1.1.2** (published 2014-10-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install glsl-specular-beckmann
pnpm add glsl-specular-beckmann
yarn add glsl-specular-beckmann
bun add glsl-specular-beckmann
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.2 |
| Published | 2014-10-19 |
| First published | 2014-10-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 13 |
| Author | Mikola Lysenko |
| Maintainers | mikolalysenko |
| Keywords | beckmann, specular, distribution, power, glsl, highlight, shiny, glslify |

## Links

- npm: https://www.npmjs.com/package/glsl-specular-beckmann
- Repository: https://github.com/stackgl/glsl-specular-beckmann
- Issues: https://github.com/stackgl/glsl-specular-beckmann/issues
- npm.io page: https://npm.io/package/glsl-specular-beckmann

## Alternatives

- [@oh-my-pi/pi-natives](https://npm.io/package/@oh-my-pi/pi-natives.md) — 51.8K weekly downloads
- [@capgo/capacitor-light-sensor](https://npm.io/package/@capgo/capacitor-light-sensor.md) — 3.0K weekly downloads
- [@heyhuynhgiabuu/pi-diff](https://npm.io/package/@heyhuynhgiabuu/pi-diff.md) — 492 weekly downloads
- [@lotsa/verdant-lang-asm](https://npm.io/package/@lotsa/verdant-lang-asm.md) — 38 weekly downloads
- [new-era-syntax](https://npm.io/package/new-era-syntax.md) — 20 weekly downloads

## Recent versions

- 1.1.2 (latest) — 2014-10-19
- 1.1.1 — 2014-10-18
- 1.1.0 — 2014-10-15
- 1.0.1 — 2014-10-15
- 1.0.0 — 2014-10-11

## README

# glsl-specular-beckmann
Computes the specular power from the Beckmann distribution

# Example

```glsl
#pragma glslify: beckmann = require(glsl-specular-beckmann)

uniform vec3 eyePosition;
uniform vec3 lightPosition;

uniform float roughness;

varying vec3 surfacePosition;
varying vec3 surfaceNormal;

void main() {
  vec3 eyeDirection = normalize(eyePosition - surfacePosition);
  vec3 lightDirection = normalize(lightPosition - surfacePosition);
  vec3 normal = normalize(surfaceNormal);

  float power = beckmann(lightDirection, viewDirection, normal, roughness);

  gl_FragColor = vec4(power,power,power,1.0);
}
```

# Usage

Install with npm:

```
npm install glsl-specular-beckmann
```

Then use with [glslify](https://github.com/stackgl/glslify).

# API

```glsl
#pragma glslify: beckmann = require(glsl-specular-beckmann)
```

##### `float beckmann(vec3 lightDir, vec3 eyeDir, vec3 normal, float shininess)`
Computes the specular power in the Beckmann model

* `lightDir` is a *unit length* `vec3` pointing from the surface point toward the light
* `eyeDir` is a *unit length* `vec3` pointing from the surface point toward the camera
* `normal` is the surface normal at the sample point
* `roughness` is a parameter between 0 and 1 measuring the surface roughness.  Small values are shinier, larger values are rougher.

**Returns** A `float` representing the specular power

# License
(c) 2014 Mikola Lysenko. MIT License

---
_Source: https://npm.io/package/glsl-specular-beckmann · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
