The Curious Engineer

All blogs / Graphics

Forward Scattering

forwardscattering.org

The Weblog of Nicholas Chapman

GraphicsPerformance / optimizationC++Math

Posts
67 from 28 Apr 2013 to 13 Aug 2026
Posting
now and then (4 in the last year)
Kind
personal blog
Feed
http://forwardscattering.org/rss.xml

2026 4

  1. Using a a single linearly interpolated sample to evaluate a weighted sum of two texels
  2. Intuitive Quantum Electrodynamics
  3. New essay: Second Quantisation - a Quantisation Too Far
  4. Fog rendering

2025 5

  1. Detecting reads from uninitialised heap memory in C++ programs at runtime
  2. Fast acos approximation
  3. Some Fresnel curve approximations
  4. Fast camera space to screen space direction transform
  5. Friction force on a water stream flowing downhill

2024 1

  1. Transforming normals: adjugate transpose vs inverse transpose

2023 2

  1. 10 years of this blog
  2. A poor entropy coding result in Zstandard

2021 1

  1. Introducing Substrata

2020 1

  1. No warning for unused variable when declared const

2019 3

  1. How to fix a bug
  2. CryptoVoxels world rendered in Indigo
  3. Realtime fractal program

2018 1

  1. Fast rotation of a vector by a quaternion

2017 4

  1. MSVC inliner and functions called just once
  2. Poor Visual Studio code generation for reading from and writing to member variables
  3. Poor code generation / missed optimisations for placement-new object construction in Visual Studio 2015
  4. Performance bugs - the dark matter of programming bugs

2016 18

  1. Watch out - Qt headers suppress warnings with Visual Studio
  2. Functional Programming and Performance
  3. Visualising the topology of the rotations with the help of Portals
  4. Slow Visual Studio implementation of aligned malloc
  5. Electronic painter experiment #3
  6. Electronic painter experiment #2
  7. Electronic painter experiment #1
  8. Azure website is so slow
  9. Stack overflow internal compiler error in vs2015
  10. std::map performance bug #3 - slow find
  11. std::map and std::unordered_map performance bug #2 - slow count
  12. An apparent performance bug with some std::map and std::unordered_map implementations
  13. Special relativity, faster-than-light communication, and absolute time and space
  14. Things that suck about C++ #1
  15. Fast sorting on the CPU
  16. Hash functions, one-way functions and P = NP
  17. Permutations and sorting
  18. Slow pscp upload speeds

2015 12

  1. Finding annoying programs that steal window focus
  2. False Sharing Curiosities
  3. Indirection isn't slow, unpredictable indirection is
  4. A proposal for C++: bit_cast.
  5. A little Winter demo
  6. Closure support in Winter
  7. Unicode string handling in Winter
  8. Don't use LLVM's BBVectorize pass
  9. Auto-vectorisation and parallelisation in Winter
  10. Fuzz Testing
  11. Finding the fastest Turing Machine that computes a given function is uncomputable. (And the consequences for superoptimisation)
  12. A limitation of LLVM with regard to marking sret functions as pure/readonly

2014 8

  1. Reassociation optimisations in Visual Studio 2012
  2. Some wave simulation animations
  3. RDTSC doesn't actually measure the number of clock cycles elapsed
  4. Second Quantisation - a Quantisation Too Far
  5. More on Kolmogorov Complexity
  6. Decidability of finding the fastest Turing machine to compute a function with a finite domain
  7. Intuitive Quantum Electrodynamics
  8. Problems with JITing and LLVM #1 - large offsets

2013 7

  1. Compression
  2. The Conservative Halting Problem
  3. Bézier curves
  4. Kolmogorov Complexity - it's a bit silly
  5. The most annoying thing about Windows
  6. MathJax
  7. Sockets should have a flushHint() API call.