A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
Name | Stars | Last Commit | Description |
---|---|---|---|
three.js | ![GitHub |
Global : | |
- Only optimize when you need to! Pixi can handle a fair amount of content off the bat. | |
- Be mindful of the complexity of your scene. The more objects you add the slower things will end up. | |
- Order can help, for example sprite / graphic / sprite / graphic is slower than sprite / sprite / graphic / graphic | |
- Some older mobile devices run things a little slower. passing in the option 'legacy:true' to the renderer can help with performance | |
- Culling, is disabled by default as its often better to do this at an application level. If you are GPU it will improve performance, if you are CPU bound - it will degrade performance | |
Sprites: | |
- Use spritesheets where possible to minimize total textures | |
- Sprites can be batched with up to 16 different textures (dependent on hardware) |
A non-exhaustive list of WebGL and WebGPU frameworks and libraries. It is mostly for learning purposes as some of the libraries listed are wip/outdated/not maintained anymore.
Name | Stars | Last Commit | Description |
---|---|---|---|
three.js | ![GitHub |
(module | |
(func $addTwo (param i32 i32) (result i32) | |
(i32.add | |
(get_local 0) | |
(get_local 1))) | |
(export "addTwo" (func $addTwo))) |
The purpose of this document is to serve as a reference for:
How to Write an Open Source JavaScript Library course by Kent C. Dodds
Watch the series at egghead.io, if you haven't.
// fragment shader | |
// | |
// RGBA color to RGBA greyscale | |
// | |
// smooth transition based on u_colorFactor: 0.0 = original, 1.0 = greyscale | |
// | |
// http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/ | |
// "The luminosity method is a more sophisticated version of the average method. | |
// It also averages the values, but it forms a weighted average to account for human perception. | |
// We’re more sensitive to green than other colors, so green is weighted most heavily. The formula |
/* | |
* http://www.javascriptkit.com/dhtmltutors/sticky-hover-issue-solutions.shtml | |
* Method 3- Using CSS Media Queries Level 4 Interaction Media Features | |
*/ | |
@media (hover:none), | |
(hover:on-demand) { | |
nav a:hover { | |
/* suppress hover effect on devices that don't support hover fully */ | |
background: none; |
Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.
using UnityEngine; | |
using System.Collections; | |
using System.Linq; | |
public class SimplexEffects : MonoBehaviour { | |
private Material MyMaterial; | |
public float AnimSpeed; | |
public Vector3 NoiseOffset; | |
public Vector3 NoiseScale; |
#ifdef GL_ES | |
precision highp float; | |
#endif | |
uniform sampler2D from, to; | |
uniform float progress; | |
uniform vec2 resolution; | |
uniform float fps; | |
// | |
// GLSL textureless classic 3D noise "cnoise", |