Original Post

Hi all,
the mandelbrot zoomer was actually just a testbed for that shrinked affine worlds in 7 dither shades approach. I only use it to write 2×2 pixels with a single byte store. It has nothing to do with the ‘3D’ or ‘perspective’ here.
Without that working out, the voxel engine would have been little fun.
After quite some time spent optimizing routines and rewriting the algorithms from scratch a couple of times, I feel that it had become fast enough to be actually useful:


(it runs considerably slower on real hardware compared to this mednafen recording but still at about 9 FPS).

You find the binary attached below:
It’s fully interactive (it would have been much simpler to code otherwise):
left pad:
left/right: rotate
up/down: forward/backwards
right pad:
left/right: strafe
up/down: increase/decrease rendering depth (starting at max).
This is fully written in v810 assembly (ISAS) and a couple of cache tests performed before also helped a bit.

The engine plots into a mosaic of 3×2 affine worlds for each eye, 12 worlds in total.
I will likely reduce the visiable area on the screen some more to bring it down to 2×2 and safe memory as well as CPU speed 🙂
The hex digits in the upper left are: time spent per frame (in 100us), depth (non-linear), rotation angle, xposition, yposition.
Cheers
enthusi

  • This topic was modified 3 days, 10 hours ago by enthusi.
  • This topic was modified 3 days, 10 hours ago by enthusi.
  • This topic was modified 3 days, 10 hours ago by enthusi.
  • This topic was modified 3 days, 10 hours ago by enthusi.
  • This topic was modified 3 days, 10 hours ago by enthusi.
  • This topic was modified 3 days, 10 hours ago by enthusi.
0 Replies

No replies yet.

 

Write a reply

You must be logged in to reply to this topic.