Precompute mipmaps, select 1, 2, or 4 mipmaps based on requested size.
For 1 mipmap, perform bilinear sampling. For 2 mipmaps, sample both
bilinearly and interpolate the result linearly based on fractional part of
the base 2 logarithm of the size. For 4 mipmaps, interpolate bilinearly 4
bilinear samples from chosen mipmaps, the interpolation arguments are
fractional parts of base 2 logarithms of size along uv axes.
2021-04-23: Walking on Bridges
And also 1000th commit!
2021-04-10: ZXP Editor
2021-03-28: 64x64 Textures Testing
2021-03-27: Normal-based Lighting
2021-03-26: Preliminary Colored Lighting
2021-03-24: Shadow Rays Adaptive Supersampling, Moving Water
Floor is still mip-mapped using an angle between ray and u/v unit
vectors. For ceiling, additional ray intersections are cast to determine
current u-width and v-height at given original intersection.
Proof-of-concept floor z-coordinate is tested.
2020-11-08: Anisotropic floor mipmapping based on angle between ray and
u/v unit vectors
2020-11-06: Preliminary texturing is back
2020-11-05: Fast full raycasting
2020-11-02: Major rewrite to use full raycasting
2020-10-19: Dynamic lights and shadows, shape testing arena
Positional lights and dynamic shadows
Sector lighting is back
2020-10-16: Floor, ceiling and sky - and textured thin walls
2020-10-15: Anisotropic wall mipmapping - including diagonals and
2020-10-14: Basic texturing and cylindrical walls
2020-10-13: Transparency of thin walls
Dynamic lights in multiple views
2020-10-07: Multiple users
2020-10-06: Telnet access (proof of concept)
2020-10-05: Sprites all around
2020-10-03: Canvas transposition
2020-09-30: Dynamic and sector lighting
2020-09-28: Local lights
2020-09-27: Proper anisotropic mipmapping of floor and ceiling