website articles
These are written articles on the techniques I develop for my computer graphics experiments, demos, shadertoys and movies. For video tutorials, code and other useful resources visit the landing page. All computer graphics and most of the maths here are self-taught, and similarly, all the content in this site is mostly written casually rather than in an academic form. I am a big fun of discovering and inventing things by myself, it's my little hobbie. Still, if you happen to base your academic research paper in any of this content, it would be fair to give proper credit, right...? Lastly, since I write these articles whenever I happen to have a little bit of spare time (mostly late at night), and as a non-native english speaker, I usually do lots of grammar mistakes in my writing. I always correct when a reader's emails me about them. Actually, thanks so much for reading guys!


31 Dec 2018rational rendering and floating bar numbers
12 Sep 2018intersectors
07 Sep 20182D SDF functions
22 Aug 2018numerical normals for SDFs
22 Jun 2017gradient noise derivatives
03 Jun 2017raymarching SDFs
If you want to help me allocate official time for more and better content, now you can become my patron on Patreon!

Become a patron


118 articles, lots of grammatical and spelling errors, but hopefully some interesting math and code


useful maths

2018. bezier bounding box
2017. inverse smoothstep
2016. disk/cylinder bounding box
2015. sphere density
2014. distance to triangle
2014. sphere projection
2011. distance estimation to implicits
2011. useful little functions
2010. inverse bilinear interpolation
2010. trigonometric tricks
2009. distance to an ellipse
2008. fourier series
2008. patched sphere
2008. sphere visibility
2008. on fm synthesis
2006. working with ellipses
2006. sphere ambient occlusion
2006. thinking with quaternions


fractals/complex dynamics

2007. continuous iteration count
2006. area of M1 in the Mandelbrot set
2006. M2 bulb in the Mandelbrot set
2006. the M1 bulb of the Mandelbrot set
2006. the symmetry of the Mandelbrot set
2002. introduction to the Mandelbrot set


fractals rendering algorithms

2011. iterative shapes
2009. mandelbulb fractal
2006. 3d orbit traps for fractals
2006. experimental 3d fractals
2004. distance rendering for fractals
2002. procedural traps for fractals
2002. bitmaps traps for fractals
2002. budhabrot fractals
2002. ifs fractals
2001. lyapunov fractals
2001. 3d julia set fractals
1999. geometric traps for fractals


compression

2010. genetic algorithm
2007. mesh compression
2007. wavelet compression
2005. introduction to 3d models storage


rendering techniques

2016. basic VR
2015. texture repetition
2015. texturing and raymarching
2015. numerical normals for SDFs
2015. sphere functions
2014. sphere soft shadow
2013. directional derivative
2013. filtering procedural textures
2013. smooth minimum
2006. volumetric sort
2005. modern raytracing
2002. terrain marching
2002. simple point clouds
2001. a basic raytracer
2000. simple voxel


index of primitives, intersectors and bounding boxes

2017. intersectors
2015. sphere functions
2015. box functions
2013. 2D SDF functions
2008. 3D SDF functions


lighting

2014. box occlusion
2013. outdoors lighting
2012. multires ambient occlusion
2012. simple pathtracing
2010. penumbra shadows
2010. better fog
2007. screen space ambient occlusion
2005. per vertex ao
2004. simple global ilumination


procedural content

2017. filterable procedurals
2017. improved analytic checkers pattern filtering
2017. analytic checkers pattern filtering
2017. gradient noise derivatives
2008. raymarching SDFs
2015. modeling with SDFs
2008. value noise derivatives
2014. voronoise
2012. smooth voronoi
2012. voronoi edges
2002. domain warping
2002. icon images
1999. popcorn images
explorations

2018. rational rendering and floating bar


coding tricks

2016. stereo rendering
2015. gamma correct blurring
2013. tunnel artifact
2013. improved hardware interpolation
2013. fixing frustum culling
2013. avoiding trigonometry
2010. zbuffer for raymarching
2010. minimal frustum culling
2009. improved bilinear filtering
2008. tile rendering
2008. normal/areas for polygons
2005. float and random
2005. begining with sse coding
2004. clever normalization of a mesh
2003. how to render a cube in qbasic
2003. minimal spline code
2002. compiling small
1999. simple color palettes


simple effects

2013. voxel lines and occlusion
2005. 2d dynamic clouds
2005. simple gpu raytracing
2004. simple water
2002. cellular effect
2002. feedback effect
1999. plane deformations
1998. the game of life


coding hacks

2008. gm.dls textures
2008. how to store floats in 4k
2008. opening a file in 4k


presentations

2009. Function 09 - Behind Elevated
2008. Function 08 - Living Characters in 4 kilobytes
2008. NVScene 08 - Rendering Worlds With Two Triangles
2007. Siggraph 07 - Massive Model Visualization
2007. Breakpoint 07 - Techniques for 64k demos
2006. ICM 06 - Mathematics in Movement