I think technically without any bouces it’s ray casting, ray tracing is recursive, but whatever, it’s amazing.
ray tracing is just the shallow high level term, there is no real limit of bounces or ray queries. When you say “ray casting” most people will think of a wolfenstein engine, hence to avoid confusion whether this is really ray traces per pixel, “ray tracing” is a more fitting term imho.(And it still caused confusion here )
is it using floating or fixed point?
it’s fixed point; I would not recommend to use emulated floats on the Arduboy CPU. Your rasterizer looks like a nice start. I’d love to see it running 60FPS. I’ve also written “some” rasterizers, my most recent was Wipeout on GBA - YouTube
I have a raytracing library planned that would be friendly to embedded in which I’ll only use integers
I hope you’ll make an Arduboy ray tracing demo as well, would love to see how well it performs and looks!
Typically these ray tracing/casting demos use shapes like spheres and cylinders as these are fastest to trace against, I was expecting to see that here. A 3D mesh composed of quads/triangles is going to be pretty slow. I’m actually impressed it even works at 2 fps
Sorry, that was just the first implementation back in February, I’ve updated the description. It’s now rather 8 FPS to 60 FPS, depends heavily on how much you need to ray trace; tracing across the room gonna take longer than when you’re close to a wall. (try it out in the emulator, it’s quite accurate)
These checkerboards are “procedural textures” or are they multiple quads (computing texture coords may eat additional cycles, not sure which way would be better)?
These are dither patterns to represent some color brightness per surface, it’s similar to what James uses in his flight simulator rasterizer: Flight simulator
and his catacombs ray caster Catacombs of the damned! (Formerly Another FPS style 3D demo)
I have 5 levels in 2x2 pixel patterns (from all pixels black to all pixels white), but the tracing is still full 128x64 !
It’s a lovely flash back to when I had a monochrome monitor on my 8086
What is the scene representation? Is is just a list of quads or is it maybe a voxel representation? I think I’m seeing angled walls there?
As an homage to Descent, I’ve tried to recreate the same way of level editing and freedom it offered.
A source code would be great
It took me already months talking to legal of Activision to just get this permission, I won’t stretch this
Yeah, thanks for making this.
thanks, I’m happy you like it. I hope it motivates everyone to believe in the crazy solutions. (And maybe bateske to release an ArduBoy advance, then I’ll add one more bounce )