JavaScript Library to Draw Shadows of Rectangles and Polygons in WebGL | PolyShadow.js

PolyShadow is a simple library that paints subtle soft shadows to rectangles and polygons made up of triangles using WebGL shading. The shadows have a solid color Gaussian camouflage.

The shader app is based on mathematical analysis. A closed-form equation is used to calculate the opacity at each pixel which makes this implementation extremely accurate and effective. Curved paths are not and will not be supported.

CSS Library Buttons That Look Cool | Retro Shadow Buttons

How to make use of it:

1. Download and load the polyshadow.js within the doc.

<script type="text/javascript" src="polyshadow.js"></script>

2. Creates a rectangle shadow shader and a rectangle vertex buffer for subsequent draw rectangle.

var rectangleShader = PolyShadow.createRectangleShader(gl);

3. Draws a rectangle shadow (a solid-color blurred rectangle) with the next parameters.

PolyShadow.drawRectangle(gl, rectangleShader, rectangle, transformation, sigma, fillColor = [0.0, 0.0, 0.0, 1.0], bgColor = [0.0, 0.0, 0.0, 0.0], cutoff = 1.0/512);

4. Deletes a rectangle shader when it’s not needed.

PolyShadow.deleteRectangleShader(gl, rectangleShader);

5. Creates a triangle shadow shader used to draw triangle mesh shadows.

var triangleShader = PolyShadow.createTriangleShader(gl);

6. Creates a drawable triangle mesh. Its particular person triangles should not overlap!

var triangleMesh = PolyShadow.createTriangleMesh(gl, triangles);

7. Draws a triangle mesh shadow (solid-color blurred triangles).

PolyShadow.drawTriangleMesh(gl, triangleShader, triangleMesh, transformation, sigma, fillColor = [0.0, 0.0, 0.0, 1.0], bgColor = [0.0, 0.0, 0.0, 0.0], cutoff = 1.0/512.0);

8. Delete a triangle mesh when it’s not needed.

PolyShadow.deleteTriangleMesh(gl, triangleMesh);

9. Delete a triangle shader when it’s not needed.

PolyShadow.deleteTriangleShader(gl, triangleShader);

Draw Precise And Efficient Shadows Of Polygons, PolyShadow js Plugin/Github


See Demo And Download

Official Website(Chlumsky): Click Here

This superior jQuery/javascript plugin is developed by Chlumsky. For extra advanced usage, please go to the official website.

Related Posts


Simple And Powerful Fullscreen Lightbox Plugin | fslightbox

Fullscreen Lightbox Basic is a modern and handy plug-in for displaying photos and videos in a clean overlay box. Showcase a single source or create a great…


Product Thumbnail Slider With Positive Zoom Effect jQuery

Positive Zoom is a JavaScript library for creating an image gallery where you can zoom in on the current image by hovering over it. Must Read: Pure…


Create Responsive Gauge Meter Using Pure CSS | CSSGauge

Pure CSS Gauge Meter Component, no SVG, or artboard is used in this component. This component can be easily distinguished by overriding the default style rules and…


Versatile Date and Time Picker Calendar for Bulma

Bulma extension for calendar display can be used on a page as a large calendar with appointments or as a date picker/popup window. A responsive, customizable, and…


Simple Time-Series Chart Viewer with HTML5 Canvas Javascript Library

Pixl chart library displays time series charts in the browser, using the HTML5 Canvas element. It is designed to be lightweight and efficient, while still providing a…


Neumorphic Design Inspiration Style CSS Shapes | Neumorphism

Multi-dimensional design is inspired by the physical world and adds textures, reflection, shadows, layers, and depths to the flat design making the UI elements more visible. CSS…