• 61 Posts
  • 1.99K Comments
Joined 2 years ago
cake
Cake day: July 9th, 2023

help-circle

  • My original algorithms were specifically designed to help artists perform nearly perfect color matching, based largely on text inputs. It started off as a single purpose application, but totally human driven.

    The more I used and tested my own software, it taught me more than I even expected to learn about photochromatic processing. More than I even designed it to do even.

    I was already also studying acoustics around the same time. I saw how well my chromatography software was working, and just barely started adapting the algorithm to process acoustics.

    I quickly realized that I didn’t have nearly enough RAM or processing power to do anything meaningful in any sensible timeframe, but I could already see that it was possible to go as far as changing one’s voice with the voice print of someone else.

    I announced that with online friends at the time, around 2017, and nobody believed me. Probably because I couldn’t quite prove it yet. But I knew it.

    The more I thought about that, the more I thought it would only contribute to fraud. So, I just fucking stopped, slammed on development brakes, and said fuckit.

    I don’t want to be part of the problem, I just wanted to design a better color filter/processor system.















  • I started from the ground up in December 1998 with a bare wireframe engine, largely inspired from a demo wireframe engine from another developer. I was 17 years old then so it was basically my after school project, not a school assignment, but my teachers were impressed.

    I didn’t quite just copy/paste his code though, I carefully read over his code and comments to the point that I understood how it all worked, and rewrote a much cleaner wireframe engine of my own that supported colored lines and even loading from files, which the original demo didn’t support.

    Later on I came across another demo, from the same developer I think, that demonstrated rendering solid triangle shaded 3D models. Again, I read over everything and rewrote everything from the ground up, largely looking to optimize the rendering technique for the highest number of polygons per second, and of course to be able to load different models from file.

    Then I just started having a bit of fun with the polygon rendering, starting with an optimized integer based greyscale gouraud shading algorithm, which ran way faster than any similar demos I could find at the time. Note that this was all CPU driven, no fancy GPU at the time, the 3Dfx Voodoo was still a pretty new thing I couldn’t afford…

    Then I got the idea of trying to bring color to the project via error diffusion, since I was basically limited to 320x200x256 color display mode, unless I wanted to run a high end video mode at a snail’s pace LOL! Error diffusion is slow though, so how did I speed that up?

    Well, I did away with the gouraud shading and went back to treating each polygon as a single solid RGB color, shaded using the Lambert’s Law technique. To speed up the error diffusion process, I’d only process 8 pixels into the diffusion algorithm, then as the polygon rendered, it would just pick randomly from that 8 pixel buffer.

    Since I was programming in QuickBasic, arrays were limited to 64KB each, meaning that memory was very tight, and I actually had to allocate two arrays for the Z Buffer, one for the top half of the screen and another for the bottom half.

    The inspiration for the camera tracking came from a rather unexpected source, a simple mouse string toy demo of all things LOL! I realized that if I used just one segment of that string algorithm, I could link the viewing angle to follow a point in the model, or with some creative adjustments, basically follow any arbitrary point.

    I also made a side project crude CAD scripting thing of sorts, mainly meant to render a torus or sections of a torus with whatever dimensions I wanted. With the right inputs, that also allowed me to easily generate spheres, cylinders, cones and tubes.

    I think I finished the original wireframe engine within just a couple or few days, but the other versions that had filled in polygons probably took me a week to start with, and the more advanced techniques probably took me around 2 months each, all in my spare time of course.

    I didn’t really have any final product in mind, I was just experimenting and learning ya know. When 3D GPUs started becoming a big and common thing, I didn’t see much future for my little project, but I sure did learn a lot!