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


Confetti Falling Animation Effect In JavaScript | party.js

Party.js is a JavaScript library to brighten user site experience with visual effects! Celebrate success with dom confetti! The library is written in TypeScript and compiled into…


Simple jQuery Cookie Consent Plugin

jquery.cookie-consent is a simple jQuery plugin to request consent to use cookies. An easy-to-use and highly customizable cookie consent bar that informs your visitors of the use…


Timepicker JavaScript Plugin for jQuery Inspired by Google Calendar

jquery.timepicker is a lightweight jQuery timer plugin inspired by Google Calendar. It supports both mouse and keyboard navigation and weighs 5.5KB minified and compact. Features: Highly customizable…


A Lightweight, Touchable, and Responsive Angular Universal Carousel Library

ngxCarousel is a lightweight, tactile, and responsive library for creating an angular carousel. No dependencies, no more hammer. Must Read: Angular Responsive Image Slider With Lightbox Popup…


First Mobile Full-screen Modal Popup Library For Vue

Vue full-page modal is a responsive, mobile-compatible, screen-friendly pop-up library for Vue.js. Must Read: Modal Component Is Written in Vanilla JS | ensemble Modal How to make…


Generate a Random Number Picker In Vanilla JavaScript

Random Number Picker is a Vanilla JS-based number picker that allows you to generate a random number within a specified range. Must Read: Generating Lottery Numbers Using…