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

help-circle

  • 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!




  • Most drives have an emergency eject function built in, totally independent of the operating system. Some work differently than others, but try something along these lines…

    • Hold the eject button for 5 to 10 seconds
    • Then tap the eject button multiple times

    Usually works for me.

    Edit: Most drives also have an emergency eject hole near the eject button, just push a straightened paperclip in when the drive is powered off and it should eject.





  • That’s actually a pretty good question.

    With no exact answer, I do think this will at least in part depend on relative comparison to how exactly level your floor/ceiling/counter/table or other frame of reference is, which itself might not be perfect.

    Side note, basically every smart phone out there has orientation sensors, so it should be just as easy as downloading a Bubble Level app from the app store.


  • Well shit, I figured out what the real issue was.

    I’m on a laptop with only 3 USB ports, and I’m running a physical laptop hard drive on an adapter on one USB port, and a laptop CD/DVD drive on another adapter on another port.

    Obviously that’s probably pushing the power limits of the USB power, but it’s worked before, so I didn’t see why it wasn’t quite working right now.

    But this time I was trying a different DVD drive, an HP TS-T633P slot loader drive. Apparently that drive is extra power hungry compared to a conventional laptop drive, so I dug out my old tray loader drive.

    Apparently the slot loader drive was competing with the hard drive for power, and they were apparently taking turns robbing power from each other. The system is perfectly happy with the tray loader drive though, no reconfiguration necessary!

    🤦‍♂️😂🤣👍





  • More or less yeah. Though back around 2013 or so, I was somewhat pleasantly surprised by how they designed their Mac AIO desktops, they actually were somewhat repair tech friendly.

    The front glass was magnetically attached, so it only took a suction cup or two to start disassembly, and basic screwdrivers to remove the screen and get access to the motherboard, hard drive, RAM, DVD drive, etc.

    And yes you could replace or upgrade parts as necessary, none of this newer soldered on storage shit they do these days.

    I’ve lost a lot of respect for companies that solder on important parts that should rightfully be fairly easy to replace or upgrade.

    Plus, now the big companies have taken to forcing encryption on the storage devices, effectively locking the drive to the system. Well isn’t that just cute for the backup operator that’s trying to recover your late grandmother’s family photos…



  • Nah, if you knew my dad at the time, he insisted there was nothing wrong with my vision. I actually was already a pretty intelligent kid, mostly from book learning at the time.

    Book learning worked great for me, but only because the book was close to my face, which works fine for nearsighted people. So my dad was convinced, my vision was fine.

    I was disappointed at my dad for quite a few years, but ultimately had to let my anger go.

    A few years later, dad asked me why I didn’t tell them I had bad vision. All I could tell him was “I didn’t know, until I finally got to see good vision.”


  • Nope, they sure didn’t.

    I actually thought about that as I typed out my short Ted Talk, it’s really a shame isn’t it?

    Thank you for understanding, things might have went differently if I wasn’t afraid of the teacher authority at the time and just walked closer myself.

    Please, if anyone happens to see children acting ‘strange’ or whatever, please do have them checked out for the bare basics of vision and hearing.

    Some of us weren’t trying to be weird kids, we just perceived the world differently.




  • At age 7, I got in trouble for ‘acting out’ when they gave all the students a basic eye chart test. When it was my turn, they put me on the measured out line and asked me to read the chart.

    I asked “What chart?” The teacher pointed at the door. Apparently the chart was on the door, but all I could see was a large white/greyish rectangle from that distance.

    Yeah, my vision was that bad. You know that big capital E on the top of the chart? Yep, nothing, I literally couldn’t see the chart. So I didn’t know what else to do but keep asking “What chart?”

    They called my dad in and between him, the teacher, and the principal, I got scolded for ‘acting out’.

    The next year, age 8, they assigned seats in order based off the first letter of our last names, which happened to put me in the back of the class. I couldn’t see a damn thing on the chalkboard…

    So my parents finally had to take me to a proper eye doctor. They found out my vision was like -4.5, which is extremely nearsighted.

    So I finally got glasses, and about 2 weeks of apologies from my mom. Every time she apologized, I reminded her that she had absolutely nothing to apologize for, I was just thankful I could finally see!

    I never got an apology from my dad, the teacher or the principal though. It’s a bit fucked up that they could have caught it earlier on when the whole reason they gave students the basic eye test was literally to catch obvious vision problems early on…