- 2011 - A trip through the Graphics Pipeline 2011
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
- 2020 - GPU ARCHITECTURE RESOURCES
### JHW 2018 | |
import numpy as np | |
import umap | |
# This code from the excellent module at: | |
# https://stackoverflow.com/questions/4643647/fast-prime-factorization-module | |
import random |
Together with HellMood we won this year's (2016) JS1K competition and thought this might be a good opportunity to write about the development process and my motivation behind it. If you're already familiar with JS1K, feel free to skip the next two paragraphs.
Real world application with a lot of pages (or "screens") have to deal with problem managing the pages' DOM and memory efficiently and at the same provide a nice smooth transition effect between pages. This is not a real problem when you do it in native apps since Android or iOS already handle the hard work for you, but when come to JavaScript, HTML, and CSS, running on mobile browsers, this is the real challenge.
There are 2 common approaches to solve this problem:
- Approach 1: Keep all the pages in the DOM tree, use CSS (for example
display
) to transit between pages.
I get a lot of requests for resources about how I learned about raymarching fractals or general computer graphics stuff. So I started this handy guide where I will add links and info about where I learned some things.
This is a non-exhaustive list I will probably add more in the future.
It used to be that you had to dig through FractalForums or pouet.net to find little nuggets of new techniques or ideas. But many smart people that have been doing much longer than I have condensed this knowledge into some articles. Here are a few that have helped me out on my journey.
Mercury.sexy demogroup has created a distance field library with some cool stuff in there. Except they said that fractals are boring.
- http://absulit.com/portfolio/demo/webvr/001/
- https://www.clicktorelease.com/code/polygon-shredder/vr/ #positional
- https://www.clicktorelease.com/tmp/threejs/webvr-physics/ #positional #input #haptic
- https://janusweb.metacade.com/ https://github.com/jbaicoianu/janusweb/
- https://jzitelli.github.io/poolvr/
- https://kuva.io/block-background/ #positional #input
- https://www.shadertoy.com/results?filter=vr
- https://vr-batted-ball-vis.herokuapp.com/index.html
// Fragment shader | |
precision highp float; | |
varying vec2 UV; | |
varying vec3 v_position; | |
uniform float time; | |
uniform float ratio; | |
uniform vec2 mouse; | |
void main(void){ |
Please consider using http://lygia.xyz instead of copy/pasting this functions. It expand suport for voronoi, voronoise, fbm, noise, worley, noise, derivatives and much more, through simple file dependencies. Take a look to https://github.com/patriciogonzalezvivo/lygia/tree/main/generative
float rand(float n){return fract(sin(n) * 43758.5453123);}
float noise(float p){
float fl = floor(p);
float fc = fract(p);
import Cocoa | |
import AVFoundation | |
// Setup engine and node instances | |
var engine = AVAudioEngine() | |
var delay = AVAudioUnitDelay() | |
var reverb = AVAudioUnitReverb() | |
var mixer = engine.mainMixerNode | |
var input = engine.inputNode |