Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Silice
Silice is an easy-to-learn, powerful hardware description language, that simplifies designing hardware algorithms with parallelism and pipelines.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
They are extra useful to precalculate other visual effects. In the past, following a magazine tutorial, I coded a very cheap raytraced "lens effect" on a 286. I recently (5 years ago!) ported it to js [0].
That magazine got me into fractals and raytracing, BTW.
[0] https://github.com/luismedel/jslens
A Podcast Of Unnecessary Detail just did an episode talking about the SNES Doom port and how it used LUTs for trigonometry as the SNES didn't have a graphics processor.
https://festivalofthespokennerd.com/podcast/series-3-episode...
https://github.com/RandalLinden/DOOM-FX
- see it live: https://htmlpreview.github.io/?https://github.com/sylefeb/gf...
- source code: https://github.com/sylefeb/gfxcat/blob/main/raytrace/raytrac...
And of course procedural textures!! Perlin noise is made of lookup tables, and often multiple lookups are combined to then lookup a clolormap (https://redirect.cs.umbc.edu/~ebert/691/Au00/Notes/procedura...)
There are so many other examples. Also, FPGAs are quite literally made
- how it is computed: https://github.com/sylefeb/Silice/blob/master/projects/ice-v...
Julia fractal, with a table to do integer multiply! (2.a.b = (a+b)^2 - a^2 - b^2, so just precompute all x^2 in a table! )
- actual lookup table generation: https://github.com/sylefeb/tinygpus/blob/498be1b803d0950328a...
Sine tables are also very typical, for animating things on screen or plain
Related posts
- Running Quake on an FPGA (Custom MRISC32 CPU) [video]
- FCCM'22 Tutorial: Recent Developments in Hardware Description Languages
- GitHub - sylefeb/Silice: Silice is an open source language that simplifies prototyping and writing algorithms on FPGA architectures.
- Silice: A language for hardcoding Algorithms into FPGA hardware
- The Ice-V: a simple, compact RISC-V RV32I implementation in Silice