Inigo Quilez :: articles ::

请访问我的主页,那里有关于计算机图形学的视频教程和其他资源;此页面包含书面教程。 这些教程是我在业余时间编写的,希望您喜欢,尽管它们可能包含错误或不精确之处。 如果您喜欢并愿意,可以通过 PatreonPayPal 支持这项工作。 最后,您找到的所有代码片段都采用 MIT license,因此您可以轻松地重用它们。

实用函数索引

Remapping functions 3D SDFs 2D SDFs 2D SDFs and gradients 2D SDFs in L∞-norm Ray-Surface intersection functions Sphere functions Box functions Smoothstep functions Trigonometric functions Filterable procedurals

Procedural noises

FBM Gradient noise derivatives Value noise derivatives Domain warping Voronoise Smooth voronoi Voronoi edges

Raytracing

Path-tracing in one hour Sphere soft shadow Oldschhol raytracing Simple gpu raytracing Tracing in tiles SSE for CPU tracers My first raytracer

Pointclouds and Splatting

Volumetric sort

Voxels

Voxel lines and occlusion Simple voxel

Compression

Genetic algorithm Mesh compression Wavelet compression 3D models storage

Size coding

Making (procedural) graphics in 4 kilobytes Behind Elevated Simple color palettes Compact storage of floats Minimal spline code Minimal frustum culling Compiling small Textures inside gm.dls Opening a file in 4kb Living Characters in 4 kilobytes Techniques for 64k demos

SDFs & Raymarching

Raymarching SDFs Smooth minimum for SDFs Domain Repetition Soft Shadows Numerical normals for SDFs Smooth Rounded Boxes Interior SDFs Xor operator for SDFs SDF Bounding Volumes Binary-search raycasting for SDFs FBM detail in SDFs Ellipsoid SDF Approximating the distance to implicits Menger fractal Raymarching terrains Depth buffer with raymarching Intro to SDF raymarching (2008)

Texturing and filtering

The Math of Premultiplied Alpha Biplanar mapping Texture repetition Filtering procedural textures Band-limiting procedural textures Ray differentials and textures Analytic checkers pattern filtering Improved analytic checkers pattern filtering Improved bilinear filtering Improved hardware interpolation Cylinder seams

Lighting

Outdoors lighting Better fog Multires ambient occlusion Directional derivative Screen space ambient occlusion Per vertex AO Simple global ilumination

Renderer/Engine

GPU Conditionals(new) Avoiding trigonometry III(new) Avoiding trigonometry II Avoiding trigonometry I Timing in Ticks Fixing frustum culling Rational rendering and floating bar C++ encapsulation(new) Hacking the Ray-Triangle intersector Stereo rendering Basic VR Gamma correct blurring

Simple oldschool effects

2D dynamic clouds Simple water Plane deformations Feedback effect Voronoi effect The Game of Life Rendering a cube in QBasic

Useful maths

Simple IK without trigonometry Sphere ambient occlusion Box ambient occlusion Sphere density Sphere visibility Sphere projection Inverse bilinear interpolation Distance to triangle Bezier bounding box Disk/cylinder bounding box Distance to an ellipse Working with ellipses Normal/areas for polygons Area of a triangle Computing mesh normals Patched sphere Fourier series Smoothstep integral Reflect and Clip FM synthesis Thinking with quaternions Fast trisect() in GLSL Inverse smoothstep Float and random

Fractals & complex dynamics

Continuous iteration count The M1 bulb of the Mandelbrot set The M2 bulb in the Mandelbrot set Area of M1 in the Mandelbrot set The symmetry of the Mandelbrot set Introduction to the Mandelbrot set

Rendering fractals

Computing the SDF of fractals Mandelbulb fractal 3D Julia set fractals 3D orbit traps Procedural orbit traps Bitmaps orbit traps Geometric orbit traps Budhabrot fractals Popcorn images IFS fractals Lyapunov fractals Icon images

Recreational math

The maximum of 3 numbers(new) Prof. Jame Grime's Dice Optimizing squares Ekain's numbers

inigo quilez - 自 1994 年以来学习计算机图形学