Reader's Guide | ||
How Tohelp | ||
Links (References)references | ||
About The Graphics Codex Morgan McGuire Casual Effects about | ||
New in this Versionnew | ||
Bibliographybibliography | ||
Preface
Prerequisites — Educational Goals — Topics Covered — Structure — Projects and Code — Primary Sources — Feedback | ||
Introduction
Images and Light — Physically Based Rendering — The Rendering EquationRadiometry Photometry light ray primary ray Rendering Equation | ||
C++
An Example — Header and Source Files — Memory Model — Types — Plain Old Data — Pointer Types — Stack and Heap Allocation — References — const References — Reference-Counted Pointers — Copying and Assignment — Pre- and Post-Increment — Conclusion: The C++ Programmer Mindsetheader source translation units linker variable value address type pointer dereference dangling
pointers memory leak reference reference-counted pointer shared
pointer | ||
Surface Geometry
What is a Surface? — The Speeds of Light — Surfaces are Interfaces — Modeling a 1D Surface in 2D Space — A Surface is a Set of Points — Implicit Form — Explicit Form — Triangle Meshes — A Triangle — Triangle List — Indexed Triangle Listobject implicit explicit homogeneous optical
interface boundary oriented implicit explicit simplex front mesh triangle list tetrahedron indexed triangle list vertex array index array | ||
A Model of Light
Digital Images are Measurements — Rays of Light — Transport Paths — Vectors — Unit Vectors — Geometric Rays — The Light Field — Light is Conserved Along a Ray — Assumptions and Simplificationslight
field crepuscular rays ray line
segment line segment path emitter luminaire light
source vector magnitude length unit vector normalizing unit sphere light field plenoptic function 4D light field light slab Lumigraph time phase Polarization frequencies | ||
The Rendering Equation
Radiometric Units — Photon Energy — Power — Irradiance and Radiosity — The Measure of a Set — Radiance — Measurements in Different Frames — Lambert's Projected Area — Vector Dot Product — The Rendering Equation — Rendering is Very Hardradiometry energy photons power flux Irradiance radiosity measure angle solid angle steradians Radiance Lambert's cosine law dot product inner product integral equation | ||
Version Control Basics
Systems — Advantages — Repository Model — An Example — Concurrent Changes — Typical Workflow — Starting a Project — Pull into the Workspace — Merge Conflicts — Adding and Removing Files — Push to the Remote Repository — Leveraging Versions — Checking the Log — Inspecting Old Versions — Workspace Undo — Local Repository Undo — Remote Repository Undo — Best PracticesSubversion git Perforce server client bridges remote repository workspace revision history distributed version control systems local
repository local snapshot pulls commits pushes conflict resolved log
message log git perforce p4 svn subversion mercurial hg cvs rcs source control source management revision control | ||
A Camera Model
Images — Images are Everywhere — An Aperture Selects an Image — A 16ᵗʰ Century Mechanical Renderer — A Modern Computational Renderer — Primary Rays from a Pinhole Camera — Dynamic Range — Gamma Encoding — Bloom — Desaturationpinhole aperture virtual image real image data driven ray
casting surface element (surfel) direct illumination dynamic range tone mapping gamma
encoding Bloom | ||
Ray Casting
Ray Casting Algorithm ray trace — Ray-Sphere Intersection — Ray-Plane Intersection — Ray-Triangle Intersection — Unit Triangle —
Barycentric Coordinates
— Arbitrary Triangle — Vector Cross Product — Triangle Mesh — Some Performance Considerations — Visualization for Debugging — Texture Coordinates — Stepping Into One Pixelray casting surface element surfel unit triangle barycentric coordinate barycenter signed
area cross product cross product procedural early out spatial data structure Visualization texture coordinate texture map ray trace | ||
Direct Illumination
Radiance is Conserved Along a Ray — Direct Illumination — Scattered Radiance — Biradiance — Implementing Point Lights — Shadows — The Visibility Function — Ambient Illuminationdirect
illumination ambient term direct illumination point light biradiance shadow visibility function ambient environment mapping irradiance mapping | ||
Materials
Probability Density — The BSDF brdf btdf shading — Lambert's Law — Scattering Functions — Common Terms — Mirror Reflection — Implementing Impulses — Transmission and Refraction — Microfacets — Subsurface Scattering — Lambertian Reflection — The Fresnel Effect — Partial Coverage — Compositing — Alpha Cutout — Perceived Colorbidirectional scattering distribution function material scattering
function bump partial
coverage probability mass probability density differential
probability probability mass bidirectional scattering distribution
function reflective bidirectional reflectance
distribution function transmission non-negative energy conserving reciprocal passive Lambert's Law scattering distribution photon
distribution impulse transmits refraction microfacets diffuse half vector Lambertian reflectivity normal
incidence partial coverage over composite brdf btdf shading | ||
Rendering Algorithms
The Transport Graph metropolis radiosity — Path Notation — Node Types — Operators — Notable Phenomena — Direct and Ambient Illumination — Whitted Ray Tracing — Path Tracing — Bidirectional Path Tracing — Photon Mapping — Radiositytransport graph Path notation Luminaire Specular Diffuse Eye Caustics Mirror reflections perfect
refraction Diffuse interreflection color bleeding shadow Highlights ambient Whitted ray tracing backwards ray
tracing ray tracing path tracing Bidirectional path tracing photon mapping consistent biased radiosity
algorithm form factor metropolis radiosity | ||
Numerical Calculus
Definition of a Derivative — Numerical Differentiation — Definition of an Integral — Analytic Integration — Numerical Integration — A Tale of Two Cities — Las Vegas — Monte Carlo — Monte Carlo Integration — An Energy Examplederivative differentiable analytically power rule antiderivative symbolic analytic Numerical (definite) integration samples randomized
algorithms nondeterministic stochastic deterministic algorithms Las Vegas Monte Carlo Monte Carlo (definite) Integral
estimator probability density function converged | ||
Path Tracing
A Simple Implementation — Algorithmic Complexity — The Transport Graph — Elements of Path Tracing — Applying Monte Carlo Integration — The Camera Integrals — Distributed Sampling — The Transport Integral — Terminal Cases direct resampling — Importance SamplingReverse, recursive ray tracing Distributed sampling Markov chain Monte Carlo Importance sampling spatial data
structures SIMD SPMD stream processing Fixed-function hardware distributed sampling Russian roulette shadow rays material importance sampling bidirectional scattering distribution function (BSDF) importance sampling direct resampling | ||
Ray Marching
Intersection Algorithms GPU implicit signed distance — Marching — Distance Estimators — Sphere Tracing — Some Distance Estimators — Sphere — Plane — Box — Rounded Box — Torus — Wheel — Cylinder — Computing Normals — A Simple GLSL Ray Caster — C++ Shader Launch — GLSL Ray Setup — GLSL Intersection — Operations on Distance Estimators — Some Useful Operators — Union — Intersection — Subtraction — Repetition — Transformation — Blending — Increasing Performance — Over-Relaxation — Bounding Spheres — Reintroducing Analytic Roots — Other Optimization Strategies — Some Online Examples in GLSL — Educational — Aspirational — Further Readingimplicit surface Analytic ray-surface intersection explicit equation Ray marching Rasterization depth buffer signed
distance estimators isosurface level set sphere tracing gradient surface
normal point-based graphics GPU implicit signed distance | ||
Parallel Architectures
SIMD GPU CPU SIMT AVX SSE warp CUDA — Coherence — Memory Coalescing — Cores — Thread Pools and Megakernels — Occupancy — Synchronization — Pipelines — Physics Revisited — Super-Linear Speedups — Intra-core Utilization — Memory — Physics Revisited — Structures and ArraysSIMD SIMT lane masked coherent divergent coalesce virtual cores physical cores Stream Processor CUDA Core thread pooling Megakernel occupancy concurrent strict parallel race condition deadlock atomic operations mutexes spinlocks semaphores lockless datastructures barrier pipelining bubble array of structures (AOS) structure of arrays (SOA) GPU CPU SIMT AVX SSE warp CUDA | ||
The Eye
Photoreceptors — Photoreceptor Response — Photopic Vision — Scotopic Visioncones rods punctum caecum | ||
3D Model File Formatssmpl3DFmt | ||
![]() | A* Search star pathfinding code listing pico8 lua p8 Astr | |
ASCII | ||
Character TableASCII | ||
Diacritics and Ligatures accent accute grave umlaut cedilla diacritic | ||
Greek LettersGreek | ||
Math Symbol Table cross dot union intersection escape symb | ||
α | Absorption Coefficient alpha aabsrb | |
Adams, Ansel | ||
![]() | Tetons and the Snake River image high dynamic range hdr photograph tone mapping art ttnsSnkRvr | |
Angle planar angle | ||
Arg Max argument maximum argmax | ||
Array vector buffer | ||
![]() | Fast Remove code remove delete c++ javascript arrrmv | |
![]() | Filter code remove map c++ javascript arrfltr | |
![]() | Shuffle code randomize Knuth Fisher-Yates c++ javascript shuffle | |
α | Attenuation Coefficient alpha aabsrb | |
ψ | Azimuth Angle Measurepsi | |
Bacon, Francis abstract existentialist irish | ||
![]() | Study for a Self-Portrait-Triptych image painting art stdyslfbacon | |
![]() | Three Studies of Lucian Freud image painting art thrstdslcnfrd | |
Ballball | ||
![]() | -Ray Intersection code listing raySphr | |
Surface AreaballArea | ||
VolumeballVol | ||
to Ball DistancesphrSphr | ||
Barycentric Coordinatesbrycntrc | ||
Bayes' Rule conditional probability statistics Bayes | ||
Beer-Lambert Lawbeer | ||
β | Biradiancebirdnce | |
Blinn Microfacet BSDF brdf BlnnBSDF | ||
Blinn-Phong Microfacet | ||
DX | Distribution pdf ndf normal function density walter BlnnPhngdist | |
GX | Geometry Term walter BlnnPhnggeom | |
Botticelli, Sandro | ||
![]() | Nascita di Venere (The Birth of Venus) image painting art tempera renaissance bttcllvns | |
Bouguereau, William-Adolphe | ||
![]() | La Naissance de Vénus (The Birth of Venus) image art painting oil paris salon bougrvns | |
![]() | C/C++_rn_CPP | |
![]() | Function Pointer code listing CFcnPtr | |
![]() | Integers uint8_t int8_t uint16_t int16_t uint32_t int32_t uint64_t int64_t intptr_t uintptr_t integer short long int stdint.h limits.h inttypes.h cint | |
![]() | Lambda function procedure closure CPPLambda | |
![]() | Method Pointer code listing CPPMthdPtr | |
![]() | Syntax Example code listing CPPExmpl | |
![]() | printf Specificationprintf | |
![]() | std::function code listing c++ pointer std::bind bind CPPFcn | |
![]() | std::shared_ptr reference counted pointer weak_ptr garbage collection code listing downcast smart make_shared enable_shared_from_this sh_ptr | |
Cabanel, Alexandre | ||
![]() | La Naissance de Vénus (The Birth of Venus) image art painting oil paris salon cbnlvns | |
Church, Frederic Edwin | ||
![]() | Heart of the Andes image art hudson river oil painting hrtandes | |
![]() | Niagara image art hudson river oil painting niagara | |
clamp(⋅) | Clampclmp | |
Compressed Texture Formats BC1 DXN PVRTC S3TC 3Dc DXT RGB sRGB OpenGL GL DirectX DX GLSL HLSL cmpTxt | ||
![]() | Conditional Expression ternary operator ? scheme c++ lua python pico8 p8 cmov javascript glsl hlsl code cond | |
Conecone | ||
![]() | Random Direction Inside code listing coneRnd | |
Convolution statistics probability signal processing cnvltn | ||
cos | Cosine cosinus cos | |
![]() | Hardy's Approximation code listing cosHrdy | |
cosh | Hyperbolic cosh cosh | |
Taylor PolynomialcosTylr | ||
Cosine-Weighted Hemispherecoshemi | ||
![]() | Crepuscular Ray Image image crpsclrDgrm | |
× | Cross Productcross | |
Cross-CorrelationcrssCrrltn | ||
Cylinder | ||
Surface AreacylArea | ||
VolumecylVol | ||
det(A) | Determinantdtrmnt | |
det(A) | 2×2 Matrixdet2 | |
det(A) | 3×3 Matrixdet3 | |
det(A) | 4×4 Matrixdet4 | |
![]() | Differential Solid Angle steradian derivative omega dw | |
Directionssctvar | ||
Distance | ||
EuclideanpntPnt | ||
Line-LinelnLn | ||
ManhattanMnhttn | ||
Point-LinepntLn | ||
Point-PlanepntPln | ||
Point-PointpntPnt | ||
Sphere-SpheresphrSphr | ||
Table of Useful Lengthslngths | ||
⋅ | Dot Productdot | |
Duchamp, Marcel | ||
![]() | Nu descendant un escalier no2 image painting art nude descending a staircase number two 2 exposure nudeDscndng | |
Dürer, Albrecht woodcut etching lithograph | ||
![]() | Man Drawing a Lute (annotated) image etching diagram DurrLt | |
![]() | Man Drawing a Lute image etching art DurrLtDgrm | |
![]() | Perspective Nude image etching art DurrNudeDgrm | |
![]() | Perspective Woodcut image etching art DurrPrspDgrm | |
Electromagnetic Spectrum diagram emSpctrm | ||
Euler | ||
χ | Characteristic chi EulrChr | |
e | Constante | |
Formula cosine sine imaginary EulrFrmla | ||
Expected Value probability statistics | ||
E(X) | of a Random Variableexpctd | |
![]() | of a Series probability statistics mean | |
κ | Extinction Coefficientkappa | |
File Format | ||
3D Models OFF IFS OBJ 3DS PLY2 MTL STL smpl3DFmt | ||
Raster ImagesimgFmt | ||
Floating Point Formats single double quad half 32 16 64 80 nan infinity ieee float | ||
Fog, Simple Models height exponential fog haze smplFog | ||
Frame Rate Table table useful fps ms refresh | ||
Frequency | ||
Display Refreshrefresh | ||
f | of LightlghtFreq | |
ν | of Light, SpatialsptlFreq | |
F(⋅) | Fresnel CoefficientF | |
F0 | F0 for Selected MaterialsF0Tbl | |
FS(⋅) | Schlick's ApproximationFs | |
F0 | at Normal IncidenceF0 | |
Fc(⋅) | for a ConductorFc | |
Fd(⋅) | for a DielectricFd | |
GGX/TR/GTR2 trowbridge reitz walter normal microfacet bsdf brdf surfel GTR2 | ||
G | Geometry Term masking shadowing GGXgeom | |
D | Microfacet Distribution ndf normal distribution function GGXdist | |
GLSL OpenGL Shading Language | ||
FunctionsGLSLFnctns | ||
Matrix Notation indices index GLSLMat | ||
D | GTR1/Berry Microfacet Distribution burley normal bsdf brdf GTR1dist | |
Gamma Compression gamma correction RGB2sRGB | ||
D | Generalized Trowbridge-Reitz (GTR) burley ggx normal distribution function microfacet gtr brdf bsdf surfel GTR | |
Geometric Series sum gmtrcSrs | ||
Git git source version revision control | ||
Quick ReferencegitCmds | ||
ϕ | Golden Ratio phi gold | |
Greek Alphabet alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma tau upsilon phi psi omega chi Greek | ||
HLSL Matrix Notation DirectX high level shading language indices index HLSLMat | ||
HTML | ||
![]() | CSS Box ModelcssBox | |
![]() | CSS3 Custom Font code listing cssFnt | |
![]() | CSS3 SelectorscssSlctrs | |
Diacritics and Ligatures accent accute grave umlaut cedilla diacritic | ||
Greek Letter TableGreek | ||
![]() | HTML5 Example code listing css javascript favicon style htmlExmpl | |
Math Symbol Table cross dot union intersection escape symb | ||
![]() | Half Vectorwh | |
||⋅|| | Hausdorff Measuremsr | |
![]() | Heap Sort code listing lua pico8 p8 c++ hpSrt | |
ℋ() | Heaviside Step Functionstep | |
S+2 | Hemispherehemi | |
Cosine-weightedcoshemi | ||
ρ(ωo) | Hemispherical-Directional Reflectance bsdf dirrho | |
Holbein, Hans | ||
![]() | The Ambassadors image painting hans holbein the younger perspective anamorphosis anamorphic projection art skull ambssdrs | |
![]() | Hue-Saturation-Value to/from sRGB hsl hsb rgb hsv color code listing hsv | |
Hull Speed boat displacement friction fluid hllSpd | ||
Human Retina eye | ||
Photoreceptor DensityrtnaDnsty | ||
Spectral ResponsertnaSpctrm | ||
Hyperbolic | ||
cosh | Cosine cosh cosh | |
θ | Inclination Angle Measuretheta | |
Incoming | ||
Li(⋅) | Light Field radiance Li | |
![]() | Light Vector omega sctvar | |
![]() | Reflection Vector omega sctvar | |
![]() | Refraction Vector omega sctvar | |
![]() | Increment Mod 3 mod3 increment code listing c++ pico8 p8 lua nextMod3 | |
Index of Refraction | ||
![]() | Complexceta | |
η | Realeta | |
for Selected MaterialsetaTbl | ||
![]() | Insertion Sort c++ pico8 lua p8 listing insrtSrt | |
E | Irradiancerdmtrc | |
JavaScript js ecmascript html5 JavaScript | ||
Operators void ++ -- === bitshift % [ ] JSops | ||
Types array object table string number boolean null undefined function null literal JStypes | ||
LaTeX command reference | ||
Greek Letter TableGreek | ||
Math Symbol Table cross dot union intersection symb | ||
Size Command Table large tiny small ltxSz | ||
Space Command Table hspace vspace ltxSpc | ||
includegraphics scale trim angle width heigh clip incldgrphcs | ||
Lambertian Surface diffuse reflection bsdf surfel brdf emitter lambrtn | ||
Latin Square Sampling pseudo-random euler magic msaa ssaa fsaa supersample rotated grid ltnsqr | ||
Law of Cosinescoslaw | ||
L(⋅) | Light Field radiance L | |
Li(⋅) | Incoming radiance Li | |
Lo(⋅) | Outgoing radiance Lo | |
Line | ||
to Line DistancelnLn | ||
to Point Distance and Closest Point code closest pntLn | ||
lerp(⋅) | Linear Interpolation lerp mix lrp | |
Luminance sRGB 709 CIE gamma lmnce | ||
Magritte, René | ||
![]() | Empire of Lights image rene magritte surrealist hdr high dynamic range tone mapping oil painting emprOfLghts | |
![]() | Treachery of Images image art rene magritte this is not a pipe oil painting trchryOfImgs | |
Matrix | ||
det(A) | 2×2 Determinantdet2 | |
A-1 | 2×2 Inverseinv2 | |
det(A) | 3×3 Determinantdet3 | |
A-1 | 3×3 Inverseinv3 | |
det(A) | 4×4 Determinantdet4 | |
: | Frobenius Inner ProductFrbnsMul | |
○ | Hadamard Product array Schur entrywise HdmrdMul | |
Multiplication matmul matMul | ||
R | Rotation (Roll, Yaw, Pitch)rot3 | |
R | Rotation from Axis and Anglerdrgs | |
R | Rotation from Unit Quaternionquat2mat | |
S | Scalescl3 | |
X | Skew-Symmetricskew | |
T | Translationtrns3 | |
det(A) | n×n Determinantdtrmnt | |
P | zf = -∞ Perspective ProjectionPinf | |
P | zf > -∞ Perspective ProjectionP | |
Meanmean | ||
![]() | Arithmeticmean | |
E(X) | Expected Valueexpctd | |
GeometricgmtrcMean | ||
||⋅|| | Measure (Hausdorff)msr | |
![]() | Merge SortmrgSrt | |
Metric Prefixes zetta exa peta tera giga mega kilo hecto deka deci centi milli micro nano pico fempto atto zepto table mtrcPfx | ||
DX | Microfacet Distribution density normal function ndf D | |
cr | Microfacet Reflection Angle Cosinecr | |
αX | Microfacet Roughness alpha ggx normal distribution smoothness specular glossy rghnss | |
![]() | Microfacet Scattering Function surfel distribution brdf btdf bsdf microBSDF | |
Microfacet Smoothness roughness alpha ggx normal distribution specular glossy smthnss | ||
mirror(⋅) | Mirror Reflection Operatormirror | |
Monte Carlo Integration importance sampling vegas mci | ||
S(⋅) | Normalize a Vectornrmlz | |
Normalized Fixed-Point unorm snorm nrmFix | ||
O | OriginO | |
Outgoing | ||
Lo(⋅) | Light FieldLo | |
![]() | Light Vector omega sctvar | |
![]() | Refraction Vector omega sctvar | |
![]() | Specular Reflection Vector omega sctvar | |
PICO-8 8-bit fantasy console lexaloffle pixel p8 pico8 | ||
Controllersp8cntrl | ||
Palettep8pal | ||
P | Perspective Projection MatrixP | |
P | InfinitePinf | |
InvertingunprjDpth | ||
![]() | Phong-like Scattering Functions | |
1973 Original bsdf brdf Phong | ||
1977 Blinn Half-vector version bsdf brdf BlnnPhng | ||
1986 Normalized Phong brdf nPhong | ||
2008 Normalized Blinn-Phong brdf hoffmann sloan nBlnnPhng | ||
Photon | ||
Q | EnergyQ | |
f | FrequencylghtFreq | |
ν | Spatial FrequencysptlFreq | |
λ | Wavelengthlambda | |
Photoreceptor | ||
Density, HumanrtnaDnsty | ||
Spectral Response, HumanrtnaSpctrm | ||
Picasso, Pablo cubism cubist avant garde primitivist | ||
![]() | Guernica image painting art guernica | |
![]() | Les Damoiselles d'Avignon image painting art lesDmslls | |
h | Planck Constanth | |
L(⋅) | Plenoptic FunctionL | |
Pointpoint | ||
to Line DistancepntLn | ||
to Plane DistancepntPln | ||
to Point DistancepntPnt | ||
Point LightspntLght | ||
Φ | Powerpower | |
Pythagorean Theoremcoslaw | ||
Python | ||
![]() | Lambda inline callback function procedure closure pylambda | |
Quadratic Formulaqdrtc | ||
Quaternion, Unitvrsn | ||
BasisquatBasis | ||
slerp(⋅) | Interpolation spherical linear shoemake slerp | |
InversequatInv | ||
Multiplication product quatMul | ||
from Axis and Anglevec2quat | ||
to Matrixquat2mat | ||
![]() | Quick Sort partition code listing qckSrt | |
RGB to Grayscale gamma lmnce | ||
RGB to/from sRGB gamma RGB2sRGB | ||
L | Radiancerdmtrc | |
L(⋅) | Radiance FunctionL | |
M | Radiant Emittancerdmtrc | |
M | Radiant Exitancerdmtrc | |
Φ | Radiant Fluxpower | |
I | Radiant Intensityrdmtrc | |
Radiometric Unit Tablerdmtrc | ||
Depicted diagram table units power radiance radiosity emittance luminance intensity time area solid angle energy biradiance rdmtryPic | ||
B | Radiosityrdsty | |
Random Number Generator pseudo rng prng | ||
![]() | Box-Muller Gaussian distribution normal boxmuller | |
![]() | Integerrndint | |
clamp(⋅) | Range Clampclmp | |
Raphael (Raffaello Sanzio da Urbino) | ||
![]() | School of Athens image raphael painting fresco art linear perspective geometric schlOfAthns | |
Rayray | ||
![]() | -Plane Intersection code listing rayPln | |
![]() | -Sphere Intersection code listing raySphr | |
![]() | -Triangle Intersection code listing rayTri | |
Reciprocityrcprcty | ||
Reflectance (Albedo) reflectivity bsdf albedo rflctnce | ||
Reflection | ||
cr | Angle, Microfacet Cosine ofcr | |
mirror(⋅) | Operatormirror | |
![]() | Vector (Incoming)sctvar | |
![]() | Vector (Outgoing)sctvar | |
Refraction | ||
ct | Angle, Microfacet Cosine ofcr | |
![]() | Index of (Complex)ceta | |
η | Index of (Real)eta | |
refract(⋅) | Operator snell refract | |
![]() | Vector (Incoming)sctvar | |
![]() | Vector (Outgoing)sctvar | |
Rendering Equation, The | ||
Area Domain (Kajiya)rndEqPos | ||
Sphere Domain (Immel et al.)rndEqDir | ||
Rodrigues' Formulardrgs | ||
Scalar Triple Productstriple | ||
![]() | Scattering Function (BSDF) brdf btdf probability statistics BSDF | |
Scattering Variablessctvar | ||
FS(⋅) | Schlick's Fresnel ApproximationFs | |
Screen Resolution Table common useful table res | ||
Screenshot Keysscrnsht | ||
Shadow Map light shader sampler shadowmap OpenGL DX DirectX GL texture shading | ||
![]() | Shader Pseudocode code listing shdwMpCode | |
Shallow Water Equation Navier-Stokes Witkin Miller SWE | ||
sin | Sinesin | |
Taylor PolynomialsinTylr | ||
slerp(⋅) | Slerp spherical linear interpolation shoemake quaternion slerp | |
Snell's Law refraction transmission transmit physics transparent translucent glass Snell | ||
Solid Angle gamma steradian | ||
![]() | Differential omega dw | |
Measure of a Lat-Long PatchltLngSld | ||
Measure of a TriangletriSld | ||
Sort algorithms | ||
![]() | Heap code listing c++ pico8 p8 lua array hpSrt | |
![]() | Insertion code listing c++ p8 pico8 lua array insrtSrt | |
![]() | Merge code listing c++ array mrgSrt | |
![]() | Quick partition code listing c++ array qckSrt | |
Spectrum | ||
ElectromagneticemSpctrm | ||
Visible LightvisSpctrm | ||
c0 | Speed of Light (in Vacuum) constants sol | |
Spheresphere | ||
![]() | -Ray Intersection code listing raySphr | |
![]() | 3D Random Direction code listing point surface sphrRnd | |
Surface AreaballArea | ||
![]() | UnitS2 | |
Volume InsideballVol | ||
to Sphere DistancesphrSphr | ||
Spherical Coordinates | ||
Right-handed with y=upsphry | ||
Right-handed with z=upsphrz | ||
Subversion svn source version revision control | ||
Quick ReferencesvnCmds | ||
Sunsun | ||
SpectrumsunSpctrm | ||
Table of Useful Speedsspds | ||
Tetrahedron | ||
Surface AreatetArea | ||
VolumetetVol | ||
Toksvig Normal Distribution BRDF gaussian mipmapping aliasing glossy roughness Tksvg | ||
Transformation Matrix | ||
R | Rotation (Roll, Yaw, Pitch)rot3 | |
R | Rotation from Axis and Anglerdrgs | |
R | Rotation from Unit Quaternionquat2mat | |
S | Scalescl3 | |
X | Skew-Symmetricskew | |
T | Translationtrns3 | |
Triangle | ||
![]() | -Ray Intersection code listing rayTri | |
AreatriArea | ||
Solid Angle steradian triSld | ||
Trigonometric Identities cosine sine csc tangent atan arctangent sinus cosinus arccosine arcsine secant sinh cosh trigi | ||
Type Notation sets notation types | ||
SemanticsmntcTyp | ||
StructuralstrctTyp | ||
Unicode | ||
Diacritics and Ligatures latex accent accute grave umlaut cedilla diacritic | ||
Greek Letter TableGreek | ||
Math Symbol Table latex cross dot union intersection symb | ||
![]() | Unit SphereS2 | |
Unproject from depthunprjDpth | ||
Variance probability statistics | ||
Var,σ | of a Random Variable probability statistics Var | |
Vectorvector | ||
× | Cross Productcross | |
⋅ | Dot Productdot | |
||⋅|| | Magnitude length mgntd | |
Versor (Unit Quaternion)vrsn | ||
BasisquatBasis | ||
slerp(⋅) | Interpolation shoemake spherical linear slerp | |
Inverse divide quotient quatInv | ||
Multiplication product quatMul | ||
from Axis and Anglevec2quat | ||
from Rotation Matrixmat2quat | ||
to Matrixquat2mat | ||
Web Servers, Simple webserver local http html xml chrome safari ie mozilla firefox python civet smplWebSrvr | ||
XML | ||
Escape Code TableXMLescp | ||
Greek Letter TableGreek | ||
Math Symbol Table latex cross dot union intersection escape symb | ||
da Vinci, Leonardo | ||
![]() | Mona Lisa image sfumato art oil painting monalisa | |
![]() | The Last Supper image art fresco oil tempera chiaroscuro painting jesus restoration lstspprdavnc | |
π | pipi | |
printf Specificationprintf | ||
![]() | smootherstep code listing smthrstp | |
![]() | smoothstep code listing smthstp | |